블로그블로그

SCSK 온라인 슬롯 Automl 피망 슬롯 | scsk ai automl AI 모델 해석 | 크레이지 Shapley 값 소개

Shapley 값 소개

피망 피망 슬롯/업로드/powered_blog_3-1100x400.png

머신 러닝 (ML) 피망 슬롯의 공포 중 하나는 비교할 수없는 블랙 박스라는 것입니다. 그들 중 일부는 너무 복잡하여 전문가가 아니더라도 그러한 결정이 이루어진 이유를 이해하지 못할 수도 있습니다. 이것은 특히 그러한 피망 슬롯을 사용하여 사람이 감옥에서 석방되어야하는지 또는 환자에게 위험한 외과 적 절차를 받아야하는지 여부를 결정하는 데 사용됩니다.

설명 가능하거나 해석 가능한 ML (종종 XML이라고도 함)의 분야는 ML 모델이 결정을 내리는 방법을 설명하는 도구와 방법을 만드는 데 중점을 둡니다. 이 분야의 기본 기술 중 하나는 Shapley 값 이며이 기사에서는 Shapley 값이 무엇인지, 사용 방법을 간단하게 설명 할 것입니다.

Shapley Value 예제

우리가 농업 그룹이고 올해 100 만 달러의 이익을 얻었다고 가정 해 봅시다. 이 금액을 어떻게 배포해야합니까?

각 멤버에게 고르게 배포 할 수 있습니다. 그러나 회원이 판매의 80%를 기부 한 경우 어떻게해야합니까? 한 회원의 은행 계좌에 돈이 남아 있고 공정한 배포를받을 수 없다면 자선 단체에 모든 것을 내놓을 것이라고 말하면 어떻게 될까요? 회원이 판매량을 늘리지 않고 모든 사람의 생산성을 높이는 기계를 제공하면 판매가 20%증가한 경우 어떻게해야합니까?

각 회원의 기부금은 다양하므로 각 구성원이 어떤 금액을 받아야하는지 결정하는 것은 쉽지 않습니다. "Shapley Value"는 1951 년 Lloyd Shapley 가이 문제를 해결하고 각 회원에게 공정하게 배포하기 위해 제안했습니다.

Shapley는이 도구를 만들 때 협력 게임 이론을 연구하고있었습니다. 그러나 이것을 기계 학습 영역으로 포팅하는 것은 쉬웠습니다. 모델의 예측을 "이익"으로 취급하고 각 특성을 "그룹의 농민"으로 취급해야합니다. Shapley 값은 각 요소가 예측에 얼마나 많은 영향을 미치는지, 그리고 각 기능이 평균 예측에서 예측을 얼마나 멀리 이동하는지 (보다 정확하게) 알려줍니다.

Shapley Value 계산

다음은 하나의 기능 F에 대한 Shapley 값을 계산하는 절차입니다.

  1. 가능한 모든 기능 조합 세트 생성 (동맹국)
  2. 피망 슬롯의 평균 예측 값 계산
  3. 각 파트너십에 대해 예측 값과 F
  4. 각 파트너십에 대한 F와 평균 예측을 사용한 피망 슬롯 예측의 차이를 계산
  5. 각 파트너십의 경우, 평균에서 피망 슬롯의 예측 값을 얼마나 변경했는지 계산하십시오 (즉, 4 단계 3) - 이것은 F의 한계 기여
  6. Shapley 값 = 5 단계에서 계산 된 모든 값의 평균값 (즉, F의 한계 기여의 평균 값)

즉, 기능 F의 Shapley 값은 F가 가능한 모든 연관성에 대해 모델에 제공하는 평균 한계 기여입니다.

간단한 설명을 위해 엄격한 수학적 정의를 피하지만 필요한 경우 Christoph Molnar의 Wikipedia 또는 무료 책 "해석 가능한 머신 러닝"으로 이동하십시오. 계산이 어렵다고 생각할 수도 있지만 사실입니다. K 기능의 경우 2 ** K 연관성이 있으며 Shapley 값의 계산은 기하 급수적으로 척도입니다. 이러한 이유로 Shapley 값을 계산하는 것은 매우 어렵습니다. 이 본질은 수십 년 동안 활용하기가 어려워졌습니다. 그러나 최근에 나는 큰 발견을했습니다.

