当前位置: 首页 > wzjs >正文

查找自己的电子邮箱合肥百度关键词优化

查找自己的电子邮箱,合肥百度关键词优化,java做独立网站爬虫,新河网招聘信息决策树与PCA降维在电信客户流失预测中的应用 在数据分析和机器学习领域,电信客户流失预测是一个经典的案例。本文将通过Python代码实现,探讨决策树模型在电信客户流失预测中的应用,并结合PCA降维技术优化模型性能,同时对比降维前…

决策树与PCA降维在电信客户流失预测中的应用

在数据分析和机器学习领域,电信客户流失预测是一个经典的案例。本文将通过Python代码实现,探讨决策树模型在电信客户流失预测中的应用,并结合PCA降维技术优化模型性能,同时对比降维前后的模型效果。

数据准备

我们从一个名为“电信客户流失数据.xlsx”的Excel文件中导入数据。这些数据包含了电信客户的各种特征以及他们是否流失的标签。通过pandas库的read_excel函数,我们可以方便地将数据加载到DataFrame中。然后,我们将数据集分为特征变量(data)和目标变量(target),其中特征变量是客户的各种属性,目标变量是客户是否流失。

import pandas as pd# 导入数据
datas = pd.read_excel("电信客户流失数据.xlsx")
# 将变量与结果划分开
data = datas.iloc[:, :-1]  # 特征变量
target = datas.iloc[:, -1]  # 目标变量

数据预处理

为了使数据适合模型训练,我们首先对特征变量进行标准化处理。使用StandardScaler对数据进行标准化,使每个特征的均值为0,标准差为1。这一步骤对于许多机器学习算法来说都是必要的,因为它可以消除不同特征之间量纲和数值范围的差异,提高模型的性能和稳定性。

from sklearn.preprocessing import StandardScaler# 数据标准化
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

模型训练与评估

我们选择决策树作为分类模型。决策树是一种简单而强大的分类算法,它通过递归地划分特征空间来构建树结构,从而实现对数据的分类。我们设置了决策树的最大深度为4,以防止模型过于复杂而导致过拟合。使用train_test_split函数将数据集划分为训练集和测试集,其中测试集占20%。然后,我们使用训练集对决策树模型进行训练,并在训练集和测试集上分别进行预测,生成混淆矩阵和分类报告。

from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report, confusion_matrix
import matplotlib.pyplot as plt# 划分数据集
data_train, data_test, target_train, target_test = train_test_split(data_scaled, target, test_size=0.2, random_state=42)# 定义决策树
dtr = DecisionTreeClassifier(criterion='gini', max_depth=4, random_state=42)
dtr.fit(data_train, target_train)# 训练集混淆矩阵
train_predicted = dtr.predict(data_train)
print("训练集分类报告:")
print(classification_report(target_train, train_predicted))# 测试集混淆矩阵
test_predicted = dtr.predict(data_test)
print("测试集分类报告:")
print(classification_report(target_test, test_predicted))

为了更直观地展示模型的分类效果,我们绘制了混淆矩阵的可视化图。混淆矩阵是一个表格,用于描述分类模型在测试集上的分类结果。通过混淆矩阵,我们可以清楚地看到模型对每个类别的预测情况,包括真正例、假正例、真负例和假负例的数量。

# 绘制可视化混淆矩阵
def cm_plot(y, yp):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')# 绘制训练集混淆矩阵
cm_plot(target_train, train_predicted)
plt.title("训练集混淆矩阵")
plt.show()# 绘制测试集混淆矩阵
cm_plot(target_test, test_predicted)
plt.title("测试集混淆矩阵")
plt.show()

在这里插入图片描述

PCA降维

PCA(主成分分析)是一种常用的降维技术,它通过将原始数据投影到新的特征空间,保留数据的主要方差信息,从而减少数据的维度。在本例中,我们设置PCA保留95%的方差,这意味着降维后的数据将保留原始数据95%的信息。我们对训练集和测试集分别进行PCA降维,并使用降维后的数据重新训练决策树模型。

在这里插入图片描述

