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.
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 |
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:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
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:
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 |
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:
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 |
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
Algoritm | Modelltyper som stöds | SHAP-beräkningsmetod |
---|---|---|
Slumpskogsklassificering | Binär klassificering, multiklassklassificering | Träd-SHAP |
XGBoost-klassificering | Binär klassificering, multiklassklassificering | Träd-SHAP |
LightGBM-klassificering | Binär klassificering, multiklassklassificering | Träd-SHAP |
Catboost-klassificering | Binär klassificering, multiklassklassificering | Träd-SHAP |
Logistisk regression | Binär klassificering, multiklassklassificering | Linjär SHAP |
Lassoregression | Binär klassificering, multiklassklassificering | Linjär SHAP |
Elastiskt nät-regression | Binär klassificering, multiklassklassificering | Linjär SHAP |
Gaussisk Naive Bayes | Binär klassificering, multiklassklassificering | SHAP inte beräknad |
Catboost-regression | Regression | Träd-SHAP |
LightGBM-regression | Regression | Träd-SHAP |
Linjär regression | Regression | Linjär SHAP |
Slumpskogsregression | Regression | Träd-SHAP |
SGD-regression | Regression | Linjär SHAP |
XGBoost regression | Regression | Träd-SHAP |