7-2. oob 평가 / 랜덤 패치, 랜덤 서브스페이스
2021. 5. 12. 02:49ㆍMachine Learning
oob 평가
앙상블 학습에서 훈련 세트를 샘플링할때 중복을 허용하는 배깅 방식을 채택할 경우,
일반적으로 훈련 샘플의 63%만 샘플링이 되는데, 이는 나머지 37%의 데이터는 훈련에 쓰이지 않는다.
이러한 데이터를 oob(out-of-bag)라고 하는데, 앙상블의 평가에 이 oob 샘플을 활용할 수 있다.
bag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=500,
max_samples=30, bootstrap=True, n_jobs=-1, oob_score=True)
bag_clf.fit(X_train, y_train)
y_pred = bag_clf.predict(X_valid)
BaggingClassifier 객체 생성 시 oob_score를 True로 지정하면 모델의 정확도를 oob_score_ 변수에 기록한다.
print("oob Score : ",bag_clf.oob_score_)
print("Accuracy Score: ",accuracy_score(y_valid, y_pred))
oob 샘플로 평가한 정확도와, 검증 세트로 평가한 정확도를 비교해보았다.
oob Score : 0.8533333333333334
Accuracy Score: 0.88
랜덤 패치 / 랜덤 서브 스페이스
BaggingClassifier에서는 샘플뿐만 아니라 특성의 샘플링도 가능하다.
max_features, bootstrap_feather 두 매개변수로 특성 샘플링을 조정한다.
각각 샘플링할 특성의 최대갯수, 샘플링할 특성의 중복가능 여부를 지정한다.
출처 : livebook.manning.com/concept/machine-learning/random-patch
샘플과 특성을 모두 샘플링할 경우, 이를 랜덤 패치 방식(Random patches method)이라고 하며,
특성만을 샘플링할 경우, 랜덤 서브스페이스 방식(Random subspace method)이라고 한다.
'Machine Learning' 카테고리의 다른 글
7-4. 부스팅(Boosting) - 에이다부스트(Adaboost) (0) | 2021.05.12 |
---|---|
7-3. 랜덤 포레스트(Random Forest) (0) | 2021.05.12 |
7-1. 앙상블 학습(Ensemble Learning) (0) | 2021.05.12 |
6. 결정 트리(Decision Tree) (0) | 2021.05.04 |
5-2. 서포트 벡터 머신(SVM) - 비선형 SVM 분류 (0) | 2021.05.04 |