Rumah >pembangunan bahagian belakang >Tutorial Python >Contoh Pengelas Pokok Keputusan untuk Meramalkan Perpecahan Pelanggan
Projek ini menunjukkan cara meramalkan perubahan pelanggan (sama ada pelanggan meninggalkan perkhidmatan) menggunakan Pengelas Pokok Keputusan. Set data termasuk ciri seperti umur, caj bulanan dan panggilan khidmat pelanggan, dengan matlamat untuk meramalkan sama ada pelanggan akan berpusing atau tidak.
Model ini dilatih menggunakan Pengelas Pokok Keputusan Scikit-learn dan kod itu menggambarkan pepohon keputusan untuk lebih memahami cara model membuat keputusan.
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
Panda (pd):
Matplotlib (plt):
Amaran (amaran):
Scikit-belajar perpustakaan:
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
warnings.filterwarnings("ignore")
Di sini, kami mencipta set data sintetik untuk projek itu. Set data ini mensimulasikan maklumat pelanggan untuk syarikat telekomunikasi, dengan ciri seperti Umur, Caj Bulanan, Panggilan Perkhidmatan Pelanggan dan pembolehubah sasaran Churn (sama ada pelanggan meragam atau tidak).
Pandas DataFrame: Data distrukturkan sebagai DataFrame (df), struktur data berlabel 2 dimensi, membolehkan manipulasi dan analisis data yang mudah.
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
warnings.filterwarnings("ignore")
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())
X = df[['Age', 'MonthlyCharge', 'CustomerServiceCalls']] # Features y = df['Churn'] # Target Variable
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
clf = DecisionTreeClassifier() clf.fit(X_train, y_train)
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
Atas ialah kandungan terperinci Contoh Pengelas Pokok Keputusan untuk Meramalkan Perpecahan Pelanggan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!