본문 바로가기
Archive/데이터 분석 관련

[Data] Shapely Value 간단하게 알아보기

by 다람이도토리 2022. 3. 17.

Shapely Value를 생각하려는 목적은?

"Shapley Value"는, 변수들간의 기여도를 파악하는 것을 목적으로 두고 있다. 
구체적으로는 특정 변수가 예측에 얼마나 영향을 주는지 고려하기 위해, 이 변수와 관련된 모든 변수의 조합을 입력하며 결과를 비교, 최종적으로 변수의 기여도를 계산한다.

즉, 이렇게 하게 되면 '다른 변수와의 상호작용'을 고려하며 변수의 영향을 측정하게 된다.

Shapely Value의 계산

기본적으로 하나의 특성에 대한 중요도를 알기 위해

- 여러 특성들의 조합을 구성
- 계산하려는 특성의 유무에 따른 평균적인 변화의 가중합을 계산하게 된다.
(가중치는, 특성의 조합이 어떻게 될 수 있는지 경우의 수에 의해 결정된다)

"이 특성이 사용되었는지?"와, "사용되지 않았는지", 두 가지 상황을 같이 본다.
만일 특성의 영향이 크다면, 기여도의 차이가 더 크게 났을 것이기 때문이다.

 수식으로 표현하기

(F : 전체 집합)
(S : 전체 집합에서 i번째 데이터가 빠진 나머지 모든 부분집합)

Shapley Value의 장단점

Shapley Value의 경우는 모든 데이터 중 관심있는 관측치 별로 데이터의 중요도를 파악할 수 있다. (waterfall plot)
또한, 범주형 변수일 경우 각 label별로 어떻게 feature가 학습되었는지 파악가능하다.

그러나 변수의 개수가 늘어날수록, 학습량이 기하급수적으로 늘어나게 된다. (위의 식만 봐도 ! 연산이 사용되었다는 것을 생각해보면..)

* XAI 공부할 때, 제대로 와서 심층적인 내용을 하기로.