„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Beispiel für Entscheidungsbaumklassifizierer Beispiel für die Vorhersage von Kundenwanderungen

Beispiel für Entscheidungsbaumklassifizierer Beispiel für die Vorhersage von Kundenwanderungen

Gepostet am 2025-02-06
Durchsuche:532

Decision Tree Classifier Example to Predict Customer Churn

Beispiel für Entscheidungsbaumklassifizierer Beispiel für die Vorhersage von Kundenwanderungen

Überblick

Dieses Projekt zeigt, wie der Kundenabweiche (ob ein Kunde einen Service verlässt) mithilfe eines Entscheidungsbaumklassifizierers vorhersagt. Der Datensatz enthält Funktionen wie ay , monatliche Anklage und Kundendienst ruft mit dem Ziel vor, vorherzusagen, ob ein Kunde sich aufnimmt oder nicht.

.

Das Modell wird unter Verwendung von Scikit-Learns Entscheidungsbaumklassifikator trainiert, und der Code visualisiert den Entscheidungsbaum, um besser zu verstehen, wie das Modell Entscheidungen trifft.


Technologien verwendet

  • python 3.x : Primärsprache zum Erstellen des Modells.
  • pandas : Für Datenmanipulation und Handhabung von Datensätzen.
  • Matplotlib : Für die Datenvisualisierung (Plotting -Entscheidungsbaum).
  • scikit-larn : für maschinelles Lernen, einschließlich Modelltraining und Bewertung.

Schritte erklärt

1. Import notwendige Bibliotheken

import pandas as pd
import matplotlib.pyplot as plt
import warnings
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
  • pandas (pd):

    • Dies wird für die Datenmanipulation und das Laden von Daten in das DataFrame -Format verwendet. Mit Datenrahmen können Sie strukturierte Daten wie Tabellen (Zeilen und Spalten) organisieren und manipulieren.
  • matplotlib (plt):

    • Dies ist eine Handlungsbibliothek, die zur Visualisierung von Daten verwendet wird. Hier wird es verwendet, um den Entscheidungsbaum grafisch zu zeichnen, was dazu beiträgt, zu verstehen, wie Entscheidungen an jedem Knoten des Baumes getroffen werden.
  • warnungen (Warnings):

    • Das Warnmodul wird verwendet, um Warnungen zu unterdrücken oder umzugehen. In diesem Code ignorieren wir unnötige Warnungen, um die Ausgabe sauber und lesbar zu halten.
    • .
  • scikit-larn Bibliotheken:

    • train_test_split : Diese Funktion teilt den Datensatz in Training und Testen von Teilmengen auf. Die Schulungsdaten werden verwendet, um das Modell anzupassen, und die Testdaten werden zur Bewertung seiner Leistung verwendet.
    • DecisionTreeClassifier : Dies ist das Modell, mit dem die Daten klassifiziert und die Kundenabwanderung vorhergesagt werden. Entscheidungsbäume funktionieren, indem sie ein baumartiges Modell von Entscheidungen erstellen, die auf den Merkmalen basieren.
    • accuracy_score : Diese Funktion berechnet die Genauigkeit des Modells, indem sie die vorhergesagten Werte mit den tatsächlichen Werten der Zielvariablen (Abweichung) vergleichen.
    • tree : Dieses Modul enthält Funktionen zur Visualisierung des Entscheidungsbaums, sobald es trainiert ist.

2. Unterdrückung von Warnungen

