数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度

简介: 数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度


在数据驱动的当代社会,机器学习已成为揭示复杂现象、预测未来趋势的重要工具。特别是在商业决策、健康管理、交通出行等多个领域,机器学习技术的应用日益广泛点击文末“阅读原文”获取完整数据

相关视频

image.png

image.png

image.png

本文集合了多个基于R语言、python的机器学习预测案例,涵盖了众筹平台筹款结果、机票折扣预测、糖尿病患者分类以及员工满意度预测等多样化场景,旨在帮助客户展示机器学习在不同领域中的实际应用价值和潜力。

Kickstarter众筹平台筹款结果预测

数据变得越来越重要,其核心应用“预测”也成为互联网行业以及产业变革的重要力量。众筹利用互联网和 SNS 传播的特性,让小企业、艺术家或个人对公众展示他们的创意,争取大家的关注和支持,进而获得所需要的资金援助。随着互联网的发展,众筹成为了现代社会越来越重要的筹款模式。基于项目数据提前预测筹款结果具有较大价值。

解决方案

任务/目标

基于众筹项目基本数据,预测此项目筹款结果是否成功

数据 预处理

将众筹项目数据进行缺失值与极端值处理,同时合并较小分组等,数据预处理便于后续更好进行数据建模分析。


8e373d04c2e7c973faa4a8cc4a4c7219.png

69591ff7bd2b5be4b12566808c6a02ce.png

42a475d65c9e60772eea5057b4a4ab26.png

数据可视化

在对数据进行建模前,我们可以先对数据进行可视化描述初步判断数据分布特征,便于后续模型选择。

e959a44dfc2e97cb0a4fcc4e39150de2.png

接下来看各个种类项目项目设置的奖励物品层次数量和项目预设的目标与最终是否成功的关系散点图。


38c6b678505310d5305937d7688b0867.png



构造

我们大致有如下训练样本(只列举部分特征)。

94679b0c54df318f957e9ba312d81cc2.png

划分训练集和测试集

为了更真实的测试模型效果,以时间来切分训练集和测试集。具体做法如下:随机抽取0.7数据作为训练数据集,0.3数据作为测试数据集。

最终得到实验数据规模如下:

52050aaf4e8be2f48555a87c75d8fdcd.png

建模

Logistic Regression

逻辑回归常用于二分类建模分析,因此适用于本文探究是否成功的建模场景。最终交叉矩阵如下所示:

c3e8088cee1b7065af87cf9682368a16.png KNN Method

KNN 算法的思想是基于某种距离度量找出训练 集中与其最靠近的 k 个实例点,然后基于这 k 个最 近邻的信息来进行预测。对本项目数据分析,找出 最优的 K 值为 9,利用此 K 值建立模型。

Adaboost 算法

Boosting 算法是一种重要的集成学习技术,而Adaboost 是其中的优秀代表。Adaboost 是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

在此案例中,三个模型准确度都较高,都在0.9以上,其可视化图形如下:

 

Logistic Regression

最终交叉矩阵如下所示:

c3e8088cee1b7065af87cf9682368a16.png

准确度为0.96。

KNN Method

4b1e747e6447dd5d21b4df4eea00b16a.png 准确度为0.94。

Adaboost 算法

6c6cd13b0d19061dc81c450083954f2f.png

0cfb1bca6351bdd58c611cf0d27d4865.png


准确度为0.97。

 

可以看出,是否成功的预测值与真实值在绝大部分的情况下是一致的。

但是评估效果要综合考虑,需要参考业务对接,预测精度,模型可解释性和产业链整体能力等因素综合考虑;不能简单作为企业利润增加的唯一标准我们的经验是,预测结果仅作为参考一个权重值,还需要专家意见,按照一定的权重来计算

繁忙干线中的机票折扣预测——以北京到上海的航班为例

对于繁忙干线上的机票而言,折扣有着不同于其余航线上的特征,如何根据其特征选择合适的模型;在实际的构建模型和预测的过程中,数据量过大成为一个严重的问题,因此合理科学的划分数据成为了必须要解决的问题。

研究方法分为 3 个主要步骤:

  1. 数据清洗与特征提取。
  2. 问题转化与模型运用
  3. 性能的衡量与优化

 

