특성 중요도
모델의 변수 중요도를 확인합니다.
입력 포트
학습된 모델
데이터셋: 모델 학습에 사용된 데이터
출력 포트
데이터셋: 각 특성(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%라면
해당 열은 예측에 거의 영향을 주지 않는다고 할 수 있습니다.
이를 통해 이용해 예측값(학생의 이탈 여부, 자동차 가격, ...)을 결정하는 것에 영향을 주는 것이 무엇인지 즉, 학생이 왜 이탈하는지 / 자동차가 왜 비싼가를 파악할 수 있습니다
계산 방법
모델 평가를 진행합니다
특정 특성(열)의 값을 랜덤하게 섞어서 모델이 예측할 때 해당 특성을 제대로 사용하지 못하게 합니다.
(2번에 의해 특정 특성을 사용하지 못하는 상태에서) 모델을 다시 평가합니다.
1번과 3번의 평가를 비교하여 해당 특성의 중요도를 계산합니다.
모든 특성에 대해 특성 중요도가 계산될 때 까지 2번부터 반복합니다
(간단한 예시)
1번에서의 성능 : 0.90 A를 섞은 후의 성능 : 0.80 -> A의 중요도 : 0.10 B를 섞은 후의 성능 : 0.85 -> B의 중요도 : 0.05 ...
이와 같이 계산한 뒤 합을 1로 정규화(만약 중요도 총합이 0.5라면 모든 값에 * 2)한 다음 퍼센트로 변환합니다.
예제
*데이터의 용량이나 모델의 특성에 따라 특성 중요도 산출에 시간이 다소 소요될 수 있으나, 백그라운드로 나가도 산출 작업은 계속되오니 자유롭게 워크스페이스를 드나들어도 됩니다.*
Last updated