늦깎이 공대생의 인공지능 연구실

[해석할 수 있는 기계학습(5-1)] 부분의존도(Partial Dependence Plot) 본문

해석할 수 있는 기계학습/5. 모델 불특정성 방법

[해석할 수 있는 기계학습(5-1)] 부분의존도(Partial Dependence Plot)

Justin T. 2020. 3. 21. 19:39

 부분의존도(PDP 또는 PD plot)는 기계학습 모델의 예측 결과에 대한 하나 또는 두개의 특성들이 갖는 한계 효과(Marginal effect)를 보여줍니다(J. H. Friedman 2001). 부분의존도는 목표값과 특성값 사이의 관계가 선형인지, 변화가 없는지, 혹은 복잡한지를 나타냅니다. 예를 들어, 선형 회귀 모델을 적용할 때, 부분의존도는 선형 관계를 보여줍니다.

 

 회귀에 대한 부분의존함수는 다음과 같은 식으로 나타냅니다.

$$\hat{f}_{x_S}(x_S)=E_{x_C}\left[\hat{f}(x_S,x_C)\right]=\int\hat{f}(x_S,x_C)d\mathbb{P}(x_C)$$

 \(x_S\)는 부분의존함수를 나타내기 위한 특성값이고, \(x_C\)는 기계학습 모델 \(\hat{f}\)에서 사용되는 다른 특성값을 나타냅니다. 보통 집합 S에는 하나 혹은 두 가지 특성값이 있습니다. 집합 S 안의 특성값(들)은 예측에 대한 영향을 알아보고자 사용됩니다. 특성 벡터 \(x_S\)와 \(x_C\)를 결합한 것이 특성공간 x를 구성합니다. 부분의존도는 기계학습 모델 출력을 집합 C에 있는 특성값들의 분포보다 중요하지 않게 함으로서, 함수는 우리가 관심 있는 집합 S의 특성값들과 예측된 결과값 사이의 관계를 나타냅니다. 다른 특성값을 무시함으로써, 우리는 S의 특성값들에만 의존하고, 포함된 다른 특성값들과 상호작용하는 함수를 얻게됩니다.

 

 부분함수 \(\hat{f}_{x_S}\)는 몬테카를로(Monte Carlo)방법이라고도 하는 학습 데이터의 평균을 계산하여 다음과 같이 추정합니다.

$$\hat{f}_{x_S}(x_S)=\frac{1}{n}\sum_{i=1}^n\hat{f}(x_S,x^{(i)}_{C})$$

 

 부분함수는 예측에 대한 평균 한계 효과(Marginal effect)가 무엇인지 특성값 S의 주어진 값에 대해 나타냅니다. 이 공식에서 \(x^{(i)}_{C}\)는 관심이 없는 특성에 대한 데이터셋의 실제 특성값이며, n은 데이터셋의 인스턴스 갯수입니다. PDP의 가정은 C의 특성과 S의 특성 사이의 상관관계가 없다는 의미입니다. 이러한 가정이 위반될 경우 부분의존도에 대해 계산된 평균에는 매우 가능성이 없거나 심지어 불가능한 데이터 포인트가 포함될겁니다(단점 부분에서 이에 대해 다룰 것입니다).

 

 기계학습 모델이 확률을 출력하는 분류의 경우 부분의존도는 S의 특성(들)에 대해 다른 값이 주어진 특정 클래스에 대한 확률을 나타냅니다. 다수의 클래스를 다루는 쉬운 방법은 클래스당 또는 한줄씩 그리는 것입니다.

 

 부분 의존도는 전반적인 방법(Global method) 입니다. 이 방법은 모든 인스턴스를 고려하고 예측된 결과와 특성의 전반적인 관계에 대한 표현을 나타냅니다.

 

카테고리 특성값

 

 지금까지 우리는 수치적 특성값만 고려했습니다. 카테고리 특성값의 경우 부분의존성을 계산하기 매우 쉽습니다. 각 카테고리에 대해, 모든 데이터 인스턴스가 동일한 카테고리를 갖도록 함으로써 PDP 예측치를 얻습니다. 예를 들어 자전거 대여 데이터셋을 보고 계절의 부분의존도에 관심이 있다면 계절마다 하나씩 4개의 숫자를 얻습니다. "여름"의 값을 계산하기 위해, 모든 데이터 인스턴스의 기간을 "여름"으로 대체하고 예측값의 평균을 산출합니다.

 

