」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 決策樹分類器示例以預測客戶流失

決策樹分類器示例以預測客戶流失

發佈於2025-02-06
瀏覽:823

[2 决策树分类器示例以预测客户流失

Decision Tree Classifier Example to Predict Customer Churn 概述

该项目演示了如何使用决策树分类器来预测客户流失(是否离开服务)。该数据集包含诸如

月度费用

customer Service call

之类的功能,目的是预测客户是否会流失。 该模型是使用Scikit-Learn的决策树分类器训练的,并且代码可视化决策树,以更好地了解模型如何做出决策。 使用的技术

:用于构建模型的主要语言。


:用于数据操作和处理数据集。

    matplotlib
  • :用于数据可视化(绘制决策树)。 scikit-learn
  • :用于机器学习,包括模型培训和评估。
  • 说明了步骤
  • 1。导入必要的库
  • 将熊猫作为pd导入 导入matplotlib.pyplot作为PLT 进口警告 来自sklearn.model_selection导入train_test_split 从Sklearn.Tre Import DecisionTreeTreclalerifier 来自Sklearn.metrics导入精度_score 从Sklearn Import Tree
  • [2

这用于数据操作和将数据加载到数据框架格式中。数据范围允许您组织和操纵结构化数据,例如表(行和列)。

[2 这是一个用于可视化数据的绘图库。在这里,它用于以图形方式绘制决策树,这有助于理解在树的每个节点上如何做出决策。

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
[2
  • 警告模块用于抑制或处理警告。在此代码中,我们忽略了不必要的警告,以保持输出清洁和可读。

    [2

    • train_test_split
    • :此功能将数据集拆分为培训和测试子集。培训数据用于拟合模型,测试数据用于评估其性能。
  • dekindertetreeclalsifier
  • :这是用于对数据进行分类和预测客户流失的模型。决策树通过基于功能创建类似树的决策模型来起作用。

    :此函数通过将预测值与目标变量的实际值进行比较(流失)来计算模型的准确性。

    :此模块在训练决策树后包含用于可视化的函数。
    2。
  • 抑制警告
  • warnings.filterwarnings(“忽略”)

      忽略所有警告
    • 。当您运行模型并且不需要警告(例如关于弃用功能的功能的警告)时,它可能会有所帮助。
  • 3。
  • 创建一个综合数据集

    *10,#客户年龄 “月收费”:[50,60,70,80,90,100,100,110,120,130,140]*10,#每月账单金额 “ customerserviceCalls”:[1,2,3,4,0,2,2,3,4,0]*10,#客户服务电话数量 'Churn':['否','no','YES','','','','','','','','','','','','',是']*10#10# } df = pd.dataframe(数据) 打印(df.head())

    • 在这里,我们为项目创建一个的综合数据集。该数据集模拟了电信公司的客户信息,并具有年龄,每月充电,客户维修和目标变量流失等功能(无论客户是否流失)。
    • :客户的年龄。
    • 每月charager :客户的月账单。
    • :称为客户服务的客户的次数。
    • chrurn :客户是否搅动(是/否)。
  • pandas dataframe

4。将数据分解为功能和目标变量

[2 y = df ['搅动']#目标变量
warnings.filterwarnings("ignore")
  • :用于预测目标的自变量。在这种情况下,它包括年龄,每月充电和客户维修。 目标变量(y)
  • :因变量,这是您要预测的值。在这里,这是搅拌列,它指示客户是否会流失。

5。将数据分解为培训和测试集

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())
  • train_test_split 将数据集拆分为两个部分:a 训练集

    testing set
      (用于评估模型)。
    • :30%的数据用于测试,其余的70%用于培训。
    • 通过修复随机数生成器的种子来确保结果的可重复性。
    • 6。训练决策树模型
    • clf = deciestTreeClalsifier() clf.fit(x_train,y_train)
    • 初始化决策树模型。 使用训练数据训练模型。该模型从X_Train功能中学习模式,以预测y_train目标变量。
    7。
  • 做预测
  • :在训练模型后,它用于对测试集(x_test)进行预测。这些预测的值存储在y_pred中,我们将将它们与实际值(y_test)进行比较以评估模型。

8。评估模型

warnings.filterwarnings("ignore")
  • 通过将预测的搅拌标签(y_pred)与来自测试集的实际搅拌标签(y_test)进行比较来计算模型的准确性。 精度
  • 是对多少预测的度量。它被打印出来进行评估。
  • 9。
  • 可视化决策树

plt.figure(figsize =(12,8)) tree.plot_tree(clf,fill = true,feature_names = ['age',''每月','customerserviceCalls'],class_names = ['no churn','churn','churn'])) plt.show()

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
:可视化训练的决策树模型。填充= true参数颜色基于类标签的节点(Churn/no Churn)。
  • feature_names :指定要在树中显示的功能(自变量)的名称。 class_names :指定目标变量的类标签(Churn)。
      :显示树可视化。
    • 运行代码
    • 克隆存储库或下载脚本。
    • 安装依赖项:
PIP安装pandas matplotlib scikit-learn

运行Python脚本或Jupyter笔记本以训练模型并可视化决策树。

clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
版本聲明 本文轉載於:https://dev.to/atifwattoo/decision-tree-classifier-example-to-predict-customer-churn-51fc?1如有侵犯,請聯繫[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3