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