평균화

Python에서의 앙상블 기법

Román de las Heras

Data Scientist, Appodeal

젤리빈 개수 세기

berry-festival-jelly-bean-guess.jpg

좋은 추정치는 어떻게 구하나요?

  • 추측(임의의 수)
  • 부피로 근사
  • 기타 다양한 방법

실제값 ~ 평균(추정치)

Python에서의 앙상블 기법

평균화(소프트 보팅)

특징

  • 분류·회귀 문제에 사용
  • 소프트 보팅: 평균
    • 회귀: 예측값의 평균
    • 분류: 예측 확률의 평균
  • 최소 2개 이상의 추정기 필요
Python에서의 앙상블 기법

scikit-learn으로 평균화 앙상블

평균화 분류기

from sklearn.ensemble import VotingClassifier

clf_voting = VotingClassifier( estimators=[ ('label1', clf_1), ('label2', clf_2), ... ('labelN', clf_N)], voting='soft', weights=[w_1, w_2, ..., w_N] )

평균화 회귀기

from sklearn.ensemble import VotingRegressor

reg_voting = VotingRegressor( estimators=[ ('label1', reg_1), ('label2', reg_2), ... ('labelN', reg_N)], weights=[w_1, w_2, ..., w_N] )
Python에서의 앙상블 기법

scikit-learn 예시

# Instantiate the individual models
clf_knn = KNeighborsClassifier(5)
clf_dt = DecisionTreeClassifier()
clf_lr = LogisticRegression()
# Create an averaging classifier
clf_voting = VotingClassifier(
    estimators=[
       ('knn', clf_knn), 
       ('dt', clf_dt), 
       ('lr', clf_lr)],
    voting='soft',
    weights=[1, 2, 1]
)
Python에서의 앙상블 기법

왕좌의 게임 사망 데이터

타깃:

  • 캐릭터가 생존인지 여부 예측

특성:

  • 나이
  • 성별
  • 등장한 책 수
  • 인기
  • 친족 생존 여부

shutterstock_1038048793.jpg

Python에서의 앙상블 기법

연습해 봅시다!

Python에서의 앙상블 기법

Preparing Video For Download...