上一小节中,我们实现了一个可用的回归分析模型。不过在实际应用中,我们可能会更关注如何高效地实现模型,例如,scikit-learn中的LinearRegression对象使用了LIBLINEAR库以及先进的优化算法,可以更好地使用经过标准化处理的变量。这正是特定应用所需要的:
执行上述代码后可见,使用经过标准化处理的RM和MEDV数据拟合scikit-learn中的LinearRegression模型得到了不同的模型系数。我绘制出MEDV与RM之间的关系图,并与GD算法实现的模型进行比较:
上述代码绘制出了训练数据和拟合模型的图像,从图中可看出,总体结果与GD算法实现的模型是一致的:
在大多数介绍统计科学的教科书中,都可以找到使用最小二乘法求解线性方程组的封闭方法:
其中,μy为真实目标值的均值,为经预测得到目标值的均值。
这种方法的优点在于:它一定能够分析找到最优解。不过,如果要处理的数据集量很大,公式中逆矩阵的计算成本会非常高,或者矩阵本身为奇异矩阵(不可逆),这就是在特定情况下我们更倾向于使用交互式方法的原因。
若读者对如何得到正规方程感兴趣,建议阅读Stephen Pollock博士在英国莱斯特大学演讲讲义中的章节“The Classical Linear Regression Model”,可通过链接http://www.le.ac.uk/users/dsgp1/COURSES/MESOMET/ECMETXT/06mesmet.pdf获取。