线性回归算法梳理


线性回归[1]

1机器学习概念

  • 有监督学习

    训练数据有标记信息,形式:给定一个输入xx,学习预测一个输出tt—根据输出形式可分为:回归、分类

  • 无监督学习

    训练数据没有标记信息

  • 泛化能力

    该方法学习到的模型对未知数据的预测能力

  • 过拟合

    一味追求对训练数据的预测能力,所选模型的复杂度往往会比真实模型更高的现象

    解决方法:正则化

  • 欠拟合

    与‘过拟合’相对,对训练样本的一般性尚未学好

    解决方法: 1增加新特征 2 增加模型的复杂度

  • 方差和偏差

    泛化误差 = 偏差 + 方差 + 噪声

    偏差:学习算法的期望预计与真实结果的偏离程度

    方差:同等大小的训练集的变动所导致的学习性能的变化

  • 交叉验证

    1.简单交叉验证

    2.S折交叉验证

    3.留一交叉验证(Leave-one-out Cross Validation)

2 线性回归的原理

线性回归:试图学得一个线性模型以尽可能准确地预测实值输出标记
f(xi)=wxi+使f(xi)yi f(x_i) = wx_i+b,使得f(x_i) \simeq y_i

3 线性回归

  • 损失函数: 单个样本的误差
    f(xi)yi |f(x_i)-y_i|

  • 代价函数: 整个训练集上所有样本误差的平均
    1mi=1m(f(xi)yi)2 \frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2

  • 目标函数 :代价函数 + 正则化项
    1mi=1m (f(xi)yi)2+ \frac{1}{m}\sum_{i=1}^m \ (f(x_i)-y_i)^2+正则化

4 优化方法

  • 梯度下降法

    考虑无约束问题
    minf(x), xRn \min f(x),\ x\in\mathbf{R^n}
    f(x)f(x)具有一阶连续偏导数,f(x)f(x)x(k)x^{(k)}附近一阶泰勒展开:
    f(x)=f(xk)+f(x(k))T(xx(k)) f(x) =f(x^{k})+\nabla f(x^{(k)})^T(x-x^{(k)})
    k+1k + 1​次的迭代值xk+1x^{k+1}​:
    x(k+1) x(k)+λk pk x^{(k+1)}\gets \ x^{(k)}+ \lambda_k \ p_k
    其中 pk= f(xk)p_k=-\nabla\ f(x{^{k}})为搜索方向

    λk\lambda_k是步长,由一维度搜索确定:
    f(x(k)+λkpk=minλ0f(x(k)+λpk) f(x^{(k)}+ \lambda_k p_k)=\min\limits_{\lambda\geq0}f(x^{(k)}+\lambda p_k)

  • 牛顿法

    考虑无约束问题
    minf(x), xRn \min f(x),\ x\in\mathbf{R^n}
    f(x)f(x)具有二阶连续偏导数,f(x)f(x)x(k)x^{(k)}附近二阶泰勒展开:
    f(x)ϕ(x)=f(xk)+f(x(k))T(xx(k))+12(xx(k))T2f(x(k))(xx(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)})
    2f(x(k))\nabla^2 f(x^{(k)})f(x)f(x)f(x(k))f(x^{(k)})处的Hesse矩阵

    为了求ϕ(x)\phi(x)的极小值点
    ϕ(x)=0 ϕ(x) \nabla\phi(x)=0 \ (\phi(x)取极值的必要条件)
    有:
    f(x(k))+2f(x(k))(xx(k))=0 \nabla f(x^{(k)})+\nabla^2 f(x^{(k)})(x-x^{(k)})=0
    由牛顿法的迭代公式:
    x(k+1)=x(k)+2f(x(k))1f(x(k)) x^{(k+1)} = x^{(k)}+\nabla^2 f(x^{(k)})^{-1}\nabla f(x^{(k)})

  • 拟牛顿法

    在牛顿法的迭代中,需要计算Hesse矩阵的逆矩阵,这一个计算比较复杂,考虑用一个矩阵代替Hesse矩阵的逆

5 线性回归的评估指标

RMSE/MSE/MAE

R-Squared

Adjustd R-Squared

F Statistics

RMSM 均方根误差
RMSE=1mi=1m(f(xi)yi)2 RMSE = \sqrt {\frac{1}{m}\sum_{i=1}^m(f(x_i)- y_i)^2}
MSE均方误差
MAE=1mi=1m(f(xi)yi)2 MAE=\frac{1}{m}\sum_{i=1}^m(f(x_i)- y_i)^2
MAE绝对误差
MAE=1mi=1mf(xi)yi MAE =\frac{1}{m}\sum_{i=1}^m|f(x_i)- y_i|

6 sklearn参数详情

  • sklearn.linear_model.LinearRegression()

参考:(sklearn)逻辑回归linear_model.LogisticRegression用法

相关文章:

  • 2022-12-23
  • 2021-12-12
  • 2022-01-15
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
  • 2022-02-01
  • 2021-12-05
猜你喜欢
  • 2021-09-04
  • 2021-04-19
  • 2021-05-20
  • 2021-12-18
  • 2021-08-01
  • 2022-01-07
  • 2021-10-01
相关资源
相似解决方案