线性回归

参考:

  1. https://www.cnblogs.com/GuoJiaSheng/p/3928160.html

  2. https://blog.csdn.net/lisi1129/article/details/68925799

相关定义

线性回归(Linear Regression)通过学习一个线性回归方程来尽可能准确预测结果的回归方法。

最小二乘法(least square)基于均方误差最小化来进行模型求解的方法。

归纳偏好(inductive bias):实际问题中经常面临很大的假设空间,机器学习算法在学习过程中对某种类型假设的偏好称为归纳偏好。

奥卡姆的剃刀,引导算法确立“正确性”偏好的一般性原则,即“若有多个假设与观察一致,则选择最简单的一个”。

泛化能力(generalization):模型适应新样本的能力。

正则化(regularization)为了防止过拟合,提高模型的泛化能力,对模型的损失函数进行约束,以减小特征变量的数量级。

梯度下降法:一种求局部最优解的方法,对于F(x),在a点的梯度是F(x)增长最快的方向,那么它的相反方向则是该点下降最快的方向。使用梯度下降法时应注意对数据进行归一化处理。

模型描述

给定线性回归训练集 ,我们试图得到线性回归方程:

使得

其中,X为特征空间,

X=\begin{bmatrix} {x_{11}}&{x_{12}}&{\cdots}&{x_{1n}}&{1}\\ {x_{21}}&{x_{22}}&{\cdots}&{x_{2n}}&{1}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}&{\vdots}\\ {x_{m1}}&{x_{m2}}&{\cdots}&{x_{mn}}&{1}\\ \end{bmatrix}

期望最小化均方误差,可以得到:

令,则对 进行求导可得:

导数为 0 的解即为 的最优解。

此处缺少概率层面解释目标函数的可行性

求解算法

根据 是否为满秩矩阵或正定矩阵,分为两种解法:

  1. 为满秩矩阵:,可得
  2. 矩阵不满秩,采用梯度下降法求解。

梯度下降法

算法:

输入:训练样本 , 梯度步长;

输出:最优的 取值。

  1. 随机对 进行初始化;

  2. 沿着负梯度方向进行迭代,更新后的 使 更小 :

  3. 对步骤 2 中的每个进行求导可以得到

  4. 每次更新变量,采用所有样本进行计算并相加的方法,称为批量梯度下降法;

  5. 每次更新变量,随机选择单个样本的方法,称为随机梯度下降法。

sklearn 参数整理

API说明:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression

class sklearn.linear_model.``LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)[source]

普通最小二乘线性回归:

参数 解释 备注
fit_intercept boolean,可选,默认 True
是否计算模型的截距,如果设置为 False,计算将不使用截距(即:期望数据已经进行了中心化处理)
normalize boolean, 可选, 默认 False
fit_intercept 设置为 False 时,这个参数可以忽略。如果设置为 True,回归之前将通过减去均值并除l2范数进行归一化。如果需要进行标准化,请在调用估计器 normalize=False的 fit 函数之前使用 sklearn.preprocessing.StandardScaler
copy_X boolean, optional, default True
如果为 True,将备份 X,否则将覆盖X。
n_jobs: int 或 None, 可选 (default=None)
计算使用的处理器个数,如果 n_tragets>1将会加速,对于规模较大的问题效率更高。除了在 joblib.parallel_backend 之外 None 表示 1,-1 表示使用所有处理器 。详细内容见Glossary.
属性 解释 备注
coef_ array, shape (n_features, ) or (n_targets, n_features)
线性回归问题得到的参数。如果在拟合过程中传入多目标(y 2D),那么格式为(n_targets,n_features)的2维数组。如果只传入一个目标,那么是长度为n_features 的一维数组。
intercept_ array
线性模型的截距项。

你可能感兴趣的:(线性回归)