news 2026/6/10 5:20:02

决策树项目——电信客户流失预测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
决策树项目——电信客户流失预测

AUC性能测量

在机器学习中,性能测量是一项基本任务。因此,当涉及到分类问题时,我们可以依靠AUC - ROC曲线。当我们需要检查或可视化多类分类问题的性能时,我们使用AUC(曲线下面积)ROC(接收器工作特性)曲线。它是检查任何分类模型性能的最重要评估指标之一。

AUC的含义

AUC是衡量学习器优劣的一种性能指标。从定义可知,AUC可通过对ROC曲线下各部分的面积求和而得。AUC越大,说明模型对正负样本的区分能力越强,模型的性能也就越好。

AUC的优点

AUC考虑了分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价。它不受样本不平衡问题的影响,因此是一个相对稳健的评价指标。

项目案例:

import pandas as pd # 可视化混淆矩阵 def cm_plot(y, yp): from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt cm = confusion_matrix(y, yp) plt.matshow(cm, cmap=plt.cm.Blues) plt.colorbar() for x in range(len(cm)): for y in range(len(cm)): plt.annotate(cm[x, y], xy=(y, x), horizontalalignment='center', verticalalignment='center') plt.ylabel('True label') plt.xlabel('Predicted label') return plt # 导入数据 datas = pd.read_excel(r"E:\xwechat_files\wxid_qi43v1w2nqcb12_e432\msg\file\2025-12\电信客户流失数据.xlsx") # 将变量与结果划分开 data = datas.iloc[:, :-1] # 1、datas.年龄 datas[年龄] datas.iloc[ : , :-1] target = datas.iloc[:, -1] # # 划分数据集 """ 导入模块对数据进行划分; """ from sklearn.model_selection import train_test_split data_train, data_test, target_train, target_test = \ train_test_split(data, target, test_size=0.2, random_state=42) # 定义决策树 from sklearn import tree dtr = tree.DecisionTreeClassifier(criterion='gini', max_depth=8, random_state=60) dtr.fit(data_train, target_train) """ 训练集混淆矩阵 """ # 训练集预测值 train_predicted = dtr.predict(data_train) from sklearn import metrics # 绘制混淆矩阵 print(metrics.classification_report(target_train, train_predicted)) # 可视化混淆矩阵 cm_plot(target_train, train_predicted).show() """ 测试集混淆矩阵 """ # 测试集预测值 test_predicted = dtr.predict(data_test) # 直接得到预测的结果 # 绘制混淆矩阵 print(metrics.classification_report(target_test, test_predicted)) # 可视化混淆矩阵 cm_plot(target_test, test_predicted).show() # 对决策树测试集进行评分 dtr.score(data_test, target_test) '''AUC值的计算''' y_pred_proba = dtr.predict_proba(data_test) a = y_pred_proba[:, 1] auc_result = metrics.roc_auc_score(target_test, a) '''绘制AUC-ROC曲线''' import matplotlib.pyplot as plt from sklearn.metrics import roc_curve # 得到不同阈值的roc # 计算ROC曲线的点 fpr, tpr, thresholds = roc_curve(target_test, a) # 用来计算不同阈值下的fpr和tpr, # 绘制ROC曲线 plt.figure() plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve(area=%0.2f)' % auc_result) plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') # 函数来绘制一条从点 (0,0) 到点 (1,1) 的线段。 plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver Operating Characteristic') plt.legend() plt.show() # 到逻辑回归里

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:21:53

Excalidraw图形序列化格式分析:JSON结构详解

Excalidraw图形序列化格式分析:JSON结构详解 在当今的远程协作时代,可视化表达已成为团队沟通的核心方式之一。从产品原型到系统架构设计,从教学讲解到项目复盘,一张清晰的手绘风格草图往往比千言万语更有效。而 Excalidraw 作为一…

作者头像 李华
网站建设 2026/6/10 13:19:01

Qwen3-32B-MLX-8bit:双模式切换的AI新体验

Qwen3系列最新成员Qwen3-32B-MLX-8bit正式发布,凭借独特的双模式切换能力和8位量化技术,在保持高性能的同时实现了本地部署效率的突破,为AI应用带来更灵活的使用体验。 【免费下载链接】Qwen3-32B-MLX-8bit 项目地址: https://ai.gitcode.…

作者头像 李华
网站建设 2026/6/10 13:21:44

Excalidraw构建流程剖析:前端打包优化空间

Excalidraw构建流程剖析:前端打包优化空间 在现代前端工程中,一个项目的构建体验往往决定了开发者的幸福感和交付效率。尤其是像 Excalidraw 这样集成了复杂图形渲染、实时协作与 AI 生成功能的 Web 应用,其构建流程不仅关乎启动速度和部署性…

作者头像 李华
网站建设 2026/6/10 13:36:24

Qwen3-Coder-30B:256K上下文代码助手

Qwen3-Coder-30B:256K上下文代码助手 【免费下载链接】Qwen3-Coder-30B-A3B-Instruct-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF 代码大模型领域再添强将——Qwen3-Coder-30B-A3B-Instruct正式发布&…

作者头像 李华
网站建设 2026/6/10 3:14:37

14、Windows 10 文件操作全攻略

Windows 10 文件操作全攻略 在计算机的世界里,文件是至关重要的元素。计算机中的所有数据都存储在磁盘上,计算机通常有一个主磁盘,也就是内部硬盘驱动器,常被称为 C 盘(“驱动器”和“磁盘”这两个术语可以互换使用)。磁盘中的内容被组织成一个个文件,同时磁盘也被划分…

作者头像 李华
网站建设 2026/6/10 11:20:45

Whisper-base.en:68万小时训练的英文ASR模型

OpenAI推出的Whisper-base.en模型凭借68万小时的海量训练数据,成为英文语音识别领域的高效解决方案,为开发者和企业提供了轻量级yet高性能的自动语音识别(ASR)工具。 【免费下载链接】whisper-base.en 项目地址: https://ai.gi…

作者头像 李华