
思维导图
本文通过一个真实面试题目来讲解R语言的数据挖掘
一、题目
建立线性回归模型,预测各个酒店未来一段时间每天的订单量
数据:

二、数据处理
-
首先,将没有任何意义的单纯表示排序的第一列去除,并将除y之外的所有变量都视为自变量
-
另外,在原始数据集中,date变量不具有任何意义,绘制折线图如下:

-
可以发现date的周期大约为7天,符合认知,于是将date转化为星期
-
代码示例:

三、查看模型效果并进行模型调优
1.查看模型效果
-
使用summary函数查看当前模型情况:

-
可以看到,模型还有很大的提升空间,很多变量的显著性不是很明显,可以去掉,避免过拟合,同时也可以引入交互项和高次项。
2.模型调优
-
因此,引入交互项和高次项,同时通过AIC和BIC方法进行变量筛选
-
代码示例:

-
通过AIC和BIC方法,选出了两个不同的线性回归模型
-
由于BIC引入了对变量数量的惩罚系数,因此它选出的变量更少
3.模型对比
-
通过交叉验证做进一步对比
-
代码示例:

-
输出结果:

-
通过对比两个模型的MSE(均方误差),会发现使用BIC方法选出的模型的MSE更小,并且用到的变量更少。
四、选择最终模型对测试集进行预测
-
预测并将结果写入CSV文件:

参考文献
1.《拿下Offer 数据分析师求职面试指南》徐麟 著