research notes

Partial Dependency Plot (PDP plot) 본문

인공지능 신뢰성/eXplainable AI(XAI)

Partial Dependency Plot (PDP plot)

forest62590 2022. 6. 23. 21:03
728x90

1. Partial Dependency Plot 개요

PDP는 관심 대상인 변수와(input features of interest) 타겟 간에 어떠한 관계가 있는지 두 대상간의 상호작용을 시각화하고 분석하는 방법이다. 이 때, 관심 대상인 변수는 최대 2개까지 함께 확인할 수 있는데 변수가 2개를 넘게 되면 타겟을 포함하여 시각화 해야하는 값이 3개를 넘어가면서 시각적으로 표현하기 매우 어렵기 때문이다. 

 

여러개의 특징(features) 중에서  영향력을 보고 싶은 특징을(input features of interest) \(x_{s}\)(selected), 그 외 선택되지 않은 특징을 \(x_{c}\)(complement)라고 하자. PDP는 \(x_{s}\), \(x_{c}\) 간에 서로 독립임을 가정하고 시작되나 실제로는 종종 위배되며, 실제 분석에선 주로 feature importance를 통해 유의미하게 나온 특징들이나 도메인 지식을 통해 중요 할 것이라 생각되는 특징들을 선정하여 우선 확인한다.

2. PDP 계산방법

- feature가  p개 \((X_{1}, X_{2}, … , X_{p})\)

- \(X = X_{s} \cup X_{c}\)  [S: Selected(관심 대상)인 feature set), C: 그 이외(marginal) feature set] 

- 사전 학습된 모델 \(\hat{f}(X) (= \hat{f}(X_{s} , X_{c}))\)

 

위와 같을 때 PDP 계산방법은 두 변수의 결합 분포(joint distribution)에 대해  \(X_{c}\)의 기대값을 취해,  \(X_{s}\)의 주변 분포(marginal distribution)를 구하면 된다. 이때 \( \hat{f}(X_{s}, X_{c}) \)는 '예측값을 내뱉는 함수'이고 \(\hat{f}_{X_{c}}(x_{c})\)는 \( \hat{f}(X_{s}, X_{c}) \)가 발현될 확률을 나타낸다. 

 

$$ \hat{f}_{X_{s}}(x_{s}) = E_{X_{c}}[\hat{f}(X_{s}, X_{c})] = \int \hat{f}(X_{s}, X_{c})\hat{f}_{X_{c}}(x_{c})dx_{c} (연속형) = \sum \hat{f}(X_{s}, X_{c})\hat{f}_{X_{c}}(x_{c})(이산형) $$

 

예를 들어(Ref. [2]), 몸무게와 키로 연봉을 예측하는 함수가 있다고 해보자. 즉 다음과 같다. ‘f(몸무게, 키) = 연봉’. 이때 몸무게만의 영향을 보기 위해, 모든 모집단 데이터에 대해 키의 분포를 알고 있다면, (주어진 몸무게, 키) 에 대한 모든 값들을 키의 pdf에 따라 평균 내는것. 만약 대한민국사람들의 키의 모집단 분포가 다음과 같고, 주어진 몸무게(예를들어 60)에서의 예측값이 다음과 같다면,

 

x 160 170 180 190
p(키 = x) 4/8 2/8 1/8 1/8
f(주어진 몸무게=60, 키 x)의 값 (연봉예측값) 150 200 300 250

\(f(몸무게=60) = 150∗\frac{4}{8} + 200∗\frac{2}{8} + 300∗\frac{1}{8} + 250∗\frac{1}{8} = 193.75\)가 된다.

 

그러나 실제 계산에서는 \(X_{s}, X_{c}\) 가 어떠한 분포를 가지고 있는지 알 수 없다. 따라서 실제 구현에서는 아래와 같은 공식을 사용한다. (n은 학습데이터의 수)

 

$$ \frac{1}{n}\sum_{i}^{n} \hat{f}(X_{s}, x_{ic}) $$

 

정해진 \(X_{s}\)에 대해서(예를들면 몸무게 60), 이 자리에 \( (X_{s}, x_{1c}), ..., (X_{s}, x_{nc})\) 를 넣고 \(\frac{1}{n}\)한게 \( \hat{f}_{X_{s}}(x_{s}) \) 인것이다. 이를 \(X_{s}\)가 존재할 수 있는 parameter space에 대해 (예를들면 몸무게 50kg~130kg)쭉 반복하면 최종적으로 \( \hat{f}_{X_{s}}(x_{s}) \) 를 추정하고, 그림을 그릴 수 있다. 

3. PDP 장단점

장점:

해석이 직관적이고 명확함은 물론 다른 기법들에 비해 상대적으로 구현하기가 쉽다.

 

단점:

그러나 한 Plot에 그려서 직관적으로 해석할 수 있는 최대 feature의 개수는 2개이며, 계산시 \(X_{s}\)의 \( \hat{f}_{X_{s}}(x_{s}) = E_{X_{c}}[\hat{f}(X_{s}, X_{c})] \)로 주어진 모든 n개의 \(X_{c}\)에 대해 기댓값(평균값)을 취하기 때문에 임의의 고정된 \(X_{s}\)에 대해서 각 n개의 점들이 갖는 분포가 무시된다.

4. Individual Conditional Expectation plot (ICE Plot)

PDP에서의 단점을 보완하기 위해 ICE Plot에서는 모든 train data에 대한 예측값을 평균하여 plot하는 PDP와는 달리 관심변수 \(X_{s}\)가 변화할 때 어떻게 예측값이 변하는지를 모든 train 데이터에 대해 보여준다. 이때 PDP는 ICE에서 생기는 각 line에 평균을 취한 것 과 같다.

 

\(f(X_{s})^{(i)} = f(X_{s}, X_{c}^{(i)}), i = 1, 2, 3, ..., n \)

 

예를 들어 (n x q)의 크기로 구성된 데이터 셋에서 \(X_{c}\)로 지정된 feature들은 그대로 두고, 관심변수 \(X_{s}\)를 lower bound에서 부터 upper bound까지 값을 바꾼다. 즉, 각 \(X_{s}\)하나당 (n x q) 형태의 데이터 셋이 만들어진다. 이 결과들에 대해 평균을 취하면 PDP가 되고 그냥 다 활용하게 되면 ICE plot이 된다.

 

References:

[1] http://dmqm.korea.ac.kr/activity/seminar/297

[2] https://godongyoung.github.io/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/2019/04/13/Partial-Depedence-Plot.html

[3] https://godongyoung.github.io/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/2019/04/29/Individual-Conditional-Expectation-(ICE).html

728x90
Comments