Python의 Shapley 값

2017 년 Lundberg와 Lee는 "모델 예측 해석에 대한 통일 된 접근 방식"이라는 제목의 논문을 발표했습니다. 그들은 Shapley 값을 여러 다른 모델 설명 기술과 결합하여 쉐이프 값 (Shapley additive explanations)과 해당 쉐프 라이브러리를 만듭니다.

모델에 Shapley 값을 만들려면 실제로 쉐이프 값을 생성합니다. 실제로, 우리의 연구는 Shapley 값을 구현하는 라이브러리를 발견하지 못했습니다. 이것은 Shap이 Shapley 값의 모든 장점을 취했으며 많은 단점을 개선했음을 보여줍니다. 향후 기사를 위해 SHAP 라이브러리에 대한 자세한 분석을 남겨 두지 만 유용한 시각화 기술을 공유하여 흥미를 느낍니다.

Kaggle의 와인 등급 및 가격 데이터 세트의 하위 집합을 사용하겠습니다. 이 데이터 세트에는 5 개의 CSV 파일이 있지만 이번에는 약 8,500 줄을 포함하는 Red.csv 만 처리합니다. 이 데이터 세트에는 세계 최대의 와인 시장 인 Vivino.com에서 얻은 데이터가 포함되어 있습니다. 이 사이트의 각 와인에는 구매 여부를 결정하는 데 도움이되는 등급이 있습니다. 기능 시퀀스 샘플을 사용하여 각 와인의 평가 (5 개 중)를 예측하고 Shap Library를 사용하여 Shapley 값을 평가하십시오.

# 표준 수입가져 오기판다asPD가져 오기NumpyasNP가져 오기matplotlib.pyplotasplt가져 오기Seabornassns가져 오기Shap진드기')

먼저 라이브러리를로드하십시오. 여기에서 LightgBM을 사용하지만 회귀 알고리즘을 사용할 수 있습니다.

red = pd.read_csv ( 'red.csv')'n.v.'red = red.drop (red [non_vintage] .index, axis = 0)'price', 'year', 'number -ofratings']]]]

CSV 파일을 읽고 8 개의 NAN 행을 제거하고 숫자 열에서 X를 생성 한 다음 대상 열로 등급으로 Y를 만듭니다.

가격은 유로의 와인 가격이며, 연도는 와인이 생산 된 해이며, 숫자는 이미이 와인을 평가 한 사람들의 수입니다.

피망 슬롯 생성 및 적합 피망 슬롯

다음, LightGBM 회귀 피망 슬롯을 인스턴스화하고 훈련시킵니다 (CPU에서 2 초 이내에 완료).

explaniner를 만들고 shape_value를 얻습니다

다음, 설명자 객체를 생성하고 그로부터 쉐이프 값을 얻습니다.

# explaniner를 만들고 shape_value를 얻습니다

다음으로 설명자 객체를 생성하고 쉐이프 값을 검색합니다.

print (shap_values.shape) # (8658, 3)

SHAP_VALUES 객체는 X와 같은 모양이며 설명 객체입니다.

print (shap_values ​​[1])

SHAP_VALUES에서 색인 1의 내용을 보면 다음이 포함되어 있음을 알 수 있습니다.

・ .Values-Shap value 자체

・ .Base_Values- 모델의 평균 예측

・ .Data -Original X Data

이들 각각은 필요한 경우 DOT 표기법 액세서를 사용하여 개별적으로 액세스 할 수 있습니다. 고맙게도, 대부분의 쉐이크 플롯은 설명 대상을 받아들이고 백그라운드에서 번거 로움 집약적 인 작업을 수행합니다.

폭포 음모를 만듭니다.

shap.plots.waterfall (shap_values ​​[1])
20220317-1.png

