在本快速教程中,使用线性回归来查看是否可以使用正则化方法改进模型。作为一个快速提醒,该项目包括根据广告支出预测销售额。
具体来说,本教程包括:
如何使用numpy和pandas
如何使用matplotlib绘图
如何进行k折交叉验证
如何执行网格搜索以自动找到套索和岭回归的最佳正则化参数(alpha)
完整的Notebook和数据集可在此处获得。
https://github.com/marcopeix/ISL-Ridge-Lasso
注释:全面教程,入门书籍,学习源码可以添加小编学习群943752371直接获取。!
导入库
与任何项目一样,导入常用的库,这将有助于执行基本的数据操作和绘图。
现在可以开始探索性数据分析。
探索性数据分析
首先导入数据集并查看前五行:
你应该看到:
请注意,Unnamed:0 列无用。把它拿出来。
现在数据集如下所示:
如您所见,只有三种广告媒介,销售是目标变量。
看看每个变量如何通过制作散点图来影响销售。首先构建一个辅助函数来制作散点图:
现在可以为每个功能生成三个不同的图。
得到以下内容:
关于电视广告上花钱的销售
关于花在广播广告上的钱的销售
关于报纸广告花费的销售额
正如您所看到的,电视和广播广告似乎是销售的良好预测因素,而销售和报纸广告之间似乎没有相关性。
幸运的是,数据集不需要进一步处理,因此准备立即进行建模!
模型
多元线性回归 - 最小二乘拟合
在完成之前,先来看看代码的样子。
首先,导入LinearRegression和cross_val_score对象。第一个将允许拟合线性模型,而第二个对象将执行k倍交叉验证。
然后定义特征和目标变量。
该cross_val_score将返回MSE的阵列为每个交叉验证步骤。在例子中有五个。因此,采用MSE的意思并打印出来。应该得到-3.0729的负MSE。
现在,看看岭回归或套索是否会更好。
岭回归
对于岭回归,引入了GridSearchCV。这将允许使用一系列不同的正则化参数自动执行5次交叉验证,以便找到alpha 的最佳值。
代码如下所示:
然后,可以通过以下方式找到最佳参数和最佳MSE:
应该看到alpha的最佳值为20,负MSE为-3.07267。这是基本多元线性回归的略微改进。
套索
对于套索,遵循与岭回归非常相似的过程:
在这种情况下,alpha的最佳值为1,负MSE为-3.0414,这是所有三个模型的最佳分数!
现在知道如何在Python中使用套索和岭回归。在这种情况下已经看到套索是最合适的方法,正则化值为1。
网友评论