Gå till huvudinnehåll Gå till ytterligare innehåll

Generera SHAP-datauppsättningar under förutsägelser

Datauppsättningar med SHAP-betydelse kan genereras när du kör en förutsägelse. Du kan använda SHAP-beräkningar i de här datauppsättningarna för att förstå vilka funktioner som är de viktigaste bidragsgivarna till de förutsagda värdena.

SHAP-datauppsättningar kan innehålla SHAP-beräkningar på radnivå för de funktioner som används för att träna modellen. Dessa värden anger hur mycket varje funktion bidrar till det förutsagda värdet för målet, med hänsyn taget till alla andra funktioner på den raden.

SHAP-betydelse kan till exempel visa oss om en funktion gör det mer eller mindre sannolikt att en kund kommer att förloras och hur starkt den påverkar det resultatet.

När du har kört din förutsägelse och genererat datauppsättningarna kan du ladda SHAP-värdena till en Qlik Sense-app och visualisera dem tillsammans med de förutsagda värdena. Mer information finns i Visualisering av SHAP-värden i Qlik Sense-appar och Användning av SHAP-värden i verkliga tillämpningar

Det här hjälpämnet fokuserar på generering av SHAP-datauppsättningar under förutsägelser från ML-distributioner. Information om SHAP-betydelsediagram som visas under träning av experiment finns i Förstå SHAP-betydelse vid experimentträning.

Tillgängliga alternativ för att generera SHAP-datauppsättningar

När en förutsägelse konfigureras kan du välja att generera SHAP-datauppsättningar i två olika format. Båda alternativen tillhandahåller samma information, men den struktureras på olika sätt.

SHAP

Detta är en datauppsättning där SHAP-värdena separeras till en kolumn för varje funktion. Det här alternativet är inte tillgängligt för klassificeringsmodeller för multiklasser.

Koordinera SHAP

Detta är en datauppsättning där alla SHAP-värden struktureras så att de finns i endast två kolumner: en funktionskolumn och en värdekolumn. Det här alternativet är tillgängligt för alla modelltyper.

Datauppsättningar från multiklassmodeller fungerar något annorlunda jämfört med datauppsättningar från binära modeller. För varje post som ska förutsägas skapas en ny rad med SHAP-värdet för varje möjlig klass som är tillgängligt för förutsägelse av modellen. I datauppsättningen skapas också ytterligare en kolumn för att identifiera vilken klass som SHAP-värdet representerar.

När förutsägelser och SHAP-värden laddas till en Qlik Sense-app och en datamodell skapas kan datauppsättningar från Koordinera SHAP vara enklare att arbeta med än SHAP-datauppsättningar.

Exempel

Följande tabeller innehåller exempel från SHAP-datauppsättningar och Koordinera SHAP-datauppsättningar som har genererats från en regressionsmodell som tränats på fem funktioner. Exemplen innehåller SHAP-värden för två poster från tillämpa datauppsättning (motsvarar två konto-ID:n).

I de här exemplen framgår skillnaden i hur data struktureras.

SHAP dataset sample
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
Coordinate SHAP dataset sample
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend1.76830971241
aa16889Churned-0.58154511451721
aa16889CurrentPeriodUsage-1.106874704361
aa16889HasRenewed-0.36080026626587
aa16889NumberOfPenalties3.6597540378571
aa33396AdditionalFeatureSpend0.80359643697739
aa33396Churned-0.64805734157562
aa33396CurrentPeriodUsage0.076582334935665
aa33396HasRenewed0.38967734575272
aa33396NumberOfPenalties-0.31007811427116

Tolka SHAP-förutsägelsevärden

Till skillnad från värdena i SHAP-betydelse-diagrammet som visas under experimentträningen innehåller SHAP-datauppsättningar SHAP-beräkningar på radnivå som har direktionalitet. De är med andra ord inte absoluta värden, men kan i stället vara positiva eller negativa. När värdena visualiseras i ett program kan du välja att aggregera dem som absoluta värden, beroende på ditt användningsfall.

