多元线性回归尝试通过用一个线性方程来适配观测数据,这个线性方程是在两个以上(包括两个)的变量和因变量之间构建的一个关系。多元线性回归的实现步骤和机器学习中的简单线性回归步骤很相似,在评价部分有所不同。你可以用它来找出在预测结果上哪个因素影响力最大,以及不同变量是如何相互关联的。
第1步: 数据预处理
更多说明可以去这篇文章看看:机器学习中的简单线性回归步骤
导入相关库:
![2b9d69d16ce2d6b5d6e175f43451b2e7.png](https://i-blog.csdnimg.cn/blog_migrate/cbfeabb339041437e9da91edf08dcc73.jpeg)
导入数据集:
![74013f4178de1b3b2784acfd9ad35c5a.png](https://i-blog.csdnimg.cn/blog_migrate/cab2a26f5984c2a3c9b61a032cf1c876.jpeg)
将分类数据数字化:
这里要数字化的上表的State列。先将分类数据标签化:
![9a1666e2875012ae4bed49359eff9ebd.png](https://i-blog.csdnimg.cn/blog_migrate/3d0c90f861dcd6490e6a37ad799d84bb.jpeg)
在对标签进行one-hot编码:
![d9a408397e459d494449030a63b49bcd.png](https://i-blog.csdnimg.cn/blog_migrate/f19068848866c4ef5e5017c92933a16a.jpeg)
注意,被被编码的列数据已剔除,新的编码数据添加在最前的列中。
避免虚拟变量陷阱:
虚拟变量陷阱指当原特征有m个类别时,如果将其转换成m个虚拟变量,就会导致变量间出现完全共线性的情况。
总结来说就是:当原特征有m个类别时,我们需要将其转换成m-1个虚拟变量。
还有一点需要注意的是,基准类别该如何选择?如果基准类别选择不合理,虚拟变量之间仍然会存在共线性的问题。这里直接给出结论:选择占比最大的类别作为基准类别。假设有a,b,c三个类别,如果基准类别a占比太少,那么即使把a去除,b和c之和也会接近于1。
![6ad74b0c1f58fcb3ac1208bca91f9b08.png](https://i-blog.csdnimg.cn/blog_migrate/1ebb24d2c1044f374a2d7b38e97ab0b8.jpeg)
划分数据集为训练集和测试集:
![9de2e7d81a2805dcee84b5e615e2d320.png](https://i-blog.csdnimg.cn/blog_migrate/8cdf0b742ae3b14dcee41fbc329a35ea.jpeg)
第2步:在训练集上训练多元线性回归模型
![262cea6fbf88277198ec6aee8a3d6c3e.png](https://i-blog.csdnimg.cn/blog_migrate/5262ef48783ceaa603904cbc84feb2b6.jpeg)
第3步:在测试集上预测结果
![a2716b7efb52801fa38fdc3c40ba6089.png](https://i-blog.csdnimg.cn/blog_migrate/dd998cb91278f7c2f0166f239682ec08.jpeg)
第4步:模型评估
在sklearn中包含四种评价尺度,分别为mean_squared_error(均方差)、mean_absolute_error(平均绝对值误差)、explained_variance_score(可释方差得分 )和 r2_score(R2 决定系数(拟合优度))。 这里我们使用 r2_score:
- 模型越好:r2→1
- 模型越差:r2→0
![ba694ac4abee656e082f629f0304d13b.png](https://i-blog.csdnimg.cn/blog_migrate/dd12cf6c6ad8fb24e877e036fc0c39fa.jpeg)
第5步:可视化结果对比
其实在这一步之前应该还有一步模型评估,然而模型评估最后还是得到一个数值,这里
![4ee77b756dd82aecef741984ce658b4b.png](https://i-blog.csdnimg.cn/blog_migrate/a4d12c479442d45791153edaf1903dd6.jpeg)
总结
- 1、数据预处理。
- 2、在训练集上训练多元线性回归模型。
- 3、在测试集上预测结果。
- 4、模型评估。
- 5、结果可视化对比。