오답노트

[ML] 모델에 대한 설명 본문

Python/ML

[ML] 모델에 대한 설명

권멋져 2022. 9. 5. 17:56

모델에 대한 설명

모델을 통해 예측하고 예측한 결과를 통해 비즈니스 문제를 해결한다. 하지만 인공지능이 예측한 결과라는 근거는 아무런 설득이 되지 않는다. 그 인공지능이 예측을 할 때, 어떤 변수를 고려하여 예측했는지가 중요하다.

 

이 모델들은 설명하기 쉬울 수록 White Box Model, 설명하기 어려울수록 Black Box Model 이라고 한다.

경향을 봤을 땐 White Box Model에 가까울 수록 성능이 낮다고 볼 수 있다.

 

Tree 기반 모델의 변수 중요도

Tree 기반의 모델들은 feature importance라는 변수에 해당 모델의 변수 중요도가 입력되어 있다.

 

변수 중요도를 나타내는 차트

feature importance는 어느 한 노드에서 정하는 것이 아닌 모델 전체에 노드에서 봤을 때, 평균적으로 가장 중요한 feature들 순으로 중요도를 준다.

 

boosting 모델의 변수 중요도

boosting 모델 중 하나인 xgb는 weight, gain, cover라는 세 가지 관점에서 변수 중요도를 확인 해볼 수 있다.

 

  • weight : 모델 전체에서 해당 feature가 split될 때 사용된 횟수의 합
  • gain : feature별 평균 information gain
  • cover : feature가 split 할 때 샘플 수의 평균
from xgboost import plot_importance

# importance_type='weight'
plot_importance(model)
plt.show()

# importance_type='gain'
plot_importance(model, importance_type='gain')
plt.show()

# importance_type='cover'
plot_importance(model, importance_type='cover')
plt.show()

xgb Feature Importance Type = 'weight'
xgb Feature Importance Type = 'gain'
xgb Feature Importance Type = 'cover'