如何在Python中执行套索和岭回归 !

在本快速教程中,使用线性回归来查看是否可以使用正则化方法改进模型。作为一个快速提醒,该项目包括根据广告支出预测销售额。

具体来说,本教程包括:

如何使用numpy和pandas

如何使用matplotlib绘图

如何进行k折交叉验证

如何执行网格搜索以自动找到套索和岭回归的最佳正则化参数(alpha)

完整的Notebook和数据集可在此处获得。

https://github.com/marcopeix/ISL-Ridge-Lasso

注释:全面教程,入门书籍,学习源码可以添加小编学习群943752371直接获取。!

导入库

与任何项目一样,导入常用的库,这将有助于执行基本的数据操作和绘图。

现在可以开始探索性数据分析。

探索性数据分析

首先导入数据集并查看前五行:

你应该看到:

请注意,Unnamed:0 列无用。把它拿出来。

现在数据集如下所示:

如您所见,只有三种广告媒介,销售是目标变量。

看看每个变量如何通过制作散点图来影响销售。首先构建一个辅助函数来制作散点图:

现在可以为每个功能生成三个不同的图。

得到以下内容:

关于电视广告上花钱的销售

关于花在广播广告上的钱的销售

关于报纸广告花费的销售额

正如您所看到的,电视和广播广告似乎是销售的良好预测因素,而销售和报纸广告之间似乎没有相关性。

幸运的是,数据集不需要进一步处理,因此准备立即进行建模!

模型

多元线性回归 - 最小二乘拟合

在完成之前,先来看看代码的样子。

首先,导入LinearRegressioncross_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。

猜你喜欢

转载自blog.csdn.net/weixin_42209553/article/details/86507103