예제

 실제로 특성 S의 집합은 한 특성값이 2D 플롯을 생성하고 두 특성값이 3D 플롯을 생성하기 때문에 대개 한 특성값 또는 최대 두 특성값만 사용합니다. 그 외의 경우는 다루기에 상당히 까다롭습니다. 심지어 2D로 되어있는 종이나 모니터를 3D로 나타내는건 충분히 도전적인 난이도라 할 수 있습니다.

 주어진 기간에 대여될 자전거의 수를 예측하는 회귀 예제를 떠올려봅시다. 먼저 기계학습 모델을 적합시킨 다음 부분의존성을 분석합니다. 이 경우 랜덤포레스트를 통해 자전거의 수를 예측하고 부분의존도를 이용해 모델이 학습한 관계를 시각화합니다. 기상 특성값이 예측 자전거 수에 미치는 영향은 아래의 그림과 같이 시각화됩니다.

 

자전거 대여 수 예측 모델 및 온도, 습도 및 풍속에 대한 PDP. 온도에서 가장 큰 차이를 볼 수 있다. 날이 더울수록 자전거를 빌린다. 이 경향은 섭씨 20도까지 올라갔다가 30도에서 약간 편평하고 떨어진다. x축의 마크는 데이터 분포를 나타낸다.

 따뜻하지만 너무 덥지 않은 날씨에 이 모델은 평균적으로 많은 수의 자전거를 빌렸다고 예측하고 있습니다. 잠재적 자전거 이용객들은 습도가 60%를 넘을 때 자전거를 빌리는 것에 대해 점점 더 자제하게 됩니다. 또한, 바람이 많이 불수록 자전거 타기를 좋아하는 사람이 적어지는 것은 이치에 맞습니다. 흥미롭게도, 풍속이 25km/h에서 35km/h로 증가할 때 예상 자전거 대여 수는 감소하지 않지만, 학습 데이터는 많지 않기 때문에, 기계학습 모델은 아마도 이 범위에 대한 의미 있는 예측을 배울 수 없었을 것입니다. 적어도 직관적으로, 특히 풍속이 매우 높을 때, 풍속이 증가함에 따라 자전거의 수가 줄어들 것으로 예상할 수 있지요.

 카테고리 특성값을 가진 부분의존도를 설명하기 위해, 예측 자전거 대여량에 대한 계절 특성의 영향을 검토해봅니다.

자전거 대여 수 예측 모델과 계절에 대한 PDP. 예기치 않게 모든 계절이 모델 예측에 유사한 효과를 나타내며, 모델은 봄에만 자전거 대여를 적게 예측한다.

 또한 자궁경부암 분류에 대한 부분의존도를 계산할 수 있습니다. 이번에는 위험요인에 따라 자궁경부암에 걸릴지 예측하기 위해 랜덤 포레스트를 사용합니다. 랜덤 포레스트에 대한 다양한 특성값에 대한 암 확률의 부분의존도를 계산하고 시각화해봅니다.

호르몬 피임약을 사용한 나이와 연도에 근거한 암 확률의 PDP. 연령의 경우, PDP는 40살까지 확률이 낮으며 그 후에 증가한다는 것을 보여준다. 호르몬 피임약을 복용하는 기간이 길어질수록 특히 10년이 지나면 암 발병률이 높아질 것으로 예측된다. 두 특성값 모두 큰 값을 가진 데이터 지점이 많지 않았기 때문에 PD 추정치는 해당 영역에서 신뢰성이 떨어진다.

또한 두 가지 특성값 부분의존성을 한 번에 시각화할 수 있다.

암 발병률과 나이, 임신 횟수의 상호 작용에 대한 PDP. 이 플롯은 45세의 암 발생률의 증가를 보여준다. 25세 미만에서는 1-2명의 임신을 한 여성이 0명 또는 2명 이상의 임신을 한 여성에 비해 암 발병률이 더 낮다. 그러나 결론을 도출할 때는 주의해야 한다. 이건 상관관계일 뿐 인과관계가 아닐 수도 있기 때문이다.

