일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- dataengineering
- python
- Kafka
- 파이썬
- kafkaconnect
- airflow
- Linux
- AWS
- DataPlatform
- tmux
- Feature Importance
- S3
- 설치
- 데이터엔지니어
- 개발
- Today
- Total
GuriLogs.
Permutation Feature Importance 본문
8.5 Permutation Feature Importance | Interpretable Machine Learning
이 글은 위 문서를 번역, 요약한 내용입니다.
Permutation Feature Importance
Permutation Feature Importance (순열 피처 중요도)
- feature values (실제 결과와 그 feature 사이의 관계를 끊는 (즉, 무작위로 섞어서 관계 없게 만든다는 뜻))를 permuted(바꿔 넣은) 후 모델 예측 error 증가를 측정하여 실제 error와 비교
1. Theory
이론은 간단하다.
피처를 바꿔 넣은 후 모델의 예측 오차의 증감을 계산하여 중요도를 측정한다. 모델이 예측을 위해 피처에 의존했으므로 오차가 증가했을 경우 그 피처는 중요하다. 반면에 오차가 동일하다면 그 피처는 중요하지 않다.
Fisher, Rudin, and Dominici (2018) 에서 피처 j를 바꿔 넣는 것 대신에 데이터셋을 반으로 나누고 두 데이터셋의 피처 j값을 교환하는 것을 제안했다.
생각해보면 피처 j를 바꿔 넣은 것과 정확히 같다.
더 정확한 측정치를 원한다면, 각 인스턴스를 서로 다른 인스턴스의 피처 j 값과 쌍으로 구성하여 피처 j의 오차를 측정할 수 있다. (자신 제외)
이렇게 하면 n(n-1) 사이즈의 데이터셋을 얻게 되며 이는 많은 양의 계산 시간이 필요하다.
극도로 정확한 측정치를 얻고 싶다면 n(n-1) -method 를 추천한다.
2. Should I Compute Importance on Training or Test Data?
Answering the question about training or test data touches the fundamental question of what feature importance is.
2-1. The case for test data
모델이 훈련된 동일한 데이터에 대해 오차를 측정하면, 일반적으로 측정값이 너무 optimisitic(낙관적)이기 때문에 모델이 실제보다 훨씬 더 잘 작동하는 것처럼 보인다.
Permutation Feature Importance는 모델 오차 측정에 의존하기 때문에 우리는 보이지 않는 테스트 데이터를 사용해야 한다.
훈련 데이터에 기초한 Feature Importance는 실제로 모델이 오버피팅되고 피처가 전혀 중요하지 않은 경우에 그 피처가 예측에 있어서 중요하다고 믿게 한다.
2-2. The case for train data
The arguments for using training data are somewhat more difficult to formulate, but are IMHO just as compelling as the arguments for using test data.
훈련 데이터에 기반한 Feature Importance는 예측을 하기 위해 모델에 의존한다는 점에서 중요한 피처를 알려준다.
In practice, you want to use all your data to train your model to get the best possible model in the end. This means no unused test data is left to compute the feature importance. You have the same problem when you want to estimate the generalization error of your model. If you would use (nested) cross-validation for the feature importance estimation, you would have the problem that the feature importance is not calculated on the final model with all the data, but on models with subsets of the data that might behave differently.
However, in the end I recommend to use test data for permutation feature importance.
3. Advantages
Nice interpretation : Feature Importance는 피처의 정보가 파괴되었을 때 모델 오차는 증가하는 것이다.
FI는 모델의 행동에 대해 매우 압축되고 global한 인사이트를 제공한다.
error difference 대신 error ratio를 사용하는 긍정적인 측면은 FI 측정이 서로 다른 문제에서 비교 가능하다는 것이다. → 뭔소리?
FI는 다른 피처와의 모든 상호작용을 자동으로 고려한다. 피처를 바꾸면서 다른 피처의 상호작용 효과도 파괴된다. 즉, Permutation FI는 메인 피처 효과와 모델 성능에 있어서 상호작용 효과 모두 고려한다. 이는 또한 단점도 된다. 두 피처의 중요도 측정에 두 피처의 상호작용 중요성이 포함되기 때문이다.
Permutation FI는 모델을 retraining할 필요가 없다.
일부 다른 방법에서는 피처를 제거하고 모델을 다시 훈련시킨 후 모델 오차를 비교하는 것을 제안한다. ml 모델의 재훈련은 시간이 오래 걸릴 수 있기 때문에, 오직 한 피처를 바꾸는 것은 많은 시간을 절약할 수 있다.
일부 피처들을 가지고 모델을 재훈련 시키는 방식은 직관적으로 보이지만, 줄어든 데이터를 사용한 모델은 FI에 의미가 없다.
우리는 고정 모델의 FI에 관심이 있다. 줄어든 데이터셋으로 재훈련시키면 우리가 관심 있는 모델과는 다른 모델이 된다.
4. Disadvantages
Permutation FI는 모델의 오차와 연결된다. 본질적으로 나쁜 것은 아니지만, 어떤 경우에는 필요한 것이 아니다.
어떤 경우에는 성능에 대한 의미를 고려하지 않고 모델의 Output이 피처에 따라 얼마나 달라지는지 알고 싶을 수 있다.
예를 들어 성능이 얼마나 감소하는지보다 각 피처에 의해 모델 output 분산 중 어느 정도가 설명되는지에 관심이 있는 경우이다.
Model variance (explained by the features) and feature importance correlate strongly when the model generalizes well (i.e. it does not overfit).
If someone only provides you with the model and unlabeled data – but not the true outcome – you cannot compute the permutation feature importance.
만약 피처들이 상관관계가 있다면, Permutation FI는 비현실적인 데이터 인스턴스에 의해 편향될 수 있다.
피처들이 강하게 상관되어 있는지 확인하고 그럴 경우 FI에 대한 해석에 주의하라. 그러나 양방향 상관관계로는 문제를 드러내기에 충분하지 않을 수 있다.
5. Alternatives
Permutation FI에 대한 불가지론적(agnostic) 대안은 분산 기반 측정이다.
Sobol의 지수 또는 기능 분산 분석과 같은 분산 기반 FI 측정은 예측 함수의 높은 분산을 유발하는 피처에 더 높은 중요도를 부여한다.
또한 SHAP Importance는 분산 기반 FI와 유사하다. 피처를 변경하면 Output이 크게 달라진다. 이러한 중요도 정의는 Permutation FI의 경우와 같은 손실 기반 정의와 다르다. 이는 모델이 오버피팅되었을 때 명백하다.
모델이 Output과 관련이 없는 피처를 사용하고 오버핏되었을 때, Permutation FI는 이 피처가 알맞은 예측을 생성하는데 기여하지 않기 때문에 중요도 0을 부여한다. 반면에 분산 기반 FI는 피처가 변경될 때 예측이 많이 변경될 수 있으므로 피처의 중요도가 높게 측정될 수 있다.
⚠️ 3줄요약
1. feature values (실제 결과와 그 feature 사이의 관계를 끊는 (즉, 무작위로 섞어서 관계 없게 만든다는 뜻))를 permuted(바꿔 넣은) 후 모델 예측 error 증가를 측정하여 실제 error와 비교
2. Permutation Feature Importance는 모델 오차 측정에 의존하기 때문에 우리는 보이지 않는 테스트 데이터를 사용해야 한다.
3. 피처들이 강하게 상관되어 있는지 확인하고 그럴 경우 FI에 대한 해석에 주의하라.
'Data Science' 카테고리의 다른 글
[논문] ResNet : Deep Residual Learning for Image Recognition (0) | 2022.10.09 |
---|