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