SHAP-gegevensverzamelingen genereren tijdens voorspellingen
SHAP importance-gegevensverzamelingen kunnen worden gegenereerd als u een voorspelling uitvoert. U kunt de SHAP‑berekeningen in deze gegevensverzamelingen gebruiken om te begrijpen welke kenmerken de belangrijkste bijdragers zijn voor de voorspelde waarden.
SHAP‑gegevensverzamelingen bevatten de SHAP‑berekeningen op rijniveau voor de kenmerken die worden gebruikt om het model te trainen. Deze waarden vertegenwoordigen hoeveel elk kenmerk bijdraagt aan de voorspelde waarde van het doel ten opzichte van alle andere kenmerken op die rij.
De SHAP importance kan ons bijvoorbeeld vertellen of een kenmerk de kans vergroot of verkleint dat een klant vertrekt en hoe sterk dit kenmerk de uitkomst beïnvloedt.
Nadat u uw voorspelling hebt uitgevoerd en de gegevensverzamelingen hebt gegenereerd, kunt u de ‑waarden in een Qlik Sense-app laden en ze naast de voorspelde waarden visualiseren. Zie SHAP-waarden in Qlik Sense-apps visualiseren en SHAP-waarden gebruiken in echte applicaties voor meer details.
Dit Help-onderwerp gaat dieper in op het genereren van SHAP-gegevensverzamelingen tijdens voorspellingen van ML-implementaties. Voor informatie over SHAP importance-diagrammen die worden getoond tijdens de experimenttraining, raadpleegt u SHAP importance in experimenttrainingen begrijpen.
Beschikbare opties voor het genereren van SHAP-gegevensverzamelingen
Bij het configureren van een voorspelling kunt u ervoor kiezen om SHAP-gegevensverzamelingen te genereren in twee verschillende indelingen. Beide opties geven dezelfde informatie, maar ze zijn op verschillende manieren opgebouwd.
SHAP
Dit is een gegevensverzameling waarin SHAP-waarden voor elk kenmerk in een kolom worden uitgesplitst. Deze optie is niet beschikbaar voor multiclass-classificatiemodellen.
Coördinaat SHAP
Dit is een gegevensverzameling waarin alle SHAP‑waarden alleen in twee kolommen worden opgenomen: een 'kenmerk'-kolom en een 'waarde'-kolom. Deze optie is beschikbaar voor alle modeltypes.
Gegevensverzamelingen van multiclass-modellen werken iets anders dan gegevensverzamelingen van binaire modellen. Voor elk record dat voorspeld moet worden, wordt een nieuwe rij gemaakt waarbij de SHAP-waarde voor elke mogelijke klasse beschikbaar is om door het model te worden voorspeld. In de gegevensverzameling wordt er ook een aanvullende kolom gemaakt om de klasse te identificeren die de SHAP-waarde vertegenwoordigt.
Als voorspellingen en SHAP-waarden in een Qlik Sense-app worden geladen en er een gegevensmodel wordt gemaakt, zijn coördinaat SHAP‑gegevensverzamelingen makkelijker om mee te werken dan SHAP-gegevensverzamelingen.
Voorbeelden
De volgende tabellen bevatten samples van SHAP en coördinaat SHAP-gegevensverzamelingen, die zijn gegenereerd op basis van een regressiemodel dat met vijf kenmerken is getraind. De samples bevatten SHAP-waarden voor twee records van de toe te passen gegevensverzameling (komt overeen met twee account-id's).
Deze voorbeelden markeren het verschil tussen de manier waarop de gegevens zijn opgebouwd.
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‑voorspellingswaarden interpreteren
In tegenstelling tot de waarden in het SHAP importance-diagram dat wordt getoond tijdens de experimentraining, bevatten SHAP-gegevensverzamelingen SHAP-verzamelingen op rijniveau die directionaliteit hebben. In andere woorden: het zijn geen absolute waarden, maar de waarden kunnen positief of negatief zijn. Bij het visualiseren in een applicatie kunt u ervoor kiezen om ze als absolute waarden te aggregeren, afhankelijk van uw usecase.
De SHAP-waarde voor een record moet worden geanalyseerd met betrekking tot de overeenkomende voorspelde waarde voor dat record. Afhankelijk van het modeltype (binaire classificatie, multiclass-classificatie of regressie) moet de directionaliteit van de SHAP-waarden net iets anders worden geïnterpreteerd.
Classificatie-modellen
Bij binaire classificatiemodellen geven grote positieve SHAP-waarden een grotere invloed op een van de twee mogelijke uitkomsten aan, en hoge negatieve waarden geven een grotere invloed op de andere uitkomst aan. Als u deze gegevens in een applicatie gebruikt, staat de directionaliteit van de SHAP-waarden mogelijk de vereiste analyse niet toe. Om dit op te lossen, kunt u de richting van de SHAP-waarden omdraaien (bijvoorbeeld door de volledige kolom te vermenigvuldigen met -1). Ga voor meer informatie over de SHAP‑richtingscontrole naar Voorbereidingen.
Een SHAP-gegevensverzameling van een multiclassmodel is anders opgebouwd. Voor elk te voorspellen record bevat deze een afzonderlijke rij voor elke mogelijke klasse, samen met een overeenkomstige SHAP-waarde voor die klasse. De klasse wordt opgegeven in een 'Predicted_class' kolom.
In uw coördinaat SHAP-gegevensverzameling interpreteert u de SHAP-waarden van multiclassmodelvoorspellingen als volgt:
Een hoge positieve SHAP-waarde geeft aan dat het kenmerk een hogere invloed heeft dat het resultaat de opgegeven 'Predicted_class' is.
Een hoge negatieve SHAP-waarde geeft aan dat het kenmerk een hogere invloed heeft dat het resultaat niet de opgegeven 'Predicted_class' is.
Voorbeeld
Het volgende voorbeeld toont het verschil in de structuur van de gegevensverzameling tussen de uitvoer van binaire- en multiclass-classificatiemodellen.
Stel dat we starten met een toe te passen gegevensverzameling die één rij per account-id bevat. Elk kenmerk waarop het model is getraind, wordt als afzonderlijke kolom weergegeven.
Een enkel record van de account-id ziet er als volgt uit:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Als we een binair classificatiemodel trainen om het resultaat van een Churned-veld te voorspellen, zijn er twee mogelijke resultaten: 'ja' of 'nee'. Op basis van de bovenstaande enkele record van de account-id, ziet de coördinaat SHAP‑gegevensverzameling voor dit record er als volgt uit:
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 |
In de bovenstaande tabel worden de SHAP-waarden voor een enkele account-id weergegeven en ze worden per kenmerk uitgesplitst. Er wordt voor elk kenmerk een nieuwe rij gemaakt en aan elk kenmerk wordt een SHAP-waarde toegewezen. De richting en magnitude van deze SHAP-waarden moeten worden gecontroleerd in relatie tot de twee mogelijke resultaten. Hoe hoger de SHAP-waarde, hoe meer invloed het kenmerk heeft op het resultaat met een positieve interpretatie (in dit geval 'ja'). Als deze representatie in plaats daarvan wordt omgedraaid, kunt u de richting van de SHAP-waarden omdraaien (door ze te vermenigvuldigen met -1) om de analyse gemakkelijker te kunnen interpreteren.
Ter vergelijking: stel dat we een multiclass-classificatiemodel trainen om een categorisch PlanType veld te voorspellen (met vier mogelijke resultaten - 'Blue Plan', 'Green Plan', 'Purple Plan' en 'Red Plan'). Op basis van het enkele record van de account-id in de eerst tabel ziet de coördinaat SHAP‑gegevensverzameling voor dit record er als volgt uit:
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 |
In de bovenstaande tabel wordt een enkele account-id weergegeven met 20 afzonderlijke rijen: één rij voor elk kenmerk, met een rij voor de SHAP-waarde die overeenkomt met elk mogelijk resultaat in het doel. De Predicted_class kolom vertegenwoordigt het mogelijke resultaat (klasse) dat voorspeld moet worden, niet per se het werkelijke voorspelde resultaat dat in de voorspellingsgegevensset wordt weergegeven. Uiteindelijk wordt de klasse met de hoogste SHAP-waarde de voorspelde waarde voor het record.
De SHAP-waarden in deze tabel zijn metingen van de invloed dat het opgegeven kenmerk (automl_feature) heeft op het resultaat dat mogelijk de opgegeven klasse (Predicted_class) is. Een grote positieve waarde geeft aan dat het kenmerk een sterke invloed heeft op het voorspelde resultaat dat de opgegeven klasse moet zijn, terwijl een grote negatieve waarde aangeeft dat het kenmerk een sterke invloed heeft dat het voorspelde resultaat niet de opgegeven klasse is.
Regressiemodellen
In een SHAP‑gegevensverzameling die is gegenereerd op basis van een regressiemodel, kan de richting van de SHAP-waarden beter worden geïnterpreteerd.
Een positieve SHAP-waarde komt overeen met een verhoging van de voorspelde waarde voor de rij.
Een negatieve SHAP-waarde komt overeen met een vermindering van de voorspelde waarde voor de rij.
Berekening van SHAP-waarden
SHAP-waarden worden berekend voor verschillende algoritmen. SHAP importance wordt berekend met twee verschillende methoden:
SHAP-structuur: een snelle en precieze methode om SHAP-waarden te schatten voor structuurmodellen
Lineaire SHAP: een methode om SHAP-waarden te berekenen voor lineaire modellen
Algoritme | Ondersteunde modeltypen | SHAP-berekenmethode |
---|---|---|
Random Forest-classificatie | Binaire classificatie, multiclass-classificatie | SHAP-structuur |
XGBoost-classificatie | Binaire classificatie, multiclass-classificatie | SHAP-structuur |
LightGBM-classificatie | Binaire classificatie, multiclass-classificatie | SHAP-structuur |
Catboost-classificatie | Binaire classificatie, multiclass-classificatie | SHAP-structuur |
Logistische regressie | Binaire classificatie, multiclass-classificatie | Lineaire SHAP |
Lasso-regressie | Binaire classificatie, multiclass-classificatie | Lineaire SHAP |
Elastic Net-regressie | Binaire classificatie, multiclass-classificatie | Lineaire SHAP |
Gaussian Naive Bayes | Binaire classificatie, multiclass-classificatie | SHAP niet berekend |
Catboost-regressie | Regressie | SHAP-structuur |
LightGBM-regressie | Regressie | SHAP-structuur |
Lineaire regressie | Regressie | Lineaire SHAP |
Random Forest-regressie | Regressie | SHAP-structuur |
SGD-regressie | Regressie | Lineaire SHAP |
XGBoost-regressie | Regressie | SHAP-structuur |