说明:这是一个机器学习实战项目(附带数据+代码+文档+视频解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。
1.定义问题
在电子商务领域,现在越来越多的基于历史采购数据、订单数据等,进行销量的预测;本模型也是基于电商的一些历史数据进行销量的建模、预测。
2.获取数据
本数据是模拟数据,分为两部分数据:
训练数据集:data_train.xlsx
测试数据集:data_test.xlsx
在实际应用中,根据自己的数据进行替换即可。
特征数据:x1、x2、x3、x4、x5、x6、x7、x8、x9、x10
标签数据:y
3.数据预处理
1)数据描述性分析:
2)数据完整性、数据类型查看:
从上图可以看到,x1变量存在空值。
3)数据缺失值个数:
可以看到x1变量缺失114个值。
4)缺失值数据比例:
可以看到x1变量缺失值占比0.5%。
5)缺失值填充:这里通过业务上分析:填充0比较合适:
输出结果为0,说明已无缺失值。
6)哑变量处理
特征变量中x10的数值为文本类型:类型1、类型2,不符合机器学习数据要求,需要进行哑特征处理,变为0 1数值。
处理后,数据如下:
4.探索性数据分析
1)目标数据销量分析:
正偏态分析,数据主要集中在0-200之间。
偏度为:6.233259
峰度为:61.185221
偏度:正态分布的偏度为0。若数据分布是对称的,偏度 = 0。
若偏度 > 0,分布为右偏,即分布有一条长尾在右;
若偏度 < 0,分布为左偏,即分布有一条长尾在左。偏度的绝对值越大,说明分布的偏移程度越严重。
峰度:正态分布的峰度为0。
当峰度 > 0,它相比于正态分布要更陡峭或尾部更厚。
当峰度 < 0, 它相比于正态分布更平缓或尾部更薄。
2)特征变量x1和标签变量y关系的散点图:
通过上图可以看出,x1变量和y变量线性相关。
3)特征变量x5和标签变量y关系的散点图:
通过上图可以看出,x5变量和y变量线性相关。
4)相关性分析
说明:正值是正相关、负值时负相关,值越大变量之间的相关性越强。
x1到x9以及y之间的的相关性都比较强。
5.特征工程
1)特征数据和标签数据拆分,y为标签数据,除y之外的为特征数据;
2)训练集拆分,分为训练集和验证集,80%训练集和20%验证集;
特征工程还有很多其他内容,例如数据标准化、降维等等,这个根据实际情况来,本次建模不需要。
6.机器建模
1)建立随机森林回归模型,模型参数如下:
编号 |
参数 |
1 |
n_estimators=100 |
2 |
random_state=1 |
3 |
n_jobs=-1 |
其它参数根据具体数据,具体设置。
2)验证集结果输出与比对:一方面是生成excel表格数据;一方面是生成折线图。
3)生成决策树
由于树比较多 一下子全部转为图片 导致图片看不清晰,所以生成的格式为.dot格式,大家可以根据具体需要把dot转为图片。
不分展示:总共200多页。
7.模型评估
1)评估指标主要采用准确率分值、MAE、MSE、RMSE
编号 |
评估指标名称 |
评估指标值 |
1 |
准确率分值 |
0.9769 |
2 |
MAE |
9.9431 |
3 |
MSE |
2625.5679 |
4 |
RMSE |
51.2402 |
通过上述表格可以看出,此随机森林模型效果良好。
2)模型特征重要性:一方面是输出到excel;一方面是生成柱状图。
8.实际应用
根据最近一周的特征数据,来预测销量(这里的数据,是提前准备好的没有标签的数据)。预测结果如下;
可以根据预测的销量进行备货。
# 本次机器学习项目实战所需的资料,项目资源如下: # 项目说明: # 获取方式一: # 项目实战合集导航: https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2 # 获取方式二: 链接:https://pan.baidu.com/s/1_u0XJKK1RTYLJf82WugmAA 提取码:bx3h