장점

 부분의존도의 연산은 직관적입니다. 특정한 특성값의 부분의존함수는 모든 데이터 포인트가 해당 특성값을 가정하도록 할 경우 평균 예측값을 나타냅니다. 경험에 따르면, 보통 일반인들은 PDP의 철학을 빨리 이해한다.

 

 PDP를 계산한 특성값이 다른 특성값과 상관없는 경우, PDP는 특성값이 평균적으로 예측값에 영향을 미치는 방법을 완벽하게 나타냅니다. 상관없는 경우, 그 해석은 명확합니다. 부분의존도는 j번째 특성값이 변경될 때 데이터셋의 평균 예측값이 어떻게 변하는지 보여줍니다. 특성값이 서로 연관되어 있을 때 더 복잡해집니다. 단점도 참조하십시오.

 

 부분의존도는 구현하기 쉽습니다.

 

 부분의존도에 대한 계산은 인과 해석을 가지고 있습니다. 특성값에 개입하여 예측값의 변화를 측정합니다. 그렇게 함으로써 특성값과 예측값의 인과관계를 분석합니다. 그 관계는 모델에 대해 인과관계를 갖고 있으나 현실에서 언제나 그렇지만은 않습니다(왜냐하면 특성값의 함수로서 모델의 결과를 분명히 모델링하기 때문입니다).

단점

 부분의존함수의 실제 최대 특성값의 수는 2개입니다. 이것은 PDP의 문제가 아니라 2차원 표현(종이나 화면)의 문제이며 또한 3차원 이상을 상상할 수 없는 직관력의 문지입니다.

 

 일부 PDP는 특성값 분포를 나타내지 않는다. 데이터가 거의 없는 지역을 지나치게 해석할 수 있기 때문에 분포를 생략하는 것은 오해를 불러일으킬 수 있습니다. 이 문제는 x축의 데이터 포인트에 대한 표시자를 나타내거나 히스토그램을 보여줌으로써 쉽게 해결할 수 있습니다.

 

 PDP는 독립성의 가정이 가장 큰 문제입니다. 부분의존성이 계산되는 특성값은 다른 특성값과 상관관계가 없다고 가정합니다. 예를 들어, 사람의 몸무게와 키를 고려할 때, 사람이 얼마나 빨리 걷는지 예측하고 싶다고 가정해봅니다. 예를 들어 키와 같은 특성값의 부분의존성에 대해서는 다른 특성값(몸무게)이 키와 상관관계가 없다고 가정하는데 이는 명백히 잘못된 가정입니다. 특정 키(예: 200 cm)에서 PDP를 계산할 때, 우리는 몸무게의 한계 분포를 평균하는데, 이는 2미터의 사람에게 비현실적인 50 kg 미만의 중량을 포함할 수 있습니다. 즉, 다음과 같은 상황이 벌어집니다. 특성값이 상관있을때 실제 확률이 매우 낮은 특성값 분포 영역에서 새로운 데이터 지점을 생성합니다(예를 들어 키가 2m이지만 몸무게가 50kg 미만일 가능성은 낮다). 이 문제에 대한 한 가지 해결책은 한계 분포 대신 조건부로 작동하는 누적지역효과도(Accumulated Local Effect plots) 또는 짧은 ALE이라 합니다.

 

 PDP가 평균 한계 효과만 표시하기 때문에 다른 효과는 드러나지 않을 수 있습니다. 특성값의 경우 데이터 포인트의 절반이 positive의 연관성을 가지고 있다고 가정하고(특성값이 클수록 예측값은 커짐) 나머지 반은 음의 연관성을 가지고 있고 가정합니다(특성값이 작을수록 예측값은 커짐). 데이터셋의 두 절반의 효과가 서로를 상쇄할 수 있기 때문에 PD 곡선은 수평선이 될 수 있습니다. 그런 다음 특성값이 예측값에 영향을 미치지 않는다고 결론짓습니다. 집계된 기대곡선 대신 개별 조건부 기대 곡선을 표시함으로써 이질적인 효과를 발견할 수 있습니다.

소프트웨어 및 대안

 PDP를 구현하는 여러 R 패키지가 있습니다. 예를 들어 iml 패키지를 사용했지만 pdpDALEX도 있습니다. Python에서는 부분의존도가 Scikit-Learn에 내장되어 있으며 PDPBox에서도 사용할 수 있습니다.

 

여기서 제시된 PDP의 대안은 ALE및 ICE 곡선이 있습니다.

 

참고자료: https://christophm.github.io/interpretable-ml-book/pdp.html

 

5.1 Partial Dependence Plot (PDP) | Interpretable Machine Learning

Machine learning algorithms usually operate as black boxes and it is unclear how they derived a certain decision. This book is a guide for practitioners to make machine learning decisions interpretable.

christophm.github.io

 

반응형