首先就是数据的预处理,本项目所使用的数据集不存在缺失数据的问题,但在探索中发现一部分数据存在错误(如较高的价格对应的折扣为 0等),对于这部分较为明显的错误数据直接去除;对于可识别性的属性(如订单号)和一些与研究不相关的属性(如出发、到达机场、订票时间等)同样不予考虑。为了方便后期的分析,将起飞时间分成了起飞日期和具体时间两个特征。对于航班号,提取了代表航空公司的前两位作为一个新特征。在探索数据时发现,现有数据中中

转机场这一属性只有空和“LYA”两种情况,所以讲其转化成更方便处理的布尔量。另外,将2019 年所有节假日放入文档,根据起飞日期对是否是节假日做了判断,并放入数据集中,对每个航班是否处于节假日做了判断。而后通过以上属性对折扣的可视化及相关性分析,进一步去除了数据量较少的类别,同样也证实了其对折扣是高度相关的,这与相关文献的研究相吻合,证明了用这些变量来预测机票折扣的合理性。

解决数据量过大有两种思路,一是随机抽取一部分数据划分训练集测试集。另一种思路就是预设用户使用场景,在用户确定出行时间以后,提前购买的天数和自己想要购买的舱位必然是确定的信息,不妨使用提前天数和舱位对数据进行划分。显然第一种方法可以将影响变量更全面的考虑进去,第二种方法更为贴近实际情况,但却无法考虑提前天数和舱位对其的影响。在处理后,不同种类的数据量降低到了几千条,适合进行操作。

 

对于本项目中的研究数据来说,并不满足使用时间序列的充分条件。所以本文先采用线性回归进行预测,而后选用集成算法来提升准确度。在线性回归模型中,先将所有特征加入模型进行回归,发现 F 统计量呈极高度显著,但反映回归系数显著性的 t 统计量对于某些变量不显著,在第二次线性回归中,将不显著的变量(p值>0.05)去除,再次得到回归结果,此时所有变量呈高度显著,由此得出线性回归方程,从而在测试集上得到预测结果。

集成算法可以分为 bagging 和 boosting 两种集成方式。Bagging 独立训练(可并行)多个基分类器,基分类器相互之间独立,然后用方法(投票法、平均法、stack⁃ing)把基分类器集成起来。代表算法为随机森林,也即本文使用的集成算法。

因数据量较大,先提取部分数据(去除相关性不高的变量),使用随机森林模型对不同参数的重要程度做了模拟。

11352fda0218ae13a8a39920c57bb016.png 可以看出,在随机森林重要性度量中,航空公司的重要性最高,其次是 OTA 平台,再次是提前购买天数。

08ee55cc65a9c8eb3f6321c35d45f992.png

错误率在树的数目在 100 左右时达到一个相对最优值,因此保持了 mtry 值的保持默认,ntree为 100。

对比随机森林和线性回归模型的 MAE 及 RMSE,可以看到随机森林算法在准确度上表现较为优秀。通过分析各个变量对模型的贡献程度,我们可以大致得到影响北京上海机票折扣的重要变量,进而合理地为顾客做推荐,选择合适的 OTA 平台对于购买到合适折扣的机票尤为重要;对于价格敏感的顾客来说,可以选择折扣较大的航空公司;针

对北京上海的机票而言,提前购买天数影响因素较小,所以顾客可以无需考虑提前安排行程。模型还有进一步优化的空间,可尝试模型融合来提高预测准确度。

基于机器学习和神经网络对糖尿病患者二分类

现如今,用机器学习中的ML经典算法以及各种神经网络制作分类器,这些技术已经相对成熟。

解决方案

任务/目标

根据现有的被检者特征以及个体的诊断结果制作分类器,并选出一个最优分类器出来。

数据源准备

数据是经过处理过的。定量变量的异常值用样本特征值(平均值、中位数等)或者拉格朗日插值或者线性模型修改过,缺失值都被填补过(当然,个体缺失值过多便直接删除)。

特征转换

基于这些特征去构建分类器,前期工作是直接调用决策树和随机森林去进行变量筛选,发现最终筛选出来的显著特征不超过三个(以显著性0.1去筛选,第一张图为决策树筛选图,第二张图为随机森林筛选图):

6ced7f097a8a9eb6189f05fc2bc79d0b.png

5cca703bbaee0c83494b2ea6b0c28e54.png

