Python实现随机森林回归模型(RandomForestRegressor算法)项目实战

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: Python实现随机森林回归模型(RandomForestRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

image.png

image.png

1.定义问题

在电子商务领域,现在越来越多的基于历史采购数据、订单数据等,进行销量的预测;本模型也是基于电商的一些历史数据进行销量的建模、预测。

2.获取数据

本数据是模拟数据,分为两部分数据:

训练数据集:data_train.xlsx

测试数据集:data_test.xlsx

在实际应用中,根据自己的数据进行替换即可。

特征数据:x1、x2、x3、x4、x5、x6、x7、x8、x9、x10

标签数据:y

3.数据预处理

1)数据描述性分析

image.png

 

2)数据完整性、数据类型查看:

image.png

从上图可以看到,x1变量存在空值。

 

3)数据缺失值个数:

image.png

可以看到x1变量缺失114个值。

 

4)缺失值数据比例:

image.png

可以看到x1变量缺失值占比0.5%

 

5)缺失值填充:这里通过业务上分析:填充0比较合适:

image.png

image.png

输出结果为0,说明已无缺失值。

 

6)哑变量处理

特征变量中x10的数值为文本类型:类型1、类型2,不符合机器学习数据要求,需要进行哑特征处理,变为0 1数值。

处理后,数据如下:

image.png

 

4.探索性数据分析

1)目标数据销量分析:

image.png

image.png

正偏态分析,数据主要集中在0-200之间。

 

偏度为:6.233259

峰度为:61.185221

 

偏度:正态分布的偏度为0。若数据分布是对称的,偏度 = 0。

若偏度 > 0,分布为右偏,即分布有一条长尾在右;

若偏度 < 0,分布为左偏,即分布有一条长尾在左。偏度的绝对值越大,说明分布的偏移程度越严重。

 

峰度:正态分布的峰度为0。

当峰度 > 0,它相比于正态分布要更陡峭或尾部更厚。

当峰度 < 0, 它相比于正态分布更平缓或尾部更薄。

 

2)特征变量x1和标签变量y关系的散点图:

image.png

通过上图可以看出,x1变量和y变量线性相关。

 

3)特征变量x5和标签变量y关系的散点图:

image.png

通过上图可以看出,x5变量和y变量线性相关。

 

4)相关性分析

image.png

说明:正值是正相关、负值时负相关,值越大变量之间的相关性越强。

x1到x9以及y之间的的相关性都比较强。

 

5.特征工程

1)特征数据和标签数据拆分,y为标签数据,除y之外的为特征数据;

image.png

2)训练集拆分,分为训练集和验证集,80%训练集和20%验证集;

image.png

 

特征工程还有很多其他内容,例如数据标准化、降维等等,这个根据实际情况来,本次建模不需要。 

6.机器建模  

1)建立随机森林回归模型,模型参数如下:

 

编号

参数

1

n_estimators=100

2

random_state=1

3

n_jobs=-1

 

其它参数根据具体数据,具体设置。

 

2)验证集结果输出与比对:一方面是生成excel表格数据;一方面是生成折线图。

image.png

image.png

 

3)生成决策树

由于树比较多 一下子全部转为图片 导致图片看不清晰,所以生成的格式为.dot格式,大家可以根据具体需要把dot转为图片。

不分展示:总共200多页。

 

image.png

 

7.模型评估

1)评估指标主要采用准确率分值、MAE、MSE、RMSE

 

编号

评估指标名称

评估指标值

1

准确率分值

0.9769

2

MAE

9.9431

3

MSE

2625.5679

4

RMSE

51.2402

 

通过上述表格可以看出,此随机森林模型效果良好。

 

2)模型特征重要性:一方面是输出到excel;一方面是生成柱状图。 

image.png

image.png

8.实际应用

根据最近一周的特征数据,来预测销量(这里的数据,是提前准备好的没有标签的数据)。预测结果如下;

image.png

可以根据预测的销量进行备货。


# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1_u0XJKK1RTYLJf82WugmAA 
提取码:bx3h
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
118 55
|
23天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
125 67
|
23天前
|
存储 搜索推荐 Python
用 Python 实现快速排序算法。
快速排序的平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。它在大多数情况下表现良好,但在某些特殊情况下可能会退化为最坏情况,时间复杂度为$O(n^2)$。你可以根据实际需求对代码进行调整和修改,或者尝试使用其他优化策略来提高快速排序的性能
115 61
|
17天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
99 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
17天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
23天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
3天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
10天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
19天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
|
10天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如&quot;How are you&quot;、&quot;I am fine&quot;、&quot;I love you&quot;等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
下一篇
DataWorks