해결된 질문
작성
·
216
0
원본데이터 갯수가 n개이면
n_estimators=10이라고 하면, 부트스트래핑을 하면 중첩을 허용하여 n개씩 10개의 데이터 서브세트가 만들어지는건가요?
그렇다면, 213쪽에 "10000개의 데이터를 10개의 분류기가 배깅방식으로 나누더라도 각 1000개의 데이터 내에는 중복된 데이터가 있다"고 나와있는데 1000개씩 10개의 데이터 서브세트가 만들어지는게 아니라, 10000개씩 10개의 데이터 서브세트가 만들어지는것이 아닌가요?
답변 4
1
먼저 올린 답을 다시 수정드립니다.
머신러닝 scikit learn에서는 배깅 방식(가령 Random Forest)을 적용할 때 개별 estimator가 학습 하는 데이터 셋의 갯수가 전체 데이터 갯수/estimator의 갯수가 아니라 max_samples로 설정이 가능합니다.
max_samples 값을 설정하지 않으면 전체 데이터 건수로 개별 estimator를 학습합니다.
따라서 10000개의 전체 데이터의 10개의 estimator가 있다면 개별 estimator가 학습하는 데이터 건수는 가변적입니다.
아래 문서의 max_samples 파라미터 설명을 참조 부탁드립니다.
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
0
0
그러면 218페이지에는 10개의 학습 데이터 세트를 n_estimators=3으로 부트스트래핑을 할 때, 그림에서는 3개의 서브세트에 각각 10개의 데이터가 들어있는데, 그림이 잘못나온건가요?
0
안녕하십니까,
bootstrapping은 원래 통계학에서 사용됩니다.
모집단의 확률 분포등의 특성을 모를 때 모집단의 일부 집합을 중복을 고려해서 추출하여 평균등을 계산하여 모집단의 특성을 파악하는 기법입니다.
이를 머신러닝에 응용을 한것이고, 모집단 전체가 아닌 일반 집합의 sampling을 중복을 고려해서 여러번 데이터를 추출합니다. 보통은 n_estimators=10이면 전체 sample이 10,000이면 10,000/10 개씩 중복을 고려하여 추출한 뒤 이들을 기반으로 학습 및 예측을 수행합니다.
설 연휴 잘 보내십시요.