Foto von Mantas Hesthaven auf UnsplashKundenabwanderung, auch bekannt als Kundenabwanderung, tritt auf, wenn Kunden aufhören, mit einem Unternehmen Geschäfte zu machen. Die Unternehmen sind daran interessiert, Segmente dieser Kunden zu identifizieren, da der Preis für die Gewinnung eines neuen Kunden in der Regel höher ist als für die Beibehaltung des alten Kunden. Wenn Netflix beispielsweise ein Segment von Kunden kennt, bei denen das Risiko besteht, dass sie am laufenden Band sind, können Sie sie proaktiv mit Sonderangeboten ansprechen, anstatt sie einfach zu verlieren.
In diesem Beitrag erstellen wir ein einfaches Vorhersagemodell für die Abwanderung von Kunden mithilfe des Telco Customer Churn Datasets. Wir haben uns für einen Entscheidungsbaum entschieden, um abgewanderte Kunden zu modellieren, Pandas für das Daten-Crunching und matplotlib für Visualisierungen. Wir werden das alles oben in Python machen.
Der Code kann mit einem anderen Datensatz mit ein paar geringfügigen Anpassungen verwendet werden, um das Basismodell zu trainieren. Wir stellen auch einige Referenzen zur Verfügung und geben Ideen für neue Funktionen und Verbesserungen.
Sie können diesen Code ausführen, indem Sie dieses Jupyter-Notizbuch herunterladen.
Hier sind ein paar Links, die Sie interessieren könnten:
- Labeling and Data Engineering for Conversational AI and Analytics- Data Science for Business Leaders - Intro to Machine Learning with PyTorch - Become a Growth Product Manager - Deep Learning (Adaptive Computation and ML series) - Free skill tests for Data Scientists & Machine Learning Engineers
Einige der obigen Links sind Affiliate-Links, und wenn Sie sie durchgehen, um einen Kauf zu tätigen, verdiene ich eine Provision. Denken Sie daran, dass ich Kurse wegen ihrer Qualität verlinke und nicht wegen der Provision, die ich von Ihren Einkäufen erhalte.
Wir verwenden Pandas, um den Datensatz zu lesen und vorzuverarbeiten. Telco Dataset hat einen Kunden pro Zeile mit vielen Spalten (Features). Es gibt keine Zeilen mit allen fehlenden Werten oder Duplikaten (dies geschieht selten bei realen Datensätzen). Es gibt 11 Proben, die TotalCharges auf “ “ gesetzt haben, was wie ein Fehler in den Daten scheint. Wir entfernen diese Beispiele und setzen den Typ auf numeric (float).
df = pd.read_csv('data/WA_Fn-UseC_-Telco-Customer-Churn.csv')df = df.dropna(how=”all”) # remove samples with all missing values
df = df # remove duplicatestotal_charges_filter = df.TotalCharges == " "
df = df
df.TotalCharges = pd.to_numeric(df.TotalCharges)