Python对中国电信消费者特征预测:随机森林、朴素贝叶斯、神经网络、最近邻分类、逻辑回归、支持向量回归(SVR)

简介: Python对中国电信消费者特征预测:随机森林、朴素贝叶斯、神经网络、最近邻分类、逻辑回归、支持向量回归(SVR)

随着大数据概念的兴起,以数据为基础的商业模式越来越流行,用所收集到的因素去预测用户的可能产生的行为,并根据预测做出相应反应成为商业竞争的核心要素之一


单纯从机器学习的角度来说,做到精准预测很容易,但是结合具体业务信息并做出相应反应并不容易。预测精确性是核心痛点。


解决方案


任务/目标

根据所收集到的用户特征用机器学习方法对特定的属性做预测。

数据源准备

数据质量低或者缺失,会影响模型预测效果。在建立的一个合理的模型之前,对数据要进行清理。对于数据中的连续变量和离散变量进行标准化和因子化处理,以使后面的预测更加准确。

因子化标准化处理

首先将数据进行属性分类,分为名义变量('性别', '归属地', '换机频率', '终端品牌', '终端类型', '最近使用操作系统偏好','渠道类型描述', '是否欠费', '产品大类', '产品分类')和间隔变量('年龄','在网时长','上网流量使用','漫游流量使用', '总收入','增值收入','流量收入','短信收入','彩信收入','语音收入')。

将数据处理成算法容易处理模式:

  1. 朴素贝叶斯数据集

朴素贝叶斯方法需要离散化数据,于是按照分为点对于连续数据进行离散化处理。然后将所有的离散变量进行因子化。

  1. 神经网络,支持向量机与最近邻所需数据:处理以保证在一个数量级

为方便起见,用one-hot编码因子变量。对于连续变量,将数据映射到0,1之间 且不改变分布。

  1. 随机森林与回归所需数据:直接使用因子化的原始数据。


划分训练集和测试集


考虑到最终模型会在已知某些变量的同时,预测一些未知的特征,为了更真实的测试模型效果,将数据集分为分训练集和测试集。


建模


用其他用户特征,用训练集进行调参,预测用户“是否欠费”这个属性。

1. 随机森林

用随机的方式建立一个森林,森林由很多决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

两个主要参数:n_estimators: 多少树 max_features: 每个树随机选择多少特征

比较不同参数预测结果的neg_log_loss,选择最优的参数(score最大的)

2. 朴素贝叶斯

3. 神经网络

在PyTorch框架下面进行网络的搭建及运算

需要调节的参数:batch_size=[200,500,1000], 神经元个数=[16,32,64,128]

学习率=[0.01,0.005,0.001,0.0005,0.0001,0.00005,0.00001] 再微调,epoch=[10,20,30,40,50,60]

调参策略,第一调到最优后选择下一个进行调参,并不进行网格搜索

(a) 数据形式调整并进行小批次数据训练(批训练):每次选择1000数据集进行拟合,避免局部最优。

(b) 模型建立:我们采用了输入层+两层隐藏层+输出层,的三层神经网络,确定三层隐藏层的个数:我们比较32,64 逐一变化,择取最优。

(c) 训练网络:优化器:采用了Adam而不是简单的SGD,主要也是避免局部最优的问题。分类问题我们采用了普遍使用的交叉熵损失损失,但是与普遍的交叉熵相比,由于数据过于不平衡,因此我们增加了占比较少的数据的损失权重

4. 最近邻分类

最近邻分类:主要需要确定n_neighbors,我们比较n_neighbors=3,5,7,9情况下neg_log_loss

5. 逻辑回归:这里主要也是需要对变量进行筛选

由于数据非常不平衡,因此我们使用AUC作为标准进行衡量。逐个遍历自变量并将自变量名连接起来,升序排序accuracy值,最新的分数等于最好的分数。

6. 支持向量回归(SVR):使用网格搜索法最佳C值和核函数

模型准确性判定:

准确度/查准率/查全率


点击标题查阅往期内容


数据分享|R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可视化


01

02

03

04

混淆矩阵


ROC曲线


在此案例中,从准确度来看,随机森林模型的分类最好。从查准率来看,神经网络模型的分类最好。从查全率来看,逻辑回归模型的分类效果最好。同理,由上图可知,在ROC曲线下对于“是否欠费”这个因变量,神经网络模型的分类效果最好,模型的ROC曲线下面积最高,拟合最优。其余模型的拟合效果显著。

但事实上,评估效果不能只看统计数据,要综合考虑现实情况,预测精度,模型可解释性和客户偏好等因素综合考虑。预测结果仅作为参考一个权重值,还需要专家意见,按照一定的权重来计算


目录
打赏
0
0
0
0
111
分享
相关文章
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
461 55
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
248 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
59 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
113 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
62 5
RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
Python 高级编程与实战:深入理解网络编程与异步IO
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发和 API 设计。本文将深入探讨 Python 在网络编程和异步IO中的应用,并通过实战项目帮助你掌握这些技术。
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
87 14
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
252 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
YOLOv11改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
YOLOv11改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
102 0
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等