线性回归算法梳理
1机器学习概念
-
有监督学习
训练数据有标记信息,形式:给定一个输入 x x x,学习预测一个输出 t t t—根据输出形式可分为:回归、分类
-
无监督学习
训练数据没有标记信息
-
泛化能力
该方法学习到的模型对未知数据的预测能力
-
过拟合
一味追求对训练数据的预测能力,所选模型的复杂度往往会比真实模型更高的现象
解决方法:正则化
-
欠拟合
与‘过拟合’相对,对训练样本的一般性尚未学好
解决方法: 1增加新特征 2 增加模型的复杂度
-
方差和偏差
泛化误差 = 偏差 + 方差 + 噪声
偏差:学习算法的期望预计与真实结果的偏离程度
方差:同等大小的训练集的变动所导致的学习性能的变化
-
交叉验证
1.简单交叉验证
2.S折交叉验证
3.留一交叉验证(Leave-one-out Cross Validation)
2 线性回归的原理
线性回归:试图学得一个线性模型以尽可能准确地预测实值输出标记
f
(
x
i
)
=
w
x
i
+
b
,
使
得
f
(
x
i
)
≃
y
i
f(x_i) = wx_i+b,使得f(x_i) \simeq y_i
f(xi)=wxi+b,使得f(xi)≃yi
3 线性回归
-
损失函数: 单个样本的误差
∣ f ( x i ) − y i ∣ |f(x_i)-y_i| ∣f(xi)−yi∣ -
代价函数: 整个训练集上所有样本误差的平均
1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 \frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2 m1i=1∑m(f(xi)−yi)2 -
目标函数 :代价函数 + 正则化项
1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 + 正 则 化 \frac{1}{m}\sum_{i=1}^m \ (f(x_i)-y_i)^2+正则化 m1i=1∑m (f(xi)−yi)2+正则化
4 优化方法
-
梯度下降法
考虑无约束问题
min f ( x ) , x ∈ R n \min f(x),\ x\in\mathbf{R^n} minf(x), x∈Rn
f ( x ) f(x) f(x)具有一阶连续偏导数, f ( x ) f(x) f(x)在 x ( k ) x^{(k)} x(k)附近一阶泰勒展开:
f ( x ) = f ( x k ) + ∇ f ( x ( k ) ) T ( x − x ( k ) ) f(x) =f(x^{k})+\nabla f(x^{(k)})^T(x-x^{(k)}) f(x)=f(xk)+∇f(x(k))T(x−x(k))
第 k + 1 k + 1 k+1次的迭代值 x k + 1 x^{k+1} xk+1:
x ( k + 1 ) ← x ( k ) + λ k p k x^{(k+1)}\gets \ x^{(k)}+ \lambda_k \ p_k x(k+1)← x(k)+λk pk
其中 p k = − ∇ f ( x k ) p_k=-\nabla\ f(x{^{k}}) pk=−∇ f(xk)为搜索方向λ k \lambda_k λk是步长,由一维度搜索确定:
f ( x ( k ) + λ k p k ) = min λ ≥ 0 f ( x ( k ) + λ p k ) f(x^{(k)}+ \lambda_k p_k)=\min\limits_{\lambda\geq0}f(x^{(k)}+\lambda p_k) f(x(k)+λkpk)=λ≥0minf(x(k)+λpk) -
牛顿法
考虑无约束问题
min f ( x ) , x ∈ R n \min f(x),\ x\in\mathbf{R^n} minf(x), x∈Rn
f ( x ) f(x) f(x)具有二阶连续偏导数, f ( x ) f(x) f(x)在 x ( k ) x^{(k)} x(k)附近二阶泰勒展开:
f ( x ) ≃ ϕ ( x ) = f ( x k ) + ∇ f ( x ( k ) ) T ( x − x ( k ) ) + 1 2 ( x − x ( k ) ) T ∇ 2 f ( x ( k ) ) ( x − x ( k ) ) f(x)\simeq\phi(x) =f(x^{k})+\nabla f(x^{(k)})^T(x-x^{(k)})+\frac{1}{2}(x-x^{(k)})^T\nabla^2 f(x^{(k)})(x-x^{(k)}) f(x)≃ϕ(x)=f(xk)+∇f(x(k))T(x−x(k))+21(x−x(k))T∇2f(x(k))(x−x(k))
∇ 2 f ( x ( k ) ) \nabla^2 f(x^{(k)}) ∇2f(x(k))是 f ( x ) f(x) f(x)在 f ( x ( k ) ) f(x^{(k)}) f(x(k))处的Hesse矩阵为了求 ϕ ( x ) \phi(x) ϕ(x)的极小值点
∇ ϕ ( x ) = 0 ( ϕ ( x ) 取 极 值 的 必 要 条 件 ) \nabla\phi(x)=0 \ (\phi(x)取极值的必要条件) ∇ϕ(x)=0 (ϕ(x)取极值的必要条件)
有:
∇ f ( x ( k ) ) + ∇ 2 f ( x ( k ) ) ( x − x ( k ) ) = 0 \nabla f(x^{(k)})+\nabla^2 f(x^{(k)})(x-x^{(k)})=0 ∇f(x(k))+∇2f(x(k))(x−x(k))=0
由牛顿法的迭代公式:
x ( k + 1 ) = x ( k ) + ∇ 2 f ( x ( k ) ) − 1 ∇ f ( x ( k ) ) x^{(k+1)} = x^{(k)}+\nabla^2 f(x^{(k)})^{-1}\nabla f(x^{(k)}) x(k+1)=x(k)+∇2f(x(k))−1∇f(x(k)) -
拟牛顿法
在牛顿法的迭代中,需要计算Hesse矩阵的逆矩阵,这一个计算比较复杂,考虑用一个矩阵代替Hesse矩阵的逆
5 线性回归的评估指标
RMSE/MSE/MAE
R-Squared
Adjustd R-Squared
F Statistics
RMSM 均方根误差
R
M
S
E
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
RMSE = \sqrt {\frac{1}{m}\sum_{i=1}^m(f(x_i)- y_i)^2}
RMSE=m1i=1∑m(f(xi)−yi)2
MSE均方误差
M
A
E
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
MAE=\frac{1}{m}\sum_{i=1}^m(f(x_i)- y_i)^2
MAE=m1i=1∑m(f(xi)−yi)2
MAE绝对误差
M
A
E
=
1
m
∑
i
=
1
m
∣
f
(
x
i
)
−
y
i
∣
MAE =\frac{1}{m}\sum_{i=1}^m|f(x_i)- y_i|
MAE=m1i=1∑m∣f(xi)−yi∣
6 sklearn参数详情
- sklearn.linear_model.LinearRegression()