并且,做出来的分类效果并不理想,在不设置随机种子的情况下大部分分类器的ACC还不超过60%,特征维度太低,数据不容易分开,所以特征选择这一工作在进行完之后被跳过。

构造

以上说明了如何抽取相关特征,我们大致有如下训练样本(只列举部分特征)。


a296ae2b4c7b389fb802787b3e97c127.png

划分训练集和测试集

设定随机种子,先随机选择其中的600个个体作为训练集,之后分开特征与分类结果。

建模

BP 神经网络, 最原始的神经网络模型,理论上只要隐藏层的层数大于1,便可逼近任意一个函数,所以,我们可以根据这一性质制作出我们想要的分类器

概率神经网络(PNN

最简单的概率神经网络为高斯判别模型,判别思路与PNN一样,严格来讲PNN比高斯判别更为广义,PNN只有一层隐藏层,隐藏层的神经元个数为样本个数,不仅可以做二分类分类器、也能做多分类分类器。

支持向量机(SVM)

SVM原理很简单,只需找到一个超平面将两类样本分隔开即可,使得支持向量(离超平面最近的那个样本)与超平面的距离达到最大,也被广泛用于二分类问题。

费雪线性判别

将两类样本通过线性变换映射到一维直线上(降维),计算两类样本映射后的平均值,通过平均值之间的欧式距离达到最大求出该线性变换,从而得到一条直线,判断样本映射后距离两类样本均值的大小,做出分类。

模型优化

1.    BP网络不需要用来优化,其作用就是用来模型比对的;PNN其中需要估计的参数为平滑性参数,从数理统计的角度来看,平滑性参数为正态分布的协差阵,在这里我采用矩估计参数优化平滑性参数,这一优化是有大数定理作为保证的。(即便该方式优化效果已取得不错的成绩,该项目至今还在进行,对平滑性参数作贝叶斯估计、以及条件似然估计)

  1. 传统SVM估计超平面的处理方法是理由凸优化进行问题转化,进而估计超平面,实际数据远没有理论那么理想,所以,一反常态,python本身能做SVM,但无法改变其中已封装好的包的算法,所以我用excel做了一套SVM分类器,对其超平面采用演化算法以及非线性算法直接进行求解。

1.PNN在给定平滑性参数都为0.1的情况下ACC正确率为67.7%,用矩估计估计的平滑性参数ACC正确率高达81.3%,即使重新设定随机种子,平均正确率也不低于80%,这次优化是一个质的飞跃。

2.SVM效果并不是很理想,excel功能强大,弊端在于处理数据量大的数据集,效率过于低下,我并没有放弃SVM算法的改进,现阶段还在进行凸优化中KKT条件的代码编写,以便对超平面直接求解。

3.BP神经网络ACC正确率为77%,远不及改进过后的矩估计PNN。

4.费雪判别训练集ACC为78.4%,稳定在78%左右。

综上所述,矩估计优化后的PNN分类器优化效果是这几个模型中最好的。

预测分析·员工满意度预测

员工满意度又称雇员满意度,是团队精神的一种参考,也就是个体对他所从事的工作的一般态度。是组织成员对其工作特征的认知评价,是员工通过比较实际获得的价值与期望获得的价值之间的差距后,对工作各方面满足与否的态度和情绪反映。通过持续的员工满意度调查,企业可以对自身管理中所存在的问题进行“诊断”,进而系统地解决问题,改善企业的管理,提高生产效率、降低人员流失率。因此,科学的员工满意度分析对于提高企业管理的有效性意义重大,但人是多思维生物,需要考虑到各种多条件。用机器学习达到精准计算的实现很困难,预测的精准性永远是痛点。

解决方案

任务/目标

通过持续的员工满意度调查,运用多种数据源分析实现精准销量预测。

数据源准备

沙子进来沙子出,金子进来金子出。无数据或数据质量低,会影响模型预测效果。在建立的一个合理的模型之前,对数据要进行收集,搜集除已有调查数据之外的额外信息(比如病假情况,不可因素的离职等),再在搜集的数据基础上进行预处理。

有了数据,但是有一部分特征是算法不能直接处理的,还有一部分数据是算法不能直接利用的。

特征转换

把不能处理的特征做一些转换,处理成算法容易处理的干净特征举例如下:

是否有工伤,用数字0表示没有,数字1表示有。

过去5年是否升职,用数字0表示没有,数字1表示有。

构造

以上说明了如何抽取相关特征,我们大致有如下训练样本(只列举部分特征)。

499ccc99d6366a60a1c913ac7278f76c.png

划分训练集和测试集

考虑到最终模型会预测将来的某时间段的销量,为了更真实的测试模型效果,以统计序号来切分训练集和测试集。具体做法如下:假设我们有序号15000以内相关数据。以1-12000的调查人数据作为训练,12001-15000的数据作为测试。

建模

a)       模型选用随机森林和支持向量机(SVR);

