예측 중 SHAP 데이터 집합 생성
예측을 실행할 때 SHAP importance 데이터 집합이 생성될 수 있습니다. 이러한 데이터 집합에서 SHAP 계산을 사용하면 어떤 기능이 예측 값에 가장 중요한 기여를 하는지 이해할 수 있습니다.
SHAP 데이터 집합에는 모델 교육에 사용되는 기능에 대한 행 수준 SHAP 계산이 포함되어 있습니다. 이러한 값은 해당 행의 다른 모든 기능을 고려하여 각 기능이 대상의 예측 값에 얼마나 기여하는지 나타냅니다.
예를 들어, SHAP 중요성은 특정 기능이 고객 이탈 가능성을 높이는지 여부와 해당 기능이 해당 결과에 얼마나 큰 영향을 미치는지 알려줄 수 있습니다.
예측을 실행하고 데이터 집합을 생성하면 SHAP 값을 Qlik Sense 앱에 로드하고 예측 값과 함께 시각화할 수 있습니다. 자세한 내용은 Qlik Sense 앱에서 SHAP 값 시각화 및 실제 응용 프로그램에서 SHAP 값 사용를 참조하십시오.
이 도움말 항목은 ML 배포에 의한 예측 중 SHAP 데이터 집합 생성에 중점을 둡니다. 실험 교육 중에 표시되는 SHAP importance 차트에 대한 자세한 내용은 실험 교육에서 SHAP importance 이해를 참조하십시오.
SHAP 데이터 집합 생성에 사용할 수 있는 옵션
예측을 구성할 때 두 가지 형식으로 SHAP 데이터 집합을 생성하도록 선택할 수 있습니다. 두 옵션 모두 동일한 정보를 제공하지만 구조는 서로 다릅니다.
SHAP
이는 SHAP 값이 각 기능에 대해 하나의 열로 분리된 데이터 집합입니다. 다중클래스 분류 모델에는 이 옵션을 사용할 수 없습니다.
좌표 SHAP
이는 모든 SHAP 값이 '기능' 열과 '값' 열이라는 두 개의 열에만 포함되도록 구성된 데이터 집합입니다. 이 옵션은 모든 모델 유형에 사용할 수 있습니다.
다중 클래스 모델의 데이터 집합은 이진 모델의 데이터 집합과 약간 다르게 작동합니다. 예측할 각 레코드의 경우 모델에서 예측할 수 있는 가능한 각 클래스의 SHAP 값이 포함된 새 행이 만들어집니다. 데이터 집합에는 SHAP 값이 나타내는 클래스를 식별하기 위한 추가 열도 만들어집니다.
예측 및 SHAP 값을 Qlik Sense 앱에 로드하고 데이터 모델을 만들 때 좌표 SHAP 데이터 집합은 SHAP 데이터 집합보다 작업하기가 더 쉬울 수 있습니다.
예
다음 표에는 5가지 기능에 대해 교육된 회귀 모델에서 생성된 SHAP 및 좌표 SHAP 데이터 집합의 샘플이 포함되어 있습니다. 샘플에는 적용 데이터 집합의 두 레코드(두 개의 계정 ID에 해당)에 대한 SHAP 값이 포함되어 있습니다.
이 예에서는 데이터 구성 방식의 차이점을 강조 표시합니다.
AccountID | AdditionalFeatureSpend_SHAP | Churned_SHAP | CurrentPeriodUsage_SHAP | HasRenewed_SHAP | NumberOfPenalties_SHAP |
---|---|---|---|---|---|
aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | 1.76830971241 |
aa16889 | Churned | -0.58154511451721 |
aa16889 | CurrentPeriodUsage | -1.106874704361 |
aa16889 | HasRenewed | -0.36080026626587 |
aa16889 | NumberOfPenalties | 3.6597540378571 |
aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
aa33396 | Churned | -0.64805734157562 |
aa33396 | CurrentPeriodUsage | 0.076582334935665 |
aa33396 | HasRenewed | 0.38967734575272 |
aa33396 | NumberOfPenalties | -0.31007811427116 |
SHAP 예측 값 해석
실험 교육 중에 표시되는 SHAP importance 차트의 값과 달리, SHAP 데이터 집합에는 방향성이 있는 행 수준 SHAP 계산이 포함되어 있습니다. 즉, 절대값이 아니라 양수 또는 음수가 될 수 있습니다. 응용 프로그램에서 값을 시각화할 때 사용 사례에 따라 절대값으로 집계하도록 선택할 수 있습니다.
레코드의 SHAP 값은 해당 레코드의 해당 예측 값과 관련하여 분석되어야 합니다. 모델 유형(이진 분류, 다중 클래스 분류 또는 회귀)에 따라 SHAP 값의 방향성은 약간 다르게 해석되어야 합니다.
분류 모델
이진 분류 모델의 경우 양수 SHAP 값이 크면 두 가지 가능한 결과 중 하나에 더 큰 영향이 있음을 나타내고, 음수 값이 높으면 다른 결과에 더 큰 영향이 있음을 나타냅니다. 응용 프로그램에서 데이터를 사용할 때 SHAP 값의 방향성으로 인해 필요한 분석이 허용되지 않을 수 있습니다. 이 문제를 해결하려면 SHAP 값의 방향을 반대로 하면 됩니다(예: 전체 열에 -1을 곱함). SHAP 방향 확인에 대한 자세한 내용은 준비을 참조하십시오.
다중 클래스 모델의 SHAP 데이터 집합은 다르게 구성됩니다. 예측할 각 레코드에는 해당 클래스에 해당하는 SHAP 값과 함께 가능한 각 클래스에 대한 별도의 행이 포함됩니다. 이 클래스는 'Predicted_class' 열에 지정됩니다.
좌표 SHAP 데이터 집합에서 다중 클래스 모델 예측의 SHAP 값을 다음과 같이 해석합니다.
양수 SHAP 값이 높으면 해당 기능이 지정된 'Predicted_class' 결과에 더 큰 영향을 미치고 있음을 나타냅니다.
음수 SHAP 값이 높으면 해당 기능이 'Predicted_class'이 지정되지 않은 결과에 더 큰 영향을 미치고 있음을 나타냅니다.
예
다음 예에서는 이진 분류 모델 출력과 다중 클래스 분류 모델 출력 간의 데이터 집합 구조 차이를 보여 줍니다.
계정 ID당 하나의 행이 포함된 적용 데이터 집합로 시작한다고 가정해 보겠습니다. 모델이 교육되는 각 기능은 별도의 열로 표시됩니다.
단일 계정 ID 레코드는 다음과 같습니다.
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Churned 필드의 결과를 예측하기 위해 이진 분류 모델을 교육시키는 경우 '예' 또는 '아니요'라는 두 가지 결과가 나올 수 있습니다. 위의 단일 계정 ID 레코드를 기반으로 이 레코드의 좌표 SHAP 데이터 집합은 다음과 같습니다.
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
aa16889 | BaseFee | -1.5363064624041 |
aa16889 | CurrentPeriodUsage | 0.10787960191299 |
aa16889 | HasRenewed | 1.2441783315923 |
aa16889 | NumberOfPenalties | 2.3803616183224 |
위 표에는 단일 계정 ID에 대한 SHAP 값이 표시되어 있으며 기능별로 분류되어 있습니다. 각 기능에 대해 새 행이 만들어지고 각 기능에는 SHAP 값이 할당됩니다. 이러한 SHAP 값의 방향과 규모는 두 가지 가능한 결과와 관련하여 평가되어야 합니다. 이상적으로 SHAP 값이 높을수록 기능이 긍정적인 해석(이 경우 '예')으로 결과에 많은 영향을 미치게 됩니다. 이 표현이 반대로 바뀌면 SHAP 값의 방향을 반대로 바꿔(-1을 곱함) 분석을 더 쉽게 해석할 수 있습니다.
비교하기 위해, 범주형 PlanType 필드(4가지 가능한 결과 - 'Blue Plan', 'Green Plan', 'Purple Plan' 및 'Red Plan')를 예측하기 위해 다중 클래스 분류 모델을 학습한다고 가정해 보겠습니다. 첫 번째 테이블의 단일 계정 ID 레코드를 기반으로 이 레코드의 좌표 SHAP 데이터 집합은 다음과 같습니다.
AccountID | automl_feature | Predicted_class | SHAP_value |
---|---|---|---|
aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
aa16889 | BaseFee | Green Plan | 0.28876498452748 |
aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
aa16889 | BaseFee | Red Plan | -0.43375542304524 |
aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |
위 표에서 단일 계정 ID는 20개의 별도 행으로 표시됩니다. 즉, 각 기능에 대한 행이 하나 있고, 대상에서 가능한 각 결과에 해당하는 SHAP 값에 대한 행이 있습니다. Predicted_class 열은 예측할 수 있는 결과(클래스)를 나타내며, 반드시 예측 데이터 집합에 표시되는 실제 예측 결과일 필요는 없습니다. 궁극적으로 SHAP 값이 가장 높은 클래스가 레코드의 예측 값이 됩니다.
이 표의 SHAP 값은 지정된 기능(automl_feature)이 지정된 클래스(Predicted_class)일 수 있는 결과에 미치는 영향을 측정한 것입니다. 양수 값이 크면 기능이 지정된 클래스가 될 것으로 예측된 결과에 큰 영향을 미친다는 것을 나타내고, 음수 값이 크면 기능이 지정된 클래스가 아닐 것으로 예측되는 결과에 큰 영향을 미친다는 것을 나타냅니다.
회귀 모델
회귀 모델에서 생성된 SHAP 데이터 집합에서는 SHAP 값의 방향을 해석하기가 더 간단합니다.
양수 SHAP 값은 행에 대한 예측 값의 증가에 해당합니다.
음수 SHAP 값은 행에 대한 예측 값의 감소에 해당합니다.
SHAP 값의 계산
SHAP 값은 다양한 알고리즘에 대해 계산됩니다. SHAP importance는 두 가지 고유한 방법을 사용하여 계산됩니다.
트리 SHAP: 트리 모델의 SHAP 값을 추정하는 빠르고 정확한 방법
선형 SHAP: 선형 모델에 대한 SHAP 값을 계산하는 방법
알고리즘 | 지원되는 모델 유형 | SHAP 계산 방법 |
---|---|---|
임의 포리스트 분류 | 이진 분류, 다중 클래스 분류 | 트리 SHAP |
XGBoost 분류 | 이진 분류, 다중 클래스 분류 | 트리 SHAP |
LightGBM 분류 | 이진 분류, 다중 클래스 분류 | 트리 SHAP |
Catboost 분류 | 이진 분류, 다중 클래스 분류 | 트리 SHAP |
로지스틱 회귀 | 이진 분류, 다중 클래스 분류 | 선형 SHAP |
Lasso 회귀 | 이진 분류, 다중 클래스 분류 | 선형 SHAP |
Elastic Net 회귀 | 이진 분류, 다중 클래스 분류 | 선형 SHAP |
가우시안 나이브 베이즈(Gaussian Naive Bayes) | 이진 분류, 다중 클래스 분류 | SHAP 계산되지 않음 |
Catboost 회귀 | 회귀 | 트리 SHAP |
LightGBM 회귀 | 회귀 | 트리 SHAP |
선형 회귀 | 회귀 | 선형 SHAP |
임의 포리스트 회귀 | 회귀 | 트리 SHAP |
SGD 회귀 | 회귀 | 선형 SHAP |
XGBoost 회귀 | 회귀 | 트리 SHAP |