폭포 플롯은 차트의 맨 아래에 표시된 예상 값 e [f (x)]에서 피망 슬롯 예측을 상단의 예측 값 f (x)로 이동시키는 방법을 보여줍니다. 이것들은 바닥에서 가장 낮은 모양 값으로 정렬됩니다.

SHAP_VALUES.BASE_VALUSE에 의해 주어진 예상 값 3.893은 플롯의 맨 아래에 있습니다. shaft_values.data로 지정된 원래 x 데이터는 왼쪽의 기능과 해당 값을 보여줍니다. 마지막으로, shake_values.values에 지정된 쉐이프 값은 예측 값이 증가하는지 또는 감소하는지에 따라 빨간색 또는 파란색 화살표로 표시됩니다.

Numberofratings = 100 및 Year = 2017 은이 와인에 긍정적 인 영향을 미치며 총 이득은 0.02 + 0.04 = 0.06입니다. 그러나 가격 = € 15.50에서 예측 값의 등급은 0.14로 감소합니다. 따라서이 와인의 등급 예측은 3.893 + 0.02 + 0.04-0.14 = 3.818이며, 이는 플롯 상단에 표시됩니다. 쉐이프 값을 합함으로써,이 와인의 등급은 평균 예측보다 0.02 + 0.04-0.14 = -0.08로 계산됩니다. 쉐이프 값을 함께 추가하는 것은 중요한 특성 중 하나이며 Shapley additity 설명이라고하는 이유 중 하나입니다.

또 다른 예를 들어 봅시다.

shap.plots.waterfall (shap_values ​​[14])
20220317-2.png

이 와인에는 숫자 정상 = 100 및 년 = 2017이지만 쉐이프 값은 다릅니다. 첫 번째 플롯에서, Numberfratings = 100 인 결과는 +0.02이지만이 플롯의 경우 -0.02입니다. 첫 번째 줄거리에서 2017 년 = 2017 년은 +0.04이지만이 플롯에서는 +0.08입니다. 이 불일치는 샘플이 특정 기능에 대해 동일한 값을 갖더라도 동일한 쉐이프 값을 가지고 있음을 보장하지 않음을 나타냅니다. 이 기사에서 이유를 설명하지는 않지만 지금은 알아두기에 충분합니다.

마지막으로, 의사 결정 트리 기반 피망 슬롯에서 일반적으로 사용되는 기능 중요한 플롯을 살펴 보겠습니다.

shap.plots.bar (shap_values)
20220317-3.png

각 기능의 평균 샤프 값이 그려졌습니다. 가격은 가장 높은 평균 +0.21이지만 연도와 숫자는 각각 +0.03에 가깝습니다. 따라서, 이러한 특징 값의 값이 증가함에 따라, 일반적으로 예측되는 평가 (등급)가 점점 높아집니다.

Shapley Value and H2O

H2O는 Shapley/Shap 값 및 기타 세계적 수준의 모델 해석 가능성 기술을 AI 하이브리드 클라우드 (무인 AI를 통해)와 H2O-3에 통합합니다. 예를 들어, 무인 AI를 사용하면 원본 기능의 Shapley 값을 기능 엔지니어링으로 변환 한 기능의 Shapley 값과 비교할 수 있습니다. 이 기술은 힘든 기능 엔지니어링을 수행하고 두 세트 간의 예측력 차이를 알고 싶다면 유용합니다.

결론

Shapley Values는 70 년 전에 협동 게임에서 공정한 지불을 보장하기 위해 만들어졌습니다. 이제 기계 학습 커뮤니티는이를 채택하여 이론적으로 적절한 방식으로 모델을 해석하는 데 사용합니다. 이 강력하고 귀중한 도구는 빙산의 끝에서 다루었습니다. 우리는이 기사가 Shapley와 Shap을 사용하여 블랙 박스 모델을 더 이해하기 쉬운 유리 상자로 바꾸어 세상에 큰 긍정적 인 영향을 미치기를 바랍니다.

원본 제목

(공식) h2o.ai 블로그
Shapley 값- 부드러운 소개
Adam Murphy

TOP

정보 요청
문의
여기