변수 중요도

변수 중요도 (특성 중요도라고도 함)는 특성이 모델에 얼마나 '중요'한지 나타내는 점수입니다. 예를 들어 두 입력 특성 'f1'과 'f2'가 있는 주어진 모델에서 변수 중요도가 {f1=5.8, f2=2.5}이면 특성 'f1'이 특성 'f2'보다 모델에 더 '중요'합니다. 다른 머신러닝 모델과 마찬가지로 변수 중요도는 결정 트리의 작동 방식을 쉽게 이해할 수 있는 방법입니다.

순열 변수 중요도와 같은 모델에 구애받지 않는 변수 중요도를 결정 트리에 적용할 수 있습니다.

결정 트리에는 다음과 같은 특정 변수 중요도도 있습니다.

  • 특정 변수의 분할 점수 합계입니다.
  • 지정된 변수가 있는 노드 수입니다.
  • 모든 트리 경로에서 처음 발견된 특성의 평균 깊이입니다.

변수 중요도는 다음과 같은 특성에 따라 달라질 수 있습니다.

  • 의미 체계
  • 활용
  • 속성

또한 변수 중요도는 다음에 관한 다양한 유형의 정보를 제공합니다.

  • 모델
  • 데이터 세트
  • 학습 프로세스

예를 들어 특정 특성을 포함하는 조건의 수는 결정 트리에서 특정 특성을 얼마나 보고 있는지 나타내며 변수 중요도를 나타낼 수 있습니다. 학습 알고리즘이 중요하지 않다면 여러 조건에서 특성을 사용하지 않았을 것입니다. 하지만 동일한 특성이 여러 조건에서 나타나는 경우에도 모델이 특성의 패턴을 일반화하려고 시도하지만 일반화하지 못한다는 의미일 수도 있습니다. 예를 들어 특성이 일반화할 정보가 없는 예시 식별자일 때 이러한 상황이 발생할 수 있습니다.

반면 순열 변수 중요도가 높으면 특성 삭제 시 모델 성능이 저하되며 이는 변수 중요도를 나타냅니다. 그러나 모델이 견고하다면 특성을 하나만 삭제해도 모델이 손상되지 않을 수도 있습니다.

다양한 변수 중요도는 모델의 다른 측면에 대한 정보를 제공하므로 여러 변수 중요도를 동시에 살펴보는 것이 좋습니다. 예를 들어 어떤 특성이 모든 변수의 중요도 면에서 중요하다면 이 특성도 중요할 가능성이 높습니다. 또 다른 예로, 특성의 '노드 수' 변수 중요도가 높고 '순열' 변수 중요도가 작은 경우 이 특성은 일반화하기가 어렵고 모델 품질을 저하시킬 수 있습니다.

YDF 코드
YDF에서 model.describe()를 호출하고 '변수 중요도' 탭을 확인하여 모델의 변수 중요도를 확인할 수 있습니다. 자세한 내용은 모델 이해 튜토리얼을 참조하세요.