美文网首页
线性回归

线性回归

作者: 学以致用123 | 来源:发表于2018-10-08 08:22 被阅读0次

参考:

  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)增长最快的方向,那么它的相反方向则是该点下降最快的方向。使用梯度下降法时应注意对数据进行归一化处理。

模型描述

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

f(X)=w^TX 使得 f(X)\approx y

其中,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}

y=(y_1;y_2;\cdots;y_m)

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

\hat{w}^*=\mathop{\arg \min}_{\hat{w}}(y-X\hat{w})^T(y-X\hat{w})

E_{\hat{w}}=(y-X\hat{w})^T(y-X\hat{w}),则对 \hat{w}进行求导可得:

\frac{\partial E_{\hat{w}}}{\partial \hat{w}}=2X^T(X\hat{w}-y)

导数为 0 的解即为 \hat{w} 的最优解。

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

求解算法

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

  1. X^TX为满秩矩阵:X^TX\hat{w}=X^Ty,可得 \hat{w}=(X^TX)^{-1}X^Ty
  2. X^TX​矩阵不满秩,采用梯度下降法求解。

梯度下降法

算法:

输入:训练样本 D , 梯度步长\alpha

输出:最优的 \hat w 取值。

  1. 随机对 \hat w 进行初始化;

  2. 沿着负梯度方向进行迭代,更新后的 \hat w 使 E_{\hat w}更小 : w=w-\alpha\frac{\partial{E_w}}{\partial w}

  3. 对步骤 2 中的每个w进行求导可以得到\frac{\partial{E_w}}{\partial w_j}=(F(X)-y)X_j

  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
线性模型的截距项。

相关文章

  • 机器学习实战——回归

    本章内容】 线性回归 局部加权线性回归 岭回归和逐步线性回归 例子 【线性回归】 wHat = (X.T*X).I...

  • 线性回归模型

    参考:1.使用Python进行线性回归2.python机器学习:多元线性回归3.线性回归概念 线性回归模型是线性模...

  • 通俗得说线性回归算法(二)线性回归实战

    前情提要:通俗得说线性回归算法(一)线性回归初步介绍 一.sklearn线性回归详解 1.1 线性回归参数 介绍完...

  • 第一次打卡

    线性回归主要内容包括: 线性回归的基本要素线性回归模型从零开始的实现线性回归模型使用pytorch的简洁实现线性回...

  • 2020-02-14

    线性回归:线性回归分为一元线性回归和多元线性回归,一元线性回归用一条直线描述数据之间的关系,多元回归是用一条曲线描...

  • 逻辑回归和线性回归对比

    简单说几点 线性回归和逻辑回归都是广义线性回归模型的特例。他们俩是兄弟关系,都是广义线性回归的亲儿子 线性回归只能...

  • 算法概述-02

    1.逻辑回归和线性回归的联系和区别: 逻辑回归和线性回归的都是广义的线性回归。 线性回归是根据最小二乘法来建模,逻...

  • 【机器学习实践】有监督学习:线性分类、回归模型

    线性模型 为线性模型 分类和回归的区别 分类:离散回归:连续本文主要关注线性回归模型 常用线性回归模型类型 OLS...

  • 统计学习基础复习浓缩版

    1.简单线性回归 2.多元线性回归 3.多项式回归 4.广义线性回归(含逻辑斯谛回归) 广义线性回归模型通过拟合响...

  • Linear Regression

    在线性回归模型中,我们分为单元线性回归和多元线性回归(Multivariate Linear Regression...

网友评论

      本文标题:线性回归

      本文链接:https://www.haomeiwen.com/subject/fykdaftx.html