다양한 모델의 해석의 방법에서 범용적으로 적용 가능한 모델의 예측값과 입력값 사이의 관계를 해석하고자 하는 방법론이 존재한다. **PDP(Partial Dependence Plot)**또한 이러한 방법론중 하나로, feature들에 대하여 해당 feature가 target과 학습된 모델 하에서 선형관계인지, 단조증가 관계인지 등을 확인할 수 있다. 즉, feature의 수치를 선형적으로 변형하면서 알고리즘 해석 능력이 얼마나 증가하고 감소하는지를 관찰함으로써 feature값의 변화가 모델에 미치는 영향을 가시적으로 해석할 수 있다.
PDP는 2001년 프리드만(Friedman)이 고안한 모델로 예측 결과와 feature가 어떤 관계에 있는지에 관계없이 상관도를 그릴 수 있도록 공식을 설계했다.
$$ \hat{f}{x_s}( x_s)=E{x_c}\hat{f}(x_s,x_c)=∫\hat{f}(x_s,s_c)dP(x_c) $$
부분 의존성 함수(Partial Dependence Function)은 다음과 같이 정의된다. $x_s$는 부분 의존도 함수가 시각화해야 할 feature이고, $x_c$ 는 머신러닝 모델($\hat{f}$)이 사용하는 feature들을 의미한다. 일반적으로 $x_s$는 하나 또는 두 개의 feature로 구성되며 집합 $S$는 부분 의존성 정도를 알고 싶은 feature들의 집합이다. 부분 의존성 함수는 $x_c$와 $x_s$ 의 조합이 다양할 때 머신러닝 모델의 결과가 어떤 분포를 보이는지 그 차이를 계산하면
$$ \hat{f}{Xs}(X_s)=E{X_c}[\hat{f}(X_s,X_c)] $$
다음과 같이 표현할 수 있고, $x_s$ feature를 고정하고 $x_c$에 대한 모든 값을 모델에 반영하여 평균을 구하는 방식을 통하여 집합 $S$에 대한 PDP를 그릴 수 있게 된다. 따라서 위 공식은 feature $x_s$가 전체 모델에 미치는 영향을 계산하는 공식을 의미하며 $x_s$에 대한 주변확률분포(marginal probability density) 전개식으로, $x_s$ feature의 영향력을 구하기 위해 $x_s$에 따라 변하는 $x_c$ feature의 모든 조합의 평균을 구하는 방식으로 계산되고 이 차이 값이 $x_s$가 모델 $\hat{f}$ 에 영향을 미치는 부분 의존성 수치이다. 좀더 정확하게 풀어서 계산하면
$$ E_{X_c}[f(X_s, X_c)]= \begin{cases} \int f(X_s, X_c)f_{X_c}dx_c,\;\;\;discrete\;\;\;variable \\ \sum f(X_s, X_c)f_{X_c} (x_c),\;\;\; continuous\;\;\;variable \end{cases} $$
와 같이 표현할 수 있다.
예시) odor data에서 (ammonia)와 aca(acetic acid)로 ou(complex odor)를 예측하는 함수가 있을 때, 만의 영향을 보고자 한다. 모든 모집단 데이터에 대해 aca의 분포를 알고있다고 가정하고(discrete variable로 가정) 주어진 (5로 가정)에 대한 예측값이 다음과 같다면,
| x | 200 | 300 | 400 | 500 | 600 |
|---|---|---|---|---|---|
| p(aca=x) | 1/10 | 2/10 | 4/10 | 2/10 | 1/10 |
| f(주어진 NH3=5, aca)의 값 (ou예측값) | 500 | 1000 | 1500 | 2000 | 2500 |
와 같이 표현할 수 있으므로,
$$ f(NH_3=5)=500×\frac{1}{10}+1000×\frac{2}{10}+1500×\frac{4}{10}+2000×\frac{2}{10}+2500×\frac{1}{10}=1500 $$
가 된다.
그러나 실제 데이터에서의 $x_s$ 와 $x_c$들을 다 알기 어려우며 안다고 하더라도 $X_c$가 어떤 분포를 가지는지, 즉 $f_{X_c}(x_c)$ 또한 알지 못한다. 따라서, 실제로 $f(X_s)$ 를 예측할 때는 train data안에 있는 데이터들을 그대로 이용해서 $\hat{f}{X_c}(x_c)$ 를 구하고, 이에 대한 평균값을 구해 부분 영향력(partial effect)를 구한다. 즉, n개의 train data의 $x_c$ 를 각각 넣어보고 1/n으로 평균을 취하는 것이다. 따라서 부분 의존성 함수$\hat{f}{x_s}(x_s)$ 는 몬테카를로 방식을 사용해 근사할 수 있으며 다음과 같이 표현할 수 있다.