scikit-learn 普通最小二乘法

scikit-learn 普通最小二乘法

  • 什么是普通最小二乘法?
  • 参考文献

什么是普通最小二乘法?

线性回归模型的数学表达式如下:

y ^ ( w , x ) = w 0 + w 1 x 1 + … + w p x 1 \hat{y}(w, x)=w_{0}+w_{1} x_{1}+\ldots+w_{p} x_{1} y^(w,x)=w0+w1x1++wpx1

其中 w 0 , w 1 , . . . , w p w_0,w_1,...,w_p w0,w1,...,wp 为模型参数, x 1 , x 2 , . . . , x p x_1,x_2,...,x_p x1,x2,...,xp 为特征(feature)也称自变量。

最小二乘法就是找到一组最佳参数 w ^ 0 , w ^ 1 . . . , w ^ p \hat w_0, \hat w_1...,\hat w_p w^0,w^1...,w^p 使得真实的 y \boldsymbol y y 和我们通过参数 w \textbf w w 及特征 x \textbf x x 计算的 y ^ \boldsymbol{\hat y} y^ 的欧式距离最小。

其实也就是求解下面的优化问题:

min ⁡ w ∥ X w − y ∥ 2 2 \min _{w}\|X w-y\|_{2}^{2} wminXwy22

至于优化问题的求解方式,有很多种,我们先用 sklearn 帮我们解决。

以下为 scikit-learn 官方文档示例:

# 从 sklearn 中引入线性模型模块
from sklearn import linear_model
# 建立线性回归对象 reg
reg = linear_model.LinearRegression()
# 通过建立的对象拟合数据 x 为 [[0, 0], [1, 1], [2, 2]], y 为 [0, 1, 2] 
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
# 拟合的参数系数如下 y = 1.1102230246251565e-16 + 0.5x1 + 0.5x2
print(reg.coef_)
print(reg.intercept_)

在这里插入图片描述

参考文献

https://scikit-learn.org/stable/modules/linear_model.html

你可能感兴趣的:(sklearn,学习,sklearn,最小二乘法)