Feature Importance가 정말 답인가?
참고자료
[1] https://hwi-doc.tistory.com/entry/Feature-selection-feature-importance-vs-permutation-importance
[2] https://velog.io/@vvakki_/%EB%9E%9C%EB%8D%A4-%ED%8F%AC%EB%A0%88%EC%8A%A4%ED%8A%B8%EC%97%90%EC%84%9C%EC%9D%98-%EB%B3%80%EC%88%98-%EC%A4%91%EC%9A%94%EB%8F%84Variable-Importance-3%EA%B0%80%EC%A7%80
[3] https://soohee410.github.io/iml_tree_importance
Random Forest, XGBoost라던가, LightGBM 에서는 Feature Importance를 제공한다.
이를 통해 생존자의 예측에서 어떤 변수가 많은 영향을 끼쳤는가를 확인할 수 있다.
Feature Importance의 종류
여기서는 Random Forest를 기준으로 이야기하고자 한다.
MDI (Mean Decrease in Impurity) Importance
Scikit-learn에서 기본적으로 제공하는 변수 중요도의 측정 방법이다.
각 변수가 split 될 때, impurity를 얼마나 감소시켰는지 변수별 평균치를 중요도로 정의한다.
Permutation Importance
permutation importance는 해당 변수가 랜덤으로 분포되나면, 어느 정도 성능이 떨어지는지를 확인하려고 한다.
다시 말해, feature 하나하나마다 shuffle을 실시한다. 그 후 학습을 다시 한다.
만일 해당 feature가 모델링에서 중요한 역할을 하고 있었다면, 성능이 크게 떨어졌을 것이다.
다만, permutation이기 때문에 이를 시행할 때 마다 결과가 매우 달라질수도 있으며 기존 데이터와 다르게 적합하지 않은 데이터가 생성될 수도 있다.
Drop Column Importance
이는 모든 변수를 사용했을 때의 random forest와 일부 변수를 빼고 random forest를 다시 학습 시켰을때 성능의 차이를 바탕으로, 변수의 중요도를 판별한다.
이는 변수의 개수만큼 모델을 재학습시켜야 하기에, 연산량이 매우 많아져, 비효율적이다.
Feature Importance를 무조건 신뢰해도 되는가?
무조건 그럴 수 있는 것은 아니다!특히 MDI Feature importance를 할 경우에는 정보이득이나 지니 상수만 고려하여 중요도를 부여한다.즉, 과적합에 대해 고려하지 못하게 된다.
예를들어 동그라미 100개와 그 속에 박혀있는 세모 1개를 찾기 위해선 수 많은 기준선을 학습시켜야 할 것인데 당연히 이 과정에서 과적합이 일어날 수 밖에 없다. 따라서 Feature Importance를 절대적인 지표로 보기에는 어려울 것이다.
'Archive > 데이터 분석 관련' 카테고리의 다른 글
[Data] Outlier의 처리에 대하여 - 개요, 간단한 방법들 (0) | 2021.10.19 |
---|---|
[Data] 연관규칙분석이란? (0) | 2021.10.14 |
[Data] Data Clustering 정리 (0) | 2021.09.30 |
[Data] kNN 이해하기 및 활용 (0) | 2021.08.28 |
[Data] ROC Curve (0) | 2021.08.24 |