SHAP-värdet för en post ska analyseras avseende motsvarande förutsagt värde för den posten. Beroende på modelltyp (binär klassificering, multiklassklassificering eller regression) ska SHAP-värdenas direktionalitet tolkas något olika.

Klassificeringsmodeller

I binära klassificeringsmodeller indikerar stora positiva SHAP-värden större påverkan på ett av de två möjliga resultaten, och kraftigt negativa värden indikerar större påverkan på det andra resultatet. När data används i ett program kan SHAP-värdenas direktionalitet eventuellt inte möjliggöra den analys som du behöver. För att lösa det kan du vända om SHAP-värdenas riktning (till exempel genom att multiplicera hela kolumnen med -1). Mer information om riktningskontroll i SHAP finns i Förberedelser.

En SHAP-datauppsättning från en multiklassmodell struktureras på ett annat sätt. För varje post som ska förutsägas inkluderar den en separat rad för varje möjlig klass tillsammans med ett motsvarande SHAP-värde för den klassen. Klassen anges i en Predicted_class-kolumn.

I din koordinerade SHAP-datauppsättning tolkas SHAP-värdena från förutsägelser i multiklassmodeller på följande sätt:

  • Ett starkt positivt SHAP-värde indikerar att funktionen har större påverkan mot det resultat som anges som Predicted_class.

  • Ett starkt negativt SHAP-värde indikerar att funktionen har större påverkan mot att resultatet inte är det som anges som Predicted_class.

Exempel

I följande exempel framgår skillnaden i datauppsättningarnas struktur mellan utdata från binära och multiklassklassificeringsmodeller.

Anta att vi startar med en tillämpa datauppsättning som innehåller en rad per konto-ID. Alla funktioner som modellen tränas på representeras som en separat kolumn.

En enstaka konto-ID-post skulle se ut så här:

Single record from a dataset on which predictions will be generated
AccountIDAdditionalFeatureSpendBaseFeeCurrentPeriodUsageHasRenewedNumberOfPenalties
aa1688918 33.52210.1yes4

Om vi tränar en binär klassificeringsmodell till att förutsäga resultatet från ett Churned-fält kommer det att finnas två möjliga resultat: "ja" eller "nej". Baserat på den enstaka konto-ID-posten ovan kommer Koordinera SHAP-datauppsättningen för den här posten att se ut så här:

Sample from coordinate SHAP dataset for binary classification model prediction
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend-0.049129267835076
aa16889BaseFee-1.5363064624041
aa16889CurrentPeriodUsage0.10787960191299
aa16889HasRenewed1.2441783315923
aa16889NumberOfPenalties2.3803616183224

I ovanstående tabell visas SHAP-värdena för ett enstaka konto-ID, och de är nedbrutna efter funktion. En ny rad skapas för varje funktion och varje funktion tilldelas ett SHAP-värde. Riktning och storlek för de här SHAP-värdena måste utvärderas i förhållande till de två möjliga resultaten. Ju högre SHAP-värdet är, desto större påverkan kommer funktionen ha på resultatet med en positiv tolkning (i det här fallet "ja") i idealfallet. Om den här representationen i stället vänds om kan du vända om riktningen på SHAP-värdena (multiplicera dem med -1) för att göra analysen enklare att tolka.

Som jämförelse kan vi anta att vi tränar en klassificeringsmodell med multiklasser för att förutsäga ett kategoriskt PlanType-fält (med fyra möjliga resultat: "Blue Plan", "Green Plan", "Purple Plan" och "Red Plan"). Baserat på den enstaka konto-ID-posten i den första tabellen kommer Koordinera SHAP-datauppsättningen för den här posten att se ut så här:

