Permutation Feature Importance
* Permutation Feature Importnace
1. 특정 모델에 특화된 방법이 아닌 , 어느 모델이든(model-agnostic) 학습 후 적용(post-hoc) 하는 방법.
2. Black-box 모델에 대하여, 특정 feature를 안 썼을 때, 이것이 성능 손실에 얼마만큼의 영향을 주는지를 통해 그 feature의 중요도를 파악하는 방법
* 주요 특징
1. 재학습 시킬 필요가 없음 (특정 feature의 값들을 무작위로 섞어서(permutation) 그 feature를 노이즈로 만드는 것)
1-1. 무작위로 섞게 되면, 목표 변수와 어떠한 연결고리를 끊게 되는 것이므로, 그 feature를 안 쓴다고 할 수 있음
1-2. 이렇게 섞었을 때 예측값이 실제 값보다 얼마나 차이가 더 생겼는지를 통해 해당 feature의 영향력을 파악
1-3. 모델이 이 변수에 크게 의존하고 있을 경우에는 예측 정확도가 크게 감소
1-4. 학습한 모델과 데이터만 있으면 변수 중요도를 뽑아주는 방법이기 때문에, 모델의 학습 과정, 내부 구조에 대한 정보가 필요 없어서 어느 모델이든 적용 가능
2. 각 feature의 중요도는 ‘partial importance’가 아니다.
2-1. 각 feature의 중요도 안에는 다른 feature들과의 교호 작용도 포함
2-2. feature의 값들을 랜덤으로 섞으면, 다른 feature들과의 연결고리도 끊어지게 되어, 해당 feature와 관련이 있는 모든 교호 작용의 영향이 사라질 것
2-3. 두 feature 간 교호작용의 영향은 그 두 개의 feature importance 각각에 중복 포함
* 주의할 점
1. 방법은 값을 무작위로 섞는 것이 특징이라 결과가 적용 시마다 매우 달라질 수 있습니다.
1-1. 물론 이 점은 섞는 횟수를 늘림으로써 예측 에러의 분산을 감소시킬 수 있지만, feature의 개수가 매우 많을 경우에는 연산량이 증가 -> 따라서, Permutation의 적절한 횟수 선택 중요
2. 무작위로 섞다 보면매우 비현실적인 데이터 인스턴스(instance)를 생성 가능성이 있는데 특히 변수들 간의 상관관계가 클 때 이런 문제점이 발생하기 쉽다.
2-1. 예를 들어, 변수 중에 ‘키’와 ‘몸무게’가 있다고 할 때, 이 두 변수들은 상식적으로 상당한 연관이 있어 키의 값들을 랜덤으로 섞다 보면, 키가 2m인데 몸무게가 30kg인 인스턴스가 만들어지는 것이 가능
2-2. 이런 사례가 충분히 있을 만한 사례라고 보기는 어렵지만 이처럼 데이터의 이러한 비개연성, 비현실성이 증가하면, 예측값에 지대한 영향을 미칠 가능성이 있고, 이렇게 해서 중요도가 높게 나온다 해도 우리가 원하던 ‘Feature Importance’는 아님
2-3. 따라서, 미리 변수들 간 상관관계가 매우 높은지 확인하고, 이를 염두에 두고 결과를 해석
* 결론
1. 불순도 기반 변수 중요도와 비교했을 때, Permutation Feature Importance는 상당히 robust 한 변수 중요도를 제공
2. 모델 및 파라미터에 따라 변수 중요도의 아주 큰 차이가 없다는 것을 확인