본문 바로가기

데이터분석/이론

[머신러닝]중요 변수 추출 방법 - feature importance, shap value 이론

1. feature importance

1. Xgboost의 feature importance 측정 기준

2. featrue importance의 좋고 나쁨의 기준

 

2. Shap value

1. 정의

2. 특징

3. 활용(해석)

 

 


 

-모델의 성능도 중요하지만 Y를 예측하는 데 어떤 변수가 어떻게 영향을 끼치는지 해석(활용)하는 것도 중요

 

-모델의 성능보다 변수의 활용(인자가 뭐냐)에 초점을 맞출 땐 선형회귀를 많이 사용

   => 회귀계수, p-value로 긍정적/부정적 영향, 얼마나 영향을 미치는지, 유의한지 알 수 있음

 

-복잡한 모델은 해석이 쉽지 않음(목적에 따라 선택)

1) Accuracy가 낮고 설명하기 쉬운 모델(Linear regression, Decision Tree)

   => 해석, 인자를 찾는 게 중요할 때 사용

2) Accuracy가 높고 설명하기 어려운 모델(Ensemble Learning, Neural Network)

   => 성능을 높이는 게 중요할 때 사용

 

 

1. feature importance(변수 중요도)

 

-ensemble learning 모델들은 중요 변수(feature)를 추출할 수 있는 알고리즘이 내장됨

   => 변수의 중요도만 알 수 있고, 얼마나 어떻게 영향을 미치는지(양수/음수, 크기) 알 수 없음

 

1. Xgboost의 feature importance 측정 기준

-weight: 변수 별 데이터를 분리하는 데 쓰인 횟수

-cover: 변수 별 데이터를 분리하는 데 쓰인 횟수(해당 변수로 인해 분리된 데이터의 수로 가중치)

   => weight보다 합리적인 지표

-gain: feature를 사용했을 때 줄어드는 평균적인 training loss

   => cover와 비슷하지만 더 수치화

-단점: 변수 중요도만 알 수 있고 해석이 불가능, 변수 중요도 측정 기준별로 중요 변수가 달라짐

 

2. featrue importance의 좋고 나쁨의 기준

-consistency(일치성): 특정 변수의 영향이 많이 가도록 모델을 수정하면, 중요도 측정 시 해당 변수의 중요도가 줄지 않아야 함

   => bagging, 앙상블을 했을 때 각 모델별로 변수의 중요도가 달라지지 않아야 함(같은 데이터면 같은 중요도)

-consistency가 없으면 두 모델의 feature에 대해 비교 힘듦, feature importance가 높다고 중요하다고 말하기 힘듦(해석 무의미)

-대부분의 feature importance 지표는 inconsistency

   => 이 단점을 보완하기 위해 shap value 사용

 

 

 

2. Shap value

 

-shap value: inconsistency한 문제를 해결하기 위한 지표

 

1. 정의

-(연합 게임 이론)goal을 성취하기 위해 player들이 협업하여, 전체 payout에 대해 각 player들의 기여도에 따라 payout을 배당

   => goal=prediction, player=feature, payout=feature attribution

-특정 관측치의 j번째 feature로 인한 실제 예측치와 평균 예측치의 평균적인 차이

-목적: 실제 예측값과 평균 예측값의 차이를 변수별 효과로 설명하는 것

-A변수의 기여도를 알아볼 때(예시)

   1) A, B, C 변수를 고정(연합)으로 하고, 나머지 변수를 무작위(랜덤)로 뽑아 예측값1 계산

   2) B, C만 고정으로 하고, A를 포함한 나머지 변수를 무작위로 뽑아 예측값2 계산

   3) A 변수의 marginal contribution = 예측값1 - 예측값2

      => 샘플링된 변수들에 따라 이 값이 달라짐

   4) 이 과정을 반복하여 weighted average를 구한 값이 shap value

 

2. 특징

-consistency함(feature importance의 단점 보완)

   => 모델이 바뀌어도 shap value값이 달라지지 않음(일치성이 있음)

-특정 관측치 별로 feature가 어떻게 영향을 미치는지 개별적으로 볼 수 있음

-다양한 변수들의 조합을 시각화하여 영향력을 파악하기 쉬움

 

3. 활용(해석)

-feature contribution이 양수이면 평균 예측치에 비해 긍정적인 효과

-feature contribution이 음수이면 평균 예측치에 비해 부정적인 효과

 

-'feature contribution이 양수인 변수의 값을 높이면 Y가 증가한다'고 해석X(회귀분석도 마찬가지)

   => 예측을 하는 것이지 인과관계를 보는 것이 아님

-'feature contribution이 양수인 변수의 값이 높을수록 Y가 평균치보다 클 확률이 높아진다(경향이 높다)'고 해석