warnings.filterwarnings("ignore")
  • Diese Zeile sagt Python zu ignorieren Sie alle Warnungen . Es kann hilfreich sein, wenn Sie Modelle ausführen und keine Warnungen (z.
3.

Erstellen eines synthetischen Datensatzes

data = { 'CustomerID': Bereich (1, 101), # eindeutige ID für jeden Kunden 'Alter': [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10, # Alter der Kunden 'Monthly Charge': [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10, # monatliche Rechnung. 'CustomerserviceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10, Nummer der Kundendienstanrufe 'CHURN': ['Nein', 'Nein', 'Ja', 'Nein', 'Ja', 'Nein', 'Ja', 'Ja', 'Nein', 'Ja']*10 # Churn Status } df = pd.dataframe (Daten) print (df.head ())
data = {
    'CustomerID': range(1, 101),  # Unique ID for each customer
    'Age': [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10,  # Age of customers
    'MonthlyCharge': [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10,  # Monthly bill amount
    'CustomerServiceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10,  # Number of customer service calls
    'Churn': ['No', 'No', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'No', 'Yes']*10  # Churn status
}

df = pd.DataFrame(data)
print(df.head())
  • Hier erstellen wir ein

    synthetischer Datensatz für das Projekt. Dieser Datensatz simuliert Kundeninformationen für ein Telekommunikationsunternehmen mit Funktionen wie Alter, monatlich, CustomerServiceCalls und der Zielvariablen (ob der Kunde aufgewühlt oder nicht).

    • customerId : Einzigartige Kennung für jeden Kunden.
    • ay : Kundenalter.
    • monatlycharge : monatliche Rechnung des Kunden.
    • customerServiceCalls : Die Anzahl, mit der ein Kunde Kundendienst bezeichnet.
    • churn : ob der Kunde aufgewühlt (ja/nein).
  • pandas dataframe : Die Daten sind als DataFrame (df) strukturiert, eine zweidimensionale beschriftete Datenstruktur, die eine einfache Manipulation und Analyse von Daten zulässt.

    .
4.

Aufteilung von Daten in Funktionen und Zielvariable

x = df [['Alter', 'Monthlycharge', 'CustomerserviceCalls']] # Features y = df ['kurn'] # Zielvariable
data = {
    'CustomerID': range(1, 101),  # Unique ID for each customer
    'Age': [20, 25, 30, 35, 40, 45, 50, 55, 60, 65]*10,  # Age of customers
    'MonthlyCharge': [50, 60, 70, 80, 90, 100, 110, 120, 130, 140]*10,  # Monthly bill amount
    'CustomerServiceCalls': [1, 2, 3, 4, 0, 1, 2, 3, 4, 0]*10,  # Number of customer service calls
    'Churn': ['No', 'No', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'No', 'Yes']*10  # Churn status
}

df = pd.DataFrame(data)
print(df.head())
  • features (x) : die unabhängigen Variablen, die verwendet werden, um das Ziel vorherzusagen. In diesem Fall umfasst es Alter, monatliche und customerserviceCalls.
  • Zielvariable (y) : Die abhängige Variable, die der Wert ist, den Sie vorhersagen möchten. Hier ist es die Spalte der Abwanderung, die angibt, ob ein Kunde sich abwenden wird oder nicht.
5.

Aufteilung der Daten in Training und Testssätze Sets

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  • trainieren_test_split teilt den Datensatz in zwei Teile auf: a Trainingset (verwendet, um das Modell zu trainieren) und a testing set (zur Bewertung des Modells).
    • test_size = 0.3 : 30% der Daten werden zum Testen beiseite gelegt, und die verbleibenden 70% werden für das Training verwendet.
    • random_state = 42 stellt die Reproduzierbarkeit der Ergebnisse sicher, indem der Samen für den Zufallszahlengenerator fixiert wird.

6. Schulung des Entscheidungsbaummodells

clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
  • DecisionTreeClassifier () initialisiert das Entscheidungsbaummodell.
  • clf.fit (x_train, y_train) trainiert das Modell mit den Trainingsdaten. Das Modell lernt Muster aus den X_train -Funktionen, um die Y_train -Zielvariable vorherzusagen.

7. Vorhersagen machen

y_pred = clf.predict(X_test)
  • clf.predict (x_test) : Nach dem Training des Modells wird es verwendet, um Vorhersagen im Testsatz (x_test) zu machen. Diese vorhergesagten Werte werden in y_pred gespeichert, und wir werden sie mit den tatsächlichen Werten (y_test) vergleichen, um das Modell zu bewerten.
  • .

8. Bewertung des Modells

accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
  • accuracy_score (y_test, y_pred) berechnet die Genauigkeit des Modells, indem sie die vorhergesagten Abwanderungsbezeichnungen (y_pred) mit den tatsächlichen Churn -Labels (y_test) aus dem Testsatz vergleichen.
  • Die Accuracy ist ein Maß dafür, wie viele Vorhersagen korrekt waren. Es wird zur Bewertung ausgedruckt.

9. Visualisierung des Entscheidungsbaums

plt.figure(figsize=(12, 8))
tree.plot_tree(clf, filled=True, feature_names=['Age', 'MonthlyCharge', 'CustomerServiceCalls'], class_names=['no churn', 'churn'])
plt.show()
  • tree.plot_tree (clf, gefüllt = true) : Visualisiert das trainierte Entscheidungsbaummodell. Das gefüllte = echte Argument färbt die Knoten basierend auf dem Klassenetikett (Churn/No Churn).
  • feature_names : Gibt die Namen der Funktionen (unabhängige Variablen) an, die im Baum angezeigt werden.
  • class_names : Gibt die Klassenbezeichnungen für die Zielvariable (Churn) an.
  • plt.show () : Zeigt die Baumvisualisierung an.

Ausführen des Codes

  1. Klonen Sie das Repository oder laden Sie das Skript herunter.
  2. Installieren Sie Abhängigkeiten:
   pip install pandas matplotlib scikit-learn
  1. Führen Sie das Python -Skript oder das Jupyter -Notizbuch aus, um das Modell zu trainieren und den Entscheidungsbaum zu visualisieren.
Freigabeerklärung Dieser Artikel ist reproduziert unter: https://dev.to/atifwattoo/decision-tree-classifier-example-to-predict-customer-churn-51fc?1 Wenn es zu Verletzungen besteht Es.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3