数据分享|R语言用核Fisher判别方法、支持向量机、决策树与随机森林研究客户流失情况

简介: 数据分享|R语言用核Fisher判别方法、支持向量机、决策树与随机森林研究客户流失情况

现在,越来越多的人意识到预测客户的流失与否是一件非常重要的事情。而且比较值得注意的是,留住原有的客户是要比吸引新客户更加容易的,而且成本更低点击文末“阅读原文”获取完整数据

相关视频

image.png

客户的流失可以从三个不同的方面来考虑。首先,失去现有客户相当于失去一台机器的重要零件并且不能保证马上就能换上新的,因为它们是公司的最宝贵的资产。此外,根据同样的假想假设,失去一个客户意味着有意将这些资产转移给公司的竞争对手。最后,吸引新客户是一项非常费力的任务。而且吸收新用户后依旧要考虑留住他们。所以,预测客户的流失是一件十分需要研究的问题。

数据说明与评估准则

数据说明

使用的数据集查看文末了解数据免费获取方式是在12个月期间从运营商呼叫中心的数据库中随机收集的。该数据集包含了3150个客户的数据,有呼叫失败次数、投诉次数、订阅长度、收费金额、使用秒数、使用频率、短信频率、不同呼叫次数、年龄组、服务类型、状态和流失一共11个特征变量加上一个类变量。显然其中流失是我们最感兴趣的一个变量,也是我们希望能够成功预测的变量。

查看数据集,其中一共有495条记录客户被流失,而2645条记录显示没有被流失。为了更好的训练与测试数据,将数据集按照训练集与测试集7:3的比例进行划分,并且在其中保持客户流失的比例不变。即训练集与测试集中流失客户的比例也是7:3。

评估准则

由于数据中实际流失与否只有两种结果,所以实际上这就是一个2分类问题,所以预测结果也就是两种,0和1。所以预测的结果一般为表3.1的结果。


1e4698ad329bcf901b62e22bc412a8b5.png

所以有以下比较常见的指标用于衡量判别结果:

15a261ef0c90accbd414ca0e52a252a5.png

本文采用的是F-Score。

 

实证分析

决策树与随机森林

顾名思义,决策树判别法基于树状分类模型,在每一次分类的叉点,都会对样本的某一属性进行判别,最终实现分类判别的目的。本文通过R语言软件“rpart”包对数据进行了判别分析。图给出了决策树的结构图,可以看见的是最长的一个枝一共有9个节点。

e2647058d1400964120c4447d8077a3b.png

c9eea85529c6425fed9a62957ac75199.png


随机森林是一种较为先进的机器学习模型,对于高维度的数据(如本文研究内容)的效果较好,不需要做特征选择,对数据适应能力较好。本文通过R语言软件“randomForest”包对数据进行了判别分析。图给出了随机森林中的重要性排序,可以看出投诉次数是最重要的一个指标。

1c08c60f786f216cbc2395d865203133.png

8f58661f09556215d3c4d8a6a649e27c.png

支持向量机

支持向量机是一种很热门的机器学习模型,本文通过R语言软件“e1071”包对数据进行了判别分析。表给出了SVM的结果,但是很明显,支持向量机在预测流失是否等于1的结果是非常不好,反而预测流失是否等于0的情况较好,不过这样的结果F-Score值会较低。

5d4f1b34f4ffc80b2e6393ef08a42bf4.png

核Fisher判别方法

KFDA是在Fisher判别的基础做出一种改进算法,本文通过R语言“kfda”包对数据进行了分析。核Fisher判别的结果与SVM相似,都不是十分的理想。从图中也可以看出来,两个类别的样本在图中并没有被区分开来。

e14769f2f2664fe08c0b4953f5c28520.png

bd5539cd65fa05167997cb150ac3a75b.png

总结与展望

通过表,可以看出,随机森林的F-Score值时最大的,代表了随机森林的准确率也是最高的,在这四个模型中,随机森林预测出客户是否会被流失的正确性也越高。并且通过多次抽样预测,都是随机森林的结果最好,而且最高的F-Score都不会达到0.89。

ab8db3c6bc0239f4a167281d53d6d6cd.png

相关文章
|
8月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
9月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
8月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
171 9
|
8月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
8月前
|
数据采集 算法 搜索推荐
R语言营销数据分析:使用R进行客户分群的实践探索
【9月更文挑战第1天】R语言以其强大的数据处理和统计分析能力,在金融数据分析、营销数据分析等多个领域发挥着重要作用。通过R语言进行客户分群,企业可以更好地理解客户需求,制定精准的营销策略,提升市场竞争力和客户满意度。未来,随着大数据和人工智能技术的不断发展,R语言在营销数据分析中的应用将更加广泛和深入。
|
8月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
9月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
9月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
9月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
9月前
|
SQL 数据挖掘 数据处理
R语言数据操作:使用dplyr进行数据处理的深度探索
【8月更文挑战第27天】`dplyr`包以其简洁、强大的数据处理能力,在R语言的数据分析领域占据了重要地位。通过`select()`、`filter()`、`arrange()`、`mutate()`和`summarise()`等核心函数,结合管道操作符`%>%`,我们可以轻松地完成数据筛选、排序、变换和汇总等操作。掌握`dplyr`的使用,将极大地提高我们在R语言中进行