b)      模型训练结束后,使用训练集来验证模型的预测准确度,准确度以mse计算;

c)       对测试集进行预测,在文档中展示部分预测结果;

模型优化

1.相关数据显示

f0456f983dea4bb981117b885410cca1.png

2.各因素的可视化结果

满意度

ca31345fffe56c4211c3a97a28faacaa.png

b. 项目数量

50bee23b31c77530792eb213a5c0513a.png c. 工龄

2cd6d990ec6f19ff44694a2714cb80eb.png

该厂96.27%的员工工龄在2~6。

d. 福利

bb2360c6536bbb1a579b30454ac5773a.png e.

83da308c00e21525a40c159710521eda.png

四种满意度数据分布图:

e398ea3905a36b2fdfebb4730269bb65.png


员工的工龄集中于2~5年,大于5以上的工龄数量变少,说明该公司员工的留存率低。

评价非常不满意的员工中,负责项目数量为6个或7个(多),工龄集中在4年5年,并且福利待遇偏低。同时评价不满意的员工中负责2个项目的人数增多,评价为满意和非常满意的员工的项目项目数集中于3到5个。公司应考虑设定负责项目数量的上限,和调整相对应的福利体系。

相关文章
|
1月前
|
机器学习/深度学习 测试技术
阿里云入选Gartner数据科学和机器学习平台挑战者象限
Gartner® 正式发布了《数据科学与机器学习平台魔力象限》报告(Magic Quadrant™ for Data Science and Machine Learning Platforms),阿里云成为唯一一家入选该报告的中国厂商,被评为“挑战者”(Challengers)。
|
11天前
|
机器学习/深度学习 数据采集 数据处理
谷歌提出视觉记忆方法,让大模型训练数据更灵活
谷歌研究人员提出了一种名为“视觉记忆”的方法,结合了深度神经网络的表示能力和数据库的灵活性。该方法将图像分类任务分为图像相似性和搜索两部分,支持灵活添加和删除数据、可解释的决策机制以及大规模数据处理能力。实验结果显示,该方法在多个数据集上取得了优异的性能,如在ImageNet上实现88.5%的top-1准确率。尽管有依赖预训练模型等限制,但视觉记忆为深度学习提供了新的思路。
21 2
|
24天前
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
50 3
|
24天前
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
41 2
|
1月前
|
机器学习/深度学习 存储 人工智能
揭秘机器学习背后的神秘力量:如何高效收集数据,让AI更懂你?
【10月更文挑战第12天】在数据驱动的时代,机器学习广泛应用,从智能推荐到自动驾驶。本文以电商平台个性化推荐系统为例,探讨数据收集方法,包括明确数据需求、选择数据来源、编写代码自动化收集、数据清洗与预处理及特征工程,最终完成数据的训练集和测试集划分,为模型训练奠定基础。
45 3
|
1月前
|
机器学习/深度学习 算法 Python
“探秘机器学习的幕后英雄:梯度下降——如何在数据的海洋中寻找那枚失落的钥匙?”
【10月更文挑战第11天】梯度下降是机器学习和深度学习中的核心优化算法,用于最小化损失函数,找到最优参数。通过计算损失函数的梯度,算法沿着负梯度方向更新参数,逐步逼近最小值。常见的变种包括批量梯度下降、随机梯度下降和小批量梯度下降,各有优缺点。示例代码展示了如何用Python和NumPy实现简单的线性回归模型训练。掌握梯度下降有助于深入理解模型优化机制。
30 2
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习【教育领域及其平台搭建】
机器学习【教育领域及其平台搭建】
47 7
|
2月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
1月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
34 0
|
1月前
|
机器学习/深度学习 算法 数据建模
【机器学习】类别不平衡数据的处理
【机器学习】类别不平衡数据的处理