Sample from coordinate SHAP dataset for multiclass classification model prediction
AccountIDautoml_featurePredicted_classSHAP_value
aa16889AdditionalFeatureSpendBlue Plan0.004155414339679
aa16889AdditionalFeatureSpendGreen Plan0.0066376343942741
aa16889AdditionalFeatureSpendPurple Plan-0.014411468558894
aa16889AdditionalFeatureSpendRed Plan0.003618419824941
aa16889BaseFeeBlue Plan0.089301017079318
aa16889BaseFeeGreen Plan0.28876498452748
aa16889BaseFeePurple Plan0.055689421438434
aa16889BaseFeeRed Plan-0.43375542304524
aa16889CurrentPeriodUsageBlue Plan-0.0040098954629816
aa16889CurrentPeriodUsageGreen Plan-0.27902537442842
aa16889CurrentPeriodUsagePurple Plan-0.21871561841248
aa16889CurrentPeriodUsageRed Plan0.50175088830388
aa16889HasRenewedBlue Plan-0.011878031228962
aa16889HasRenewedGreen Plan0.036835618725654
aa16889HasRenewedPurple Plan0.13798314881109
aa16889HasRenewedRed Plan-0.16294073630778
aa16889NumberOfPenaltiesBlue Plan0.20519095034486
aa16889NumberOfPenaltiesGreen Plan0.0015682625647107
aa16889NumberOfPenaltiesPurple Plan-0.084355421853302
aa16889NumberOfPenaltiesRed Plan-0.12240379105627

I ovanstående tabell representeras ett enstaka konto-ID med 20 separata rader: en rad för varje funktion, med en rad för det SHAP-värde som motsvarar varje möjligt resultat i målet. Predicted_class-kolumnen representerar det möjliga resultatet (klassen) som ska förutsägas, inte nödvändigtvis det faktiska förutsagda resultatet som visas i datauppsättningen med förutsägelser. I slutänden blir klassen med det högsta SHAP-värdet det förutsagda värdet för den posten.

SHAP-värdena i den här tabellen är måtten på den påverkan som den angivna funktionen (automl_feature) har på att resultatet eventuellt är den angivna klassen (Predicted_class). Ett stort positivt värde anger att funktionen starkt påverkar att det förutsagda resultatet kommer att bli den angivna klassen, medan ett stort negativt värde anger att funktionen starkt påverkar att det förutsagda resultatet inte kommer att bli den angivna klassen.

Regressionsmodeller

I SHAP-datauppsättningar som genereras från en regressionsmodell är SHAP-värdenas riktning enklare att tolka.

  • Ett positivt SHAP-värde motsvarar att det förutsagda värdet för raden ökar.

  • Ett negativt SHAP-värde motsvarar att det förutsagda värdet för raden minskar.

Beräkning av SHAP-värden

SHAP-värden beräknas för ett antal olika algoritmer. SHAP importance beräknas med hjälp av två olika metoder.

  • Träd-SHAP: En snabb och exakt metod för att uppskatta SHAP-värden för trädmodeller

  • Linjär SHAP: En metod för att beräkna SHAP-värden för linjära modeller

Tillgängliga algoritmer efter modelltyper och SHAP-beräkningsmetod
AlgoritmModelltyper som stödsSHAP-beräkningsmetod
Slumpskogsklassificering Binär klassificering, multiklassklassificeringTräd-SHAP
XGBoost-klassificeringBinär klassificering, multiklassklassificeringTräd-SHAP
LightGBM-klassificeringBinär klassificering, multiklassklassificeringTräd-SHAP
Catboost-klassificeringBinär klassificering, multiklassklassificeringTräd-SHAP
Logistisk regressionBinär klassificering, multiklassklassificeringLinjär SHAP
LassoregressionBinär klassificering, multiklassklassificeringLinjär SHAP
Elastiskt nät-regressionBinär klassificering, multiklassklassificeringLinjär SHAP
Gaussisk Naive BayesBinär klassificering, multiklassklassificeringSHAP inte beräknad
Catboost-regressionRegressionTräd-SHAP
LightGBM-regressionRegressionTräd-SHAP
Linjär regressionRegressionLinjär SHAP
SlumpskogsregressionRegressionTräd-SHAP
SGD-regressionRegressionLinjär SHAP
XGBoost regressionRegressionTräd-SHAP

Mer information

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!