from sklearn.decomposition import PCA# 应用 PCA 降维
pca = PCA(n_components=0.95)  # 保留95%的方差
data_train_pca = pca.fit_transform(data_train)
data_test_pca = pca.transform(data_test)# 定义决策树
dtr_pca = DecisionTreeClassifier(criterion='gini', max_depth=4, random_state=42)
dtr_pca.fit(data_train_pca, target_train)# 测试集混淆矩阵(降维后)
test_predicted_pca = dtr_pca.predict(data_test_pca)
print("降维后测试集分类报告:")
print(classification_report(target_test, test_predicted_pca))

模型性能对比

通过对比降维前后的模型性能,我们可以发现一些有趣的现象。在未降维的情况下,模型的准确率达到了一定的水平,但在降维后,模型的准确率可能会有所变化。这可能是因为PCA降维虽然减少了数据的维度,但同时也可能丢失了一些对分类有帮助的信息。然而,如果降维后的模型性能仍然可以接受,那么PCA降维就可以在一定程度上简化模型,提高模型的训练速度和效率。

# 对决策树测试集进行评分
accuracy_no_pca = dtr.score(data_test, target_test)
print(f"未降维的准确率: {accuracy_no_pca:.4f}")# 降维后的准确率
accuracy_with_pca = dtr_pca.score(data_test_pca, target_test)
print(f"降维后的准确率: {accuracy_with_pca:.4f}")# 输出结果
print(f"降维前后准确率对比:")
print(f"未降维: {accuracy_no_pca:.4f}")
print(f"降维后: {accuracy_with_pca:.4f}")

可视化决策树

为了更好地理解决策树模型的结构,我们可以将决策树可视化。通过plot_tree函数,我们可以清晰地看到决策树的每个节点和分支,了解模型是如何进行分类的。

from sklearn.tree import plot_tree# 可视化决策树(未降维)
plt.figure(figsize=(12, 8))
plot_tree(dtr, filled=True, feature_names=data.columns, class_names=["未流失", "流失"])
plt.title("未降维的决策树")
plt.show()# 可视化决策树(降维后)
plt.figure(figsize=(12, 8))
plot_tree(dtr_pca, filled=True, class_names=["未流失", "流失"])
plt.title("降维后的决策树")
plt.show()

运行结果

在这里插入图片描述
在这里插入图片描述

总结

通过本文的实验,我们可以看到决策树模型在电信客户流失预测中的应用效果,以及PCA降维对模型性能的影响。在实际应用中,我们可以根据具体的数据和需求,选择合适的模型和降维方法,以达到最佳的预测效果。同时,可视化工具如混淆矩阵的可视化图和决策树的可视化图,也可以帮助我们更好地理解和评估模型的性能。

http://www.dtcms.com/wzjs/133388.html

相关文章:

  • 建设门户网站特点太原首页推广
  • 建立传媒公司网站百度优化公司
  • 网站平台建设的重要性优化网站平台
  • 网站设计素养软件开发app制作公司
  • 怎么做阿里妈妈推广网站百度指数峰值查询
  • 口碑好的网站推广软件百度下载正版
  • 自己的网站发文章怎么做外链成都网站优化排名推广
  • 人人装修网怎么快速优化关键词
  • 西安网站建设招聘南昌seo方案
  • 网站里的内容都是什么作用明天上海封控16个区
  • 国家高新技术企业有多少家seo快速排名百度首页
  • 汕头市通信建设管理办公室网站电商培训有用吗
  • 安徽省建设工程网站线上网络平台推广
  • 做网站自己申请域名还是对方十大最靠谱培训机构
  • 老榕树网站建设seo的基础优化
  • 网站设计思路作用大学生网页设计主题
  • 英文网站建设图片百度问一问免费咨询
  • 怎么做移动端的网站新品牌进入市场的推广方案
  • 快递物流公司网站模板百度搜索引擎排行榜
  • 服装设计素材网站如何写好一篇软文
  • 网站建设网络推广广告语深圳网站维护
  • 做学校后台网站网络推广公司介绍
  • 怎样建设大型网站属于免费的网络营销方式
  • 没有官方网站怎么做seo优化自己怎么做网址开网站
  • 深圳百度关键词推广排名优化人员配置
  • 使用wget对网站做镜像网络营销案例
  • 福州建站免费模板杭州网站建设技术支持
  • 怎样做分类网站合肥seo招聘
  • 自媒体人专用网站百度接单平台
  • 网站建设网站维护公司注册流程