2.3.3_Feature_Importances

chang·2021년 3월 3일
0

부트캠프

목록 보기
26/28

[키워드]

  • Feature Importance(Mean Decrease Impurity)
  • Permutation Importance(Mean Decrease Accuracy)
  • Gradient Boosting

[학습내용]

  • 특성 중요도(Feature Importance)

    모든 트리에 대해 각각 특성의 평균불순도감소(mean decrease impurity)를 계산한 값
    scikit-learn의 tree model에서 feature_importances_ 옵션

  • 순열 중요도(Permutation Importance)

    관심있는 특성에만 무작위로 노이즈를 주고 예측을 했을 때 성능 평가지표(정확도, F1, R2R^2 등)가 얼마나 감소하는지를 측정

import eli5 from eli5.sklearn import PermutationImportance
from sklearn.pipeline import Pipeline

pipe = Pipeline([
    ('preprocessing', make_pipeline(전처리 by pipeline)),
    ('model', 트리모델) 
])

# permuter 정의
permuter = PermutationImportance(
    pipe.named_steps['model'],
    scoring='평가지표',
    n_iter= 다른 random seed를 사용해 반복할 횟수,
    random_state= 랜덤 시드
)

X_val_transformed = pipe.named_steps['preprocessing'].transform(X_val)

permuter.fit(X_val_transformed, y_val) # 순열 중요도 계산
  • 부스팅
Random Forest(배깅)Boosting
트리 기반트리 기반
각 트리가 독립적이전 트리가 영향 O
하이퍼파라미터 덜 민감하이퍼파라미터에 민감 but 성능 굳
  • AdaBoost : 각 트리 중 약한 학습기들의 잘못 분류된 관측치에 가중치를 두고 다음 트리 구성 시 잘못 분류된 관측치를 더 많이 샘플링
    -> 최종 학습 모델은 약한 학습기들의 가중 합

  • Gradient Boosting

    회귀 문제에서는 mse, 분류에서는 logistic loss를 사용해 loss function을 만들며 이러한 loss function이 줄어드는 방향으로 학습이 이루어짐
    즉 회귀문제에서는 첫 번째 트리에서 오차를 계산한 뒤 타겟을 오차로 잡고 오차를 학습해나가는 과정을 거치는 것을 의미
    종류 : xgboost / lightgbm / catboost

[찾아볼 내용]👀

  • 분류 문제에서의 gradient boosting 개념
  • xgboost / lightgbm / catboost의 회귀/분류 문제에의 적용

0개의 댓글