공부/A.I

배깅

래울 2021. 7. 29. 20:21

books.google.co.kr/books?id=tPaTDwAAQBAJ&lpg=PP1&dq=%ED%8C%8C%EC%9D%B4%EC%8D%AC%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EB%A5%BC%20%ED%99%9C%EC%9A%A9%ED%95%9C%20%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D&hl=ko&pg=PA1#v=onepage&q=%ED%8C%8C%EC%9D%B4%EC%8D%AC%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EB%A5%BC%20%ED%99%9C%EC%9A%A9%ED%95%9C%20%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D&f=false

 

파이썬 라이브러리를 활용한 머신러닝(번역개정판)

사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현   현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭

books.google.co.jp

 

- 배깅

배깅, Bagging : Bootstrap aggregating

 

중복을 허용한 랜덤 샘플링으로 만든 훈련세트를 사용하여 분류기를 각각 다르게 학습시킨다.

  - 분류기가 predict_proba() 를 지원하면 확률값을 평균하여 예측한다. 그렇지 않으면, 가장 빈도높은 클래스레이블이 예측결과이다.

from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import BaggingClassifier
#from preamble import *
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_moons
from sklearn.datasets import load_breast_cancer

Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=3)
Xm_train, Xm_test, ym_train, ym_test = train_test_split(
    Xm, ym, stratify=ym, random_state=42)
    
bagging = BaggingClassifier(LogisticRegression(solver='lbfgs', max_iter=100), n_estimators=100, 
                            oob_score = True, n_jobs=-1, random_state=42)

bagging.fit(Xc_train, yc_train)
print("훈련 셋 정확도 : %.3f"%bagging.score(Xc_train, yc_train))
print("테스트 셋 정확도 : %.3f"%bagging.score(Xc_test, yc_test))
print("OOB 샘플의 정확도 : %.3f"%bagging.oob_score_)

 

* n_estimators=100 : 훈련할 분류기의 개수는 100개

* oob_score = True : 부트스트래피에 포함되지 않은 샘플로 훈련된 모델을 평가한다.

* OOB : out of bag , 오차 , 이 값을 통해 테스트 세트의 성능을 짐작가능하다.

 

실습.