Generieren von SHAP-Datensätzen während Vorhersagen
SHAP Importance-Datensätze können während der Ausführung einer Vorhersage generiert werden. Sie können die SHAP-Berechnungen in diesen Datensätzen verwenden, um zu verstehen, welche Features am meisten zu den vorhergesagten Werten beitragen.
SHAP-Datensätze enthalten die SHAP-Berechnungen auf Zeilenebene für die Features, die zum Trainieren des Modells verwendet werden. Diese Werte stellen dar, wie viel ein Feature zum vorhergesagten Wert im Ziel im Hinblick auf alle anderen Features dieser Zeile beiträgt.
Beispielsweise kann SHAP Importance angeben, ob ein Feature mehr oder weniger wahrscheinlich macht, dass ein Kunde kündigt, und wie stark das Feature dieses Ergebnis beeinflusst.
Nachdem Sie die Vorhersage ausgeführt und die Datensätze generiert haben, können Sie die SHAP-Werte in eine Qlik Sense App laden und zusammen mit den vorhergesagten Werten visualisieren. Weitere Einzelheiten finden Sie unter Visualisieren von SHAP-Werten in Qlik Sense-Apps und Verwenden von SHAP-Werten in realen Anwendungen.
In diesem Hilfethema geht es um die Generierung des SHAP-Datensatzes während Vorhersagen von ML-Bereitstellungen. Informationen zu SHAP Importance-Diagrammen, die während des Experimenttrainings angezeigt werden, finden Sie unter Verständnis der SHAP Importance im Experimenttraining.
Verfügbare Optionen für das Generieren von SHAP-Datensätzen
Wenn Sie eine Vorhersage konfigurieren, können Sie wählen, die SHAP-Datensätze in zwei verschiedenen Formaten zu generieren. Beide Optionen enthalten die gleichen Informationen, sind aber unterschiedlich strukturiert.
SHAP
Dies ist ein Datensatz, in dem SHAP-Werte in eine Spalte für jedes Feature getrennt werden. Diese Option ist für Mehrklassen-Klassifikationsmodelle nicht verfügbar.
SHAP koordinieren
In diesem Datensatz sind alle SHAP-Werte so strukturiert, dass sie in nur zwei Spalten aufgeteilt werden: einer „Feature“-Spalte und einer „Wert“-Spalte. Diese Option ist für alle Modelltypen verfügbar.
Datensätze aus Mehrklassen-Modellen funktionieren etwas anders als Datensätze aus binären Modellen. Für jeden vorherzusagenden Datensatzeintrag wird eine neue Zeile mit dem SHAP-Wert für jede mögliche Klasse erstellt, die zur Vorhersage durch das Modell verfügbar ist. In diesem Datensatz wird noch eine weitere Spalte erstellt, um die vom SHAP-Wert dargestellte Klasse zu identifizieren.
Wenn Vorhersagen und SHAP-Werte in eine Qlik Sense App geladen werden und ein Datenmodell erstellt wird, kann die Arbeit mit „SHAP koordinieren“-Datensätzen einfacher sein als die Arbeit mit SHAP-Datensätzen.
Beispiele
Die folgenden Tabellen enthalten Beispiele aus SHAP- und „SHAP koordinieren“-Datensätzen, die anhand eines für fünf Features trainierten Regressionsmodells erstellt wurden. Die Beispiele enthalten SHAP-Werte für zwei Datensatzeinträge aus dem Anwendungsdatensatz (was zwei Konto-IDs entspricht).
Diese Beispiele erläutern den Unterschied bei der Datenstrukturierung.
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 |
Interpretieren von SHAP-Vorhersagewerten
Anders als bei den Werten im SHAP Importance-Diagramm, das beim Experimenttraining angezeigt wird, enthalten SHAP-Datensätze SHAP-Berechnungen auf Zeilenebene, die richtungsabhängig sind. Die Werte sind also nicht absolut, sondern können positiv oder negativ sein. Beim Visualisieren der Werte in einer App können Sie je nach Anwendungsfall wählen, ob Sie sie als absolute Werte aggregieren.
Der SHAP-Wert für einen Datensatzeintrag muss hinsichtlich des entsprechenden vorhergesagten Werts für diesen Eintrag analysiert werden. Je nach Modelltyp (Binärklassifikation, Mehrklassen-Klassifikation oder Regression) muss die Richtungsabhängigkeit der SHAP-Werte etwas unterschiedlich interpretiert werden.
Klassifikationsmodelle
Bei Binärklassifikationsmodellen weisen hohe positive SHAP-Werte auf einen stärkeren Einfluss in Richtung eines der beiden möglichen Ergebnisse hin, während hohe negative Werte einen stärkeren Einfluss in Richtung des anderen Ergebnisses angeben. Wenn Sie die Daten in einer App verwenden, verhindert die Richtungsabhängigkeit der SHAP-Werte möglicherweise die erforderliche Analyse. Um dieses Problem zu lösen, können Sie die Richtung der SHAP-Werte umkehren (z. B. die ganze Spalte mit -1 multiplizieren). Weitere Informationen zur SHAP-Richtungsprüfung finden Sie unter Vorbereitungen.
Ein SHAP-Datensatz aus einem Mehrklassenmodell ist anders strukturiert. Er erstellt für jeden vorherzusagenden Datensatzeintrag eine getrennte Zeile für jede mögliche Klasse, zusammen mit dem entsprechenden SHAP-Wert für die Klasse. Die Klasse wird in einer Spalte „Predicted_class“ angegeben.
Interpretieren Sie in Ihrem „SHAP koordinieren“-Datensatz die SHAP-Werte aus Vorhersagen eines Mehrklassenmodells wie folgt:
Ein hoher positiver SHAP-Wert gibt an, dass das Feature einen stärkeren Einfluss auf das Ergebnis hat, das als „Predicted_class“ angegeben ist.
Ein hoher negativer SHAP-Wert gibt an, dass das Feature einen stärkeren Einfluss auf das Ergebnis hat, das nicht als „Predicted_class“ angegeben ist.
Beispiel
Das folgende Beispiel zeigt den Unterschied in der Datensatzstruktur zwischen der Ausgabe eines Binär- und eines Mehrklassen-Klassifikationsmodells.
Wir beginnen mit einem Anwendungsdatensatz, der eine Zeile pro Konto-ID enthält. Jedes Feature, für das das Modell trainiert wird, wird als eigene Spalte dargestellt.
Ein Datensatzeintrag mit einer Konto-ID sieht wie folgt aus:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Wenn wir ein Binärklassifikationsmodell für die Vorhersage des Ergebnisses eines Felds Churned trainieren, gibt es zwei mögliche Ergebnisse: „ja“ oder „nein“. Basierend auf dem Eintrag mit der einen Konto-ID oben sieht der „SHAP koordinieren“-Datensatz wie folgt aus:
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 der obigen Tabelle werden die SHAP-Werte für eine einzelne Konto-ID angezeigt und nach Feature aufgeschlüsselt. Für jedes Feature wird eine neue Zeile erstellt, und jedem Feature wird ein SHAP-Wert zugewiesen. Die Richtung und die Größenordnung dieser SHAP-Werte müssen in Bezug auf die beiden möglichen Ergebnisse bewertet werden. Im Idealfall ist der Einfluss des Features auf das Ergebnis mit positiver Interpretation (in diesem Fall „ja“) umso stärker, je höher der SHAP-Wert ist. Wenn diese Darstellung umgekehrt ist, können Sie die Richtung der SHAP-Werte umkehren (sie mit -1 multiplizieren), damit die Analyse leichter interpretiert werden kann.
Nehmen wir zu Vergleichszwecken an, ein Mehrklassen-Klassifikationsmodell wird für die Vorhersage eines kategorialen Felds PlanType trainiert (mit vier möglichen Ergebnissen: „Blue Plan“, „Green Plan“, „Purple Plan“ und „Red Plan“). Basierend auf dem Eintrag mit der einen Konto-ID in der ersten Tabelle sieht der „SHAP koordinieren“-Datensatz für diesen Eintrag wie folgt aus:
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 der obigen Tabelle wird eine einzelne Konto-ID mit 20 getrennten Zeilen dargestellt: eine Zeile für jedes Feature, mit einer Zeile für den SHAP-Wert, der jedem möglichen Ergebnis im Ziel entspricht. Die Spalte Predicted_class stellt das vorherzusagende mögliche Ergebnis (Klasse) dar, nicht unbedingt das tatsächlich vorhergesagte Ergebnis, das im Vorhersagedatensatz angezeigt wird. Letztlich wird die Klasse mit dem höchsten SHAP-Wert zum vorhergesagten Wert für den Datensatzeintrag.
Die SHAP-Werte in dieser Tabelle sind Messungen des Einflusses, den das angegebene Feature (automl_feature) auf das Ergebnis hat, das möglicherweise die angegebene Klasse ist (Predicted_class). Ein hoher positiver Wert gibt an, dass das Feature einen starken Einfluss darauf hat, dass das vorhergesagte Ergebnis zur angegebenen Klasse wird, während ein hoher negativer Wert angibt, dass das Feature einen starken Einfluss darauf hat, dass das vorhergesagte Ergebnis nicht zur angegebenen Klasse wird.
Regressionsmodelle
In einem SHAP-Datensatz, der aus einem Regressionsmodell generiert wird, lässt sich die Richtung der SHAP-Werte einfacher interpretieren.
Ein positiver SHAP-Wert entspricht einer Erhöhung des vorhergesagten Werts für die Zeile.
Ein negativer SHAP-Wert entspricht einer Verringerung des vorhergesagten Werts für die Zeile.
Berechnung der SHAP-Werte
SHAP-Werte werden für eine Reihe von Algorithmen berechnet. SHAP Importance wird anhand zweier verschiedener Methoden berechnet:
Tree SHAP: Schnelle und genaue Methode zum Schätzen von SHAP-Werten für Baumstrukturmodelle
Linear SHAP: Eine Methode zum Berechnen von SHAP-Werten für lineare Modelle
Algorithmus | Unterstützte Modelltypen | SHAP-Berechnungsmethode |
---|---|---|
Random Forest-Klassifikation | Binärklassifikation, Mehrklassen-Klassifikation | Tree SHAP |
XGBoost-Klassifikation | Binärklassifikation, Mehrklassen-Klassifikation | Tree SHAP |
LightGBM-Klassifikation | Binärklassifikation, Mehrklassen-Klassifikation | Tree SHAP |
CatBoost-Klassifikation | Binärklassifikation, Mehrklassen-Klassifikation | Tree SHAP |
Logistische Regression | Binärklassifikation, Mehrklassen-Klassifikation | Linear SHAP |
Lasso-Regression | Binärklassifikation, Mehrklassen-Klassifikation | Linear SHAP |
Elastic Net-Regression | Binärklassifikation, Mehrklassen-Klassifikation | Linear SHAP |
Gaußsches Naive Bayes | Binärklassifikation, Mehrklassen-Klassifikation | SHAP nicht berechnet |
CatBoost-Regression | Regression | Tree SHAP |
LightGBM-Regression | Regression | Tree SHAP |
Lineare Regression | Regression | Linear SHAP |
Random Forest-Regression | Regression | Tree SHAP |
SGD-Regression | Regression | Linear SHAP |
XGBoost-Regression | Regression | Tree SHAP |