In diesem Artikel stellen wir den im April dieses Jahres veröffentlichten Predictive Power Score-Index vor, der für die Auswahl der Feature-Menge verwendet werden kann, sowie die Bibliothek ppscore, die ihn implementiert.
Übrigens wird beim Erstellen eines Vorhersagemodells die Auswahl der zu verwendenden Merkmalsmenge und der zu verwendenden erklärenden Variablen als Merkmalsmengenauswahl bezeichnet.
Es wird zum Zweck von gemacht.
Die Methoden zur Auswahl der Merkmalsmenge können grob wie folgt klassifiziert werden. Der Predictive Power Score entspricht der Wrapper-Methode, bietet jedoch aufgrund seiner Implementierung auch die Vorteile der Filter-Methode.
Methode | Überblick | Charakteristisch |
---|---|---|
Filter | Wählen Sie den Funktionsbetrag aus, indem Sie die Statistik der Daten selbst berechnen, einen Schwellenwert festlegen und abschneiden. | Relativ am rechenintensivsten und für große Datenmengen geeignet |
Embedded | Wählen Sie Features aus und erstellen Sie gleichzeitig ein Modell, z. B. die Regularisierung | Hat Zwischeneigenschaften zwischen der Filtermethode und der Wrapper-Methode |
Wrapper | Wählen Sie Features aus, die für die Vorhersage nützlich sind, indem Sie die Modellkonstruktion und die Feature-Auswahl wiederholen. | Da das Modell tatsächlich konstruiert ist, ist es möglich, Merkmale, die für die Vorhersage nützlich sind, genau auszuwählen, aber die Berechnungskosten sind hoch. |
Predictive Power Score
Predictive Power Score (im Folgenden als PPS bezeichnet) ist ein Konzept, das von einem in Deutschland ansässigen Softwareunternehmen namens 8080Labs entwickelt wurde. Es kann in einer ähnlichen Form wie die Analyse unter Verwendung der Korrelationsmatrix des Pearson-Korrelationskoeffizienten verwendet werden, die häufig in EDA usw. verwendet wird, damit es universeller verwendet werden kann. Es scheint, dass es mit der Motivation entwickelt wird, einen guten Index zu erstellen.
PPS verfügt über die folgenden Funktionen.
Die in 2. erwähnte Definitionsformel ist in der folgenden Tabelle dargestellt.
Aufgabe | PPS-Berechnungsdefinitionsformel |
---|---|
Rückkehr | PPS = 1 - (MAE_model / MAE_naive) |
Einstufung | PPS = (F1_model - F1_naive) / (1 - F1_naive) |
MAE_model
und MAE_naive
sind MAE, wenn y mit x vorhergesagt wird, und MAE, wenn der Medianwert von y vorhergesagt wird. Der Grund für die Berechnung von "_naive" besteht darin, den Standard für die Normalisierung von PPS auf den Bereich 0-1 festzulegen.
Im Fall von "F1_naive" wird die gewichtete F1 für die häufigste Klasse berechnet.
Sie fragen sich vielleicht hier, aber wie machen Sie "Vorhersage"?
Es entspricht der Wrapper-Methode, hat aber auch die Güte der Filter-Methode aus dem Implementierungsinhalt.
Wie oben erwähnt, kann die Berechnung von PPS im Kontext der Merkmalsauswahl in die Wrapper-Methode eingeteilt werden, aber die Vorhersage erfolgt durch Erstellen eines Entscheidungsbaummodells, und die Bewertung wird durch das Modell vermittelt. (Erstellen eines Modells durch Kreuzvalidierung bei der Berechnung der Punktzahl) Berechnen Sie den PPS jedoch einmal. Sobald Sie dies getan haben, können Sie den eingegrenzten Funktionsumfang in ein komplizierteres Modell umwandeln, um ihn als Filtermethode zu verwenden. Dies liegt daran, dass wir, wie die Entwickler sagen, bei der Berechnung der Punktzahl ein einfaches Entscheidungsbaummodell mit einer Variablen erstellen und der Entscheidungsbaum selbst schneller ist als SVM, GBDT, NN usw. .. Ein weiterer Grund für die Verwendung ist, dass bei einem Entscheidungsbaum eine nichtlineare Beziehung erfasst werden kann und die Vorhersageleistung relativ robust ist.
Finden Sie Muster in den Daten
Erkennung von Datenleckage
Da PPS sowohl für kategoriale als auch für numerische Variablen berechnet wird, ist es zweckmäßig, Beziehungen einschließlich der Nichtlinearität zwischen verschiedenen Variablen zu finden.
Wenn der PPS-Wert erheblich höher ist als bei anderen Funktionen, kann vermutet werden, dass die Funktionen zu Leckagen führen können, die viele Informationen enthalten, die zum Zeitpunkt der Vorhersage nicht verwendet werden können.
pip install ppscore
import ppscore as pps
pps.score(df, "feature_column", "target_column")
pps.matrix(df)
Telco Customer Churn ist ein Datensatz, der sich auf Kundeninformationen und Stornierungsinformationen von Internetdiensten bezieht. Die Umgebung verwendet Kaggles Notizbuch. Auf der Datensatzseite befindet sich eine blaue Schaltfläche mit dem Namen "Neues Notizbuch", mit der das Notizbuch so gestartet wird, dass Sie sofort darauf zugreifen können.
Es installieren.
!pip install ppscore
Importieren Sie die Bibliothek und laden Sie die Daten.
import numpy as np
import pandas as pd
import ppscore as pps
import seaborn as sns
import matplotlib.pyplot as plt
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
for filename in filenames:
print(os.path.join(dirname, filename))
PATH ='/kaggle/input/telco-customer-churn/WA_Fn-UseC_-Telco-Customer-Churn.csv'
df = pd.read_csv(f'{PATH}')
df.shape
Überprüfen Sie den Spaltennamen.
list(df.columns)
Churn
ist das Ziel.
['customerID',
'gender',
'SeniorCitizen',
'Partner',
'Dependents',
'tenure',
'PhoneService',
'MultipleLines',
'InternetService',
'OnlineSecurity',
'OnlineBackup',
'DeviceProtection',
'TechSupport',
'StreamingTV',
'StreamingMovies',
'Contract',
'PaperlessBilling',
'PaymentMethod',
'MonthlyCharges',
'TotalCharges',
'Churn']
Überprüfen Sie den Datentyp.
df.dtypes
customerID object
gender object
SeniorCitizen int64
Partner object
Dependents object
tenure int64
PhoneService object
MultipleLines object
InternetService object
OnlineSecurity object
OnlineBackup object
DeviceProtection object
TechSupport object
StreamingTV object
StreamingMovies object
Contract object
PaperlessBilling object
PaymentMethod object
MonthlyCharges float64
TotalCharges object
Churn object
dtype: object
pps.score(df, 'InternetService', 'Churn')
Die Ergebnisse werden im Wörterbuchformat zurückgegeben.
{'x': 'InternetService',
'y': 'Churn',
'task': 'classification',
'ppscore': 1.625853361551631e-07,
'metric': 'weighted F1',
'baseline_score': 0.6235392486748098,
'model_score': 0.6235393098818076,
'model': DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',
max_depth=None, max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=None, splitter='best')}
In der Matrix in der Zeile "Abwanderung" wird der PPS jeder Merkmalsmenge für das Ziel durch eine Heatmap dargestellt, insbesondere der PPS von "Amtszeit", "Monatsgebühren" und "Gesamtgebühren" ist groß. Die Bedeutung der einzelnen ist die Nutzungsdauer des Dienstes, die monatliche Nutzungsgebühr und die kumulierte Nutzungsgebühr, die charakteristische Mengen sind, die in engem Zusammenhang mit der Stornierung stehen. Wenn Sie sich die Zeile "MonthlyCharges" ansehen, ist der PPS-Kontrast von "Internet Service" zu "StreamTV" hoch. Wie Sie dem obigen Datentyp entnehmen können, handelt es sich bei diesen Funktionen um kategoriale Variablen. Es ist jedoch praktisch, die Beziehung zur numerischen Variablen "Monatliche Gebühren" zusammen zu sehen. Es ist leicht zu interpretieren und Sie können sehen, dass der Optionsabonnementstatus verschiedener Internetdienste stark von der Nutzungsgebühr abhängt. Wenn man sich das PPS zwischen den Merkmalen von "Internet Service" und "StreamTV" ansieht, wird außerdem gefolgert, dass sie einen dunklen Kontrast und ähnliche Informationen zueinander haben, und Dimensionskomprimierung und Dimensionsreduzierung können berücksichtigt werden. Ich werde.
Die Matrixberechnung dauerte im Datenrahmen (7043, 21) 1 Minute 55 Sekunden. Es ist noch nicht zu früh, aber wenn Sie 10.000 Dateneinheiten haben, können Sie eine Weile warten. Wenn die Anzahl der Daten zunimmt, können Sie versuchen, Stichproben zu erstellen, um einen Trend zu erhalten.
df_matrix = pps.matrix(df)
plt.figure(figsize=(18,18))
sns.heatmap(df_matrix, vmin=0, vmax=1, cmap="Blues", linewidths=0.5, annot=True)
plt.show()
Bisher haben wir den Predictive Power Score (PPS) eingeführt. Da es leicht auf Daten angewendet werden kann und die Beziehungen zwischen Daten leicht visualisiert werden können, wurde festgestellt, dass es sowohl für die Auswahl von EDA- als auch von Merkmalsmengen verwendet werden kann. Bei der Implementierung von ppscore werden MAE und F1 zur Berechnung des PPS verwendet. Sie können jedoch auch andere Indikatoren ausprobieren, während Sie das PPS-Konzept einbeziehen.
Recommended Posts