특성 중요도

모델의 변수 중요도를 확인합니다.

입력 포트

  • 학습된 모델

  • 데이터셋: 모델 학습에 사용된 데이터

출력 포트

  • 데이터셋: 각 특성(feature)의 중요도를 나타내는 값들이 포함된 데이터셋입니다. 주요 컬럼은 다음과 같습니다:

    • column_name: 특성(열)의 이름

    • importances_mean: 특성 중요도의 평균값

    • importances_std: 특성 중요도의 표준 편차

    • importances_percent(%): 전체에서 해당 특성의 중요도가 차지하는 비율(%)

설명

모델이 예측할 때 각 변수가 예측값에 얼마나 기여하는지를 백분율로 나타냅니다.

만약 writing score 열의 특성 중요도가 68.1%, gender 열의 특성 중요도가 19.6%라고 한다면

writing score 열은 예측 시에 gender 열에 비해 약 3.4~3.5배정도 기여도(영향력)가 더 크다고 할 수 있습니다.

만약 scored_math score 열의 특성 중요도가 0%라면 해당 열은 예측에 거의 영향을 주지 않는다고 할 수 있습니다.

이를 통해 이용해 예측값(학생의 이탈 여부, 자동차 가격, ...)을 결정하는 것에 영향을 주는 것이 무엇인지 즉, 학생이 왜 이탈하는지 / 자동차가 왜 비싼가를 파악할 수 있습니다

계산 방법

  1. 모델 평가를 진행합니다

  2. 특정 특성(열)의 값을 랜덤하게 섞어서 모델이 예측할 때 해당 특성을 제대로 사용하지 못하게 합니다.

  3. (2번에 의해 특정 특성을 사용하지 못하는 상태에서) 모델을 다시 평가합니다.

  4. 1번과 3번의 평가를 비교하여 해당 특성의 중요도를 계산합니다.

  5. 모든 특성에 대해 특성 중요도가 계산될 때 까지 2번부터 반복합니다

(간단한 예시)

1번에서의 성능 : 0.90 A를 섞은 후의 성능 : 0.80 -> A의 중요도 : 0.10 B를 섞은 후의 성능 : 0.85 -> B의 중요도 : 0.05 ...

이와 같이 계산한 뒤 합을 1로 정규화(만약 중요도 총합이 0.5라면 모든 값에 * 2)한 다음 퍼센트로 변환합니다.

예제

*데이터의 용량이나 모델의 특성에 따라 특성 중요도 산출에 시간이 다소 소요될 수 있으나, 백그라운드로 나가도 산출 작업은 계속되오니 자유롭게 워크스페이스를 드나들어도 됩니다.*

Last updated