线性回归

回归的概念:

监督学习分为回归分类

  • 回归 (Regression、Prediction)
    如何预测上海浦东的房价? 标签连续未来的股票市场走向?
  • 分类 (Classification)—–标签离散
    身高1.85m,体重100kg的男人穿什么尺码的T恤? 根据肿瘤的体积、患者的年龄来判断良性或恶性?

线性回归的概念

  • 线性回归(Linear Regression) 是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化

线性模型

一、 线性模型

  • 给定由n个属性描述的列向量 f ( x ) = ( x ( 1 ) ; x ( 2 ) ; . . . ; x ( n ) ) f(\mathbf{x})={(x^{(1)};x^{(2)};...;x^{(n)})} f(x)=(x(1);x(2);...;x(n)),其中 x ( j ) x^{(j)} x(j)是 x \textbf{x} x在第 j 个属性的取值。线性模型即为通过对属性进行线性组合的函数,即 f ( x ) = w 0 + w 1 x ( 1 ) + . . . + w n x ( n ) f(\mathbf{x})=w_0+w_1x^{(1)}+...+w_nx^{(n)} f(x)=w0​+w1​x(1)+...+wn​x(n)写成向量形式如下: f ( x ) = w T x f(\textbf{x})=\mathbf{w}^\mathrm{T}\mathbf{x} f(x)=wTx其中列向量 w = ( w 0 ; w 1 ; . . . ; w n ) \mathbf{w}=(w_0;w_1;...;w_n) w=(w0​;w1​;...;wn​),列向量 x = ( 1 ; x ( 1 ) ; . . . ; x ( n ) ) \mathbf{x}=(1;x^{(1)};...;x^{(n)}) x=(1;x(1);...;x(n))。列向量 w \mathbf{w} w确定后,模型随之确定。

二 、线性模型求解

  • 对于给定的数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } \mathbf{D}=\left \{ (\mathbf{x_1},y_1),(\mathbf{x_2},y_2),...,(\mathbf{x_m},y_m)\right \} D={(x1​,y1​),(x2​,y2​),...,(xm​,ym​)},其中 x i = ( x i ( 1 ) ; . . . ; x i ( n ) ) \mathbf{x_i}=(x_i^{(1)};...;x_i^{(n)}) xi​=(xi(1)​;...;xi(n)​), y i y_i yi​为第i个实例的实际值。“线性回归”试图学得一个线性模型以尽可能准确地预测实例的输出值,使之接近实际值。

  • 关键问题是如何衡量两者之间的误差。这里采用均方误差作为性能度量,即利用最小二乘法来进行参数估计。
    a r g m i n w J ( w ) = 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 \underset{\mathbf{w}}{argmin}\mathbf{\mathit{J}}(\mathbf{w})=\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2 wargmin​J(w)=2m1​i=1∑m​(f(xi​)−yi​)2
    实际上在高斯分布假设前提下,用极大似然函数来进行参数估计,可以得出上述目标,推导过程如下。

    根据中心极限定理,认为误差项 ξ \mathbf\xi ξ服从均值为零的高斯分布
    P ( ξ i ) = 1 2 π σ e x p ( − ξ i 2 2 σ 2 ) P(\xi_i)=\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{\xi_i^2}{2\sigma ^2}) P(ξi​)=2π ​σ1​exp(−2σ2ξi2​​)

    P ( y i ∣ x i ; w ) = 1 2 π σ e x p ( − ( y i − x i ) 2 2 σ 2 ) ​ P(y_i|\mathbf{x_i};\mathbf{w})=\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y_i-\mathbf{x}_i)^2}{2\sigma ^2})​ P(yi​∣xi​;w)=2π ​σ1​exp(−2σ2(yi​−xi​)2​)​

    由上可得似然函数,
    L ( w ) = ∏ i = 1 m P ( y i ∣ x i ; w ) \mathbf{L}(\mathbf{w})=\prod_{i=1}^{m}P(y_i|\mathbf{x_i};\mathbf{w}) L(w)=i=1∏m​P(yi​∣xi​;w)
    取对数,得对数似然函数
    L ( w ) = m l o g 1 2 π σ − 1 2 σ 2 ∑ i = 1 m ( f ( x i ) − y i ) 2 \mathbf{L}(\mathbf{w})=mlog\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{2\sigma ^2}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2 L(w)=mlog2π ​σ1​−2σ21​i=1∑m​(f(xi​)−yi​)2
    对上式取极大值等价于下式取极小值
    J ( w ) = 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 \mathbf{\mathit{J}}(\mathbf{w})=\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2 J(w)=2m1​i=1∑m​(f(xi​)−yi​)2
    推导完毕。

  • 模型求解方法:矩阵直接求解和梯度下降法。

1.正规方程法:

对于数据集D中的每个实例组成一个矩阵,矩阵形式如下:
X = ( 1 x 1 ( 1 ) . . . x 1 ( n ) 1 x 2 ( 1 ) . . . x 2 ( n ) . . . . . . 1 x m ( 1 ) . x m ( n ) ) = ( 1 x 1 T 1 x 2 T . . 1 x m T ) \mathbf{X}=\begin{pmatrix} 1 & x_1^{(1)} & ... & x_1^{(n)}\\ 1& x_2^{(1)} & ... & x_2^{(n)}\\ .& . & ... & .\\ 1& x_m^{(1)} & . & x_m^{(n)} \end{pmatrix}=\begin{pmatrix} 1 &\mathbf{x}_1^T \\ 1 &\mathbf{x}_2^T\\ .& .\\ 1& \mathbf{x}_m^T \end{pmatrix} X=⎝⎜⎜⎜⎛​11.1​x1(1)​x2(1)​.xm(1)​​..........​x1(n)​x2(n)​.xm(n)​​⎠⎟⎟⎟⎞​=⎝⎜⎜⎛​11.1​x1T​x2T​.xmT​​⎠⎟⎟⎞​
对应的实际值写成列向量形式 y = ( y 1 ; y 2 ; . . . ; y m ) \mathbf{y}=(y_1;y_2;...;y_m) y=(y1​;y2​;...;ym​),则有
w ^ ∗ = a r g m i n w ^ ( y − X w ^ ) T ( y − X w ^ ) \mathbf{\hat{w}}^*=\underset{\hat{\mathbf{w}}}{argmin}(\mathbf{y}-\mathbf{X\hat{w}})^T(\mathbf{y}-\mathbf{X\hat{w}}) w^∗=w^argmin​(y−Xw^)T(y−Xw^)

上式argmin后面部分对 w ^ \hat{\mathbf{w}} w^求导,令之等于零,得到 w ^ ∗ = ( X T X ) − 1 X T y \mathbf{\hat{w}}^*=(\mathbf{X^TX})^{-1}\mathbf{X^T}\mathbf{y} w^∗=(XTX)−1XTy, 令 x ^ i = ( 1 ; x i ) \mathbf{\hat{x}}_i=(1;\mathbf{x}_i) x^i​=(1;xi​)

从而得到线性模型 f ( x ^ i ) = x ^ i T w ^ ∗ f(\mathbf{\hat{x}}_i)=\mathbf{\hat{x}}_i^T\mathbf{\hat{w}}^* f(x^i​)=x^iT​w^∗,或者 f ( x ^ i ) = w ^ ∗ T x ^ i f(\mathbf{\hat{x}}_i)=\mathbf{\hat{w}}^{*T}\mathbf{\hat{x}}_i f(x^i​)=w^∗Tx^i​。

但是,现实情况中 X T X \mathbf{X^TX} XTX往往不可逆(数学现象),也就是实际上的过拟合(由于学习能力过于强大,把训练样本自身的一些特点当作了所以潜在样本都会具有的一般性质,导致泛化性能,也就是举一反三的能力下降),通常原因有两种,一是高度共线性;二是数据特征过多而训练数据较少,此时可以通过正则化来解决。

2.梯度下降法

梯度下降是一种常用的一阶优化方法,是求解无约束优化问题的经典方法之一。对于连续可微函数上某一点,有各个方向导数,沿梯度方向的方向导数达到最大值,也就是说,梯度的方向是函数在这点增长最快的方向。

因此,我们可以得到如下结论:函数在某点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。

所以我们可以沿反梯度方向不断一步一步迭代,得到局部极小点。当目标函数为凸函数时,局部极小点就是全局最小点,此时梯度下降法可确保收敛到全局最优解。(凸函数具有唯一极小值,也意味着求得的模型是最优的,不会陷入局部最优解)

将损失函数对列向量 w \mathbf{w} w求导,得到 w j w_j wj​的偏导:
∂ J ( w ) ∂ w j = ∂ ∂ w j 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 = 1 m ∑ i = 1 m ( f ( x i ) − y i ) x i ( j ) , j = 0 , 1 , 2 , . . . , n \frac{\partial \mathbf{J(w)}}{\partial w_j}=\frac{\partial }{\partial w_j}\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2=\frac{1}{m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)\mathbf{x}_i^{(j)},j=0,1,2,...,n ∂wj​∂J(w)​=∂wj​∂​2m1​i=1∑m​(f(xi​)−yi​)2=m1​i=1∑m​(f(xi​)−yi​)xi(j)​,j=0,1,2,...,n
然后对各个分量都以下面形式更新 w j w_j wj​:
w j = w j − α 1 m ∑ i = 1 m ( f ( x i ) − y i ) x i ( j ) w_j=w_j-\alpha\frac{1}{m} \sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)\mathbf{x}_i^{(j)} wj​=wj​−αm1​i=1∑m​(f(xi​)−yi​)xi(j)​
从公式可以看出对于每一个分量进行一次迭代时计算了所有训练样本数据,这种称为批量梯度下降。因此在数据量很大的时候,每次迭代都要遍历训练集一遍,开销会很大。

为改善上述情况,可以在每次迭代仅选择一个训练样本去计算代价函数的梯度,然后更新参数。即使是大规模数据集,随机梯度下降法也会很快收敛。这种方法称为随机梯度下降

此时有, w j = w j − α ( f ( x i ) − y i ) x i ( j ) w_j=w_j-\alpha (f(\mathbf{x}_i)-y_i)\mathbf{x}_i^{(j)} wj​=wj​−α(f(xi​)−yi​)xi(j)​

关于随机梯度下降、批量梯度下降与小批量随机梯度下降的特征不再赘述。

三 运算向量化表示。

  • 梯度求解过程中用到了求和,代码实现时用循坏太过繁琐,可借助矩阵运算,简洁迅速。
    x i = [ 1 x i ( 1 ) ⋮ x i ( n ) ] , y = [ y 1 y 2 ⋮ y m ] , w = [ w 0 w 1 ⋮ w n ] , X = [ 1 x 1 ( 1 ) x 1 ( 2 ) ⋯ x 1 ( n ) 1 x 2 ( 1 ) x 2 ( 1 ) ⋯ x 2 ( 1 ) ⋮ ⋮ ⋮ ⋯ ⋮ 1 x m ( 1 ) x m ( 1 ) ⋯ x m ( 1 ) ] \mathbf{x}_i=\begin{bmatrix} 1\\ x_i^{(1)}\\ \vdots \\ x_i^{(n)} \end{bmatrix},y=\begin{bmatrix} y_1\\ y_2\\ \vdots \\ y_m \end{bmatrix},\mathbf{w}=\begin{bmatrix} w_0\\ w_1\\ \vdots \\ w_n \end{bmatrix},X=\begin{bmatrix} 1 & x_1^{(1)} & x_1^{(2)} & \cdots & x_1^{(n)}\\ 1 & x_2^{(1)} & x_2^{(1)} & \cdots & x_2^{(1)}\\ \vdots &\vdots &\vdots &\cdots &\vdots \\ 1 & x_m^{(1)} &x_m^{(1)} & \cdots & x_m^{(1)} \end{bmatrix} xi​=⎣⎢⎢⎢⎡​1xi(1)​⋮xi(n)​​⎦⎥⎥⎥⎤​,y=⎣⎢⎢⎢⎡​y1​y2​⋮ym​​⎦⎥⎥⎥⎤​,w=⎣⎢⎢⎢⎡​w0​w1​⋮wn​​⎦⎥⎥⎥⎤​,X=⎣⎢⎢⎢⎢⎡​11⋮1​x1(1)​x2(1)​⋮xm(1)​​x1(2)​x2(1)​⋮xm(1)​​⋯⋯⋯⋯​x1(n)​x2(1)​⋮xm(1)​​⎦⎥⎥⎥⎥⎤​

    [ f ( x 1 ) − y 1 f ( x 2 ) − y 2 ⋮ f ( x m ) − y m ] = [ w T x 1 − y 1 w T x 2 − y 2 ⋮ w T x m − y m ] = X w − y \begin{bmatrix} f(x_1)-y_1\\ f(x_2)-y_2\\ \vdots \\ f(x_m)-y_m \end{bmatrix}=\begin{bmatrix} \mathbf{w^Tx}_1-y_1\\ \mathbf{w^Tx}_2-y_2\\ \vdots \\ \mathbf{w^Tx}_m-y_m \end{bmatrix}=X\mathbf{w}-y ⎣⎢⎢⎢⎡​f(x1​)−y1​f(x2​)−y2​⋮f(xm​)−ym​​⎦⎥⎥⎥⎤​=⎣⎢⎢⎢⎡​wTx1​−y1​wTx2​−y2​⋮wTxm​−ym​​⎦⎥⎥⎥⎤​=Xw−y

    损失函数为:
    J ( w ) = 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 J(\mathbf{w})=\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2 J(w)=2m1​i=1∑m​(f(xi​)−yi​)2
    对 w j w_j wj​求梯度:
    ∂ J ( w ) ∂ w j = ∂ ∂ w j 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 = 1 m ∑ i = 1 m ( f ( x i ) − y i ) x i ( j ) , j = 0 , 1 , 2 , . . . , n \frac{\partial \mathbf{J(w)}}{\partial w_j}=\frac{\partial }{\partial w_j}\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2=\frac{1}{m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)\mathbf{x}_i^{(j)} , j=0,1,2,...,n ∂wj​∂J(w)​=∂wj​∂​2m1​i=1∑m​(f(xi​)−yi​)2=m1​i=1∑m​(f(xi​)−yi​)xi(j)​,j=0,1,2,...,n

    ∂ J ∂ w = [ ∂ J ∂ w ( 0 ) ∂ J ∂ w ( 1 ) ⋮ ∂ J ∂ w ( n ) ] = 1 m X T ( X w − y ) \frac{\partial J}{\partial \mathbf{w}}=\begin{bmatrix} \frac{\partial J}{\partial w^{(0)}}\\ \frac{\partial J}{\partial w^{(1)}}\\ \vdots \\ \frac{\partial J}{\partial w^{(n)}} \end{bmatrix}=\frac{1}{m}\mathbf{X^T}(\mathbf{Xw}-y) ∂w∂J​=⎣⎢⎢⎢⎡​∂w(0)∂J​∂w(1)∂J​⋮∂w(n)∂J​​⎦⎥⎥⎥⎤​=m1​XT(Xw−y)

补充:

  • L1正则化下的损失函数

J ( w ) = 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 + λ ∥ w ∥ 1 \mathbf{\mathit{J}}(\mathbf{w})=\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2+\lambda \left \| \mathbf{w} \right \|_{1} J(w)=2m1​i=1∑m​(f(xi​)−yi​)2+λ∥w∥1​

​ 其中 ∥ w ∥ 1 = ∑ w j \left \| \mathbf{w} \right \|_{1}=\sum w_j ∥w∥1​=∑wj​

  • L2正则化下的损失函数

J ( w ) = 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 + λ / 2 ∥ w ∥ 2 2 \mathbf{\mathit{J}}(\mathbf{w})=\frac{1}{2m}\sum_{i=1}^{m}(f(\mathbf{x}_i)-y_i)^2+\lambda/2 \left \| \mathbf{w} \right \|_{2}^2 J(w)=2m1​i=1∑m​(f(xi​)−yi​)2+λ/2∥w∥22​

​ 其中 ∥ W ∥ 2 = ∑ w j 2 \left \| W \right \|_{2}=\sqrt{\sum w_j^2} ∥W∥2​=∑wj2​ ​

加入L1正则化后称为Lasso回归,加入L2正则化称为Ridge回归,其中 λ \lambda λ为模型的超参数。

L1 regularizer : 它的优良性质是能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。

L2 regularizer :使得模型的解偏向于 norm 较小的 W,通过限制 W 的 norm 的大小实现了对模型空间的限制,从而在一定程度上避免了过拟合(overfitting )。不过 ridge regression 并不具有产生稀疏解的能力,得到的系数 仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。

线性回归的理解与公式推导相关推荐

  1. BP神经网络理解及公式推导

    BP神经网络理解及公式推导 __508任务 仅个人学习记录使用,可能有误 一.人工神经网络 人工神经网络(ANN)是一种旨在模仿人脑结构及其功能的由多个非常简单的处理单元彼此按某种方式相互连接而形成的 ...

  2. Focal Loss 论文理解及公式推导

    原文:Focal Loss 论文理解及公式推导 - AIUAI 题目: Focal Loss for Dense Object Detection - ICCV2017 作者: Tsung-Yi, L ...

  3. 线性回归理论说明及公式推导

    一切从线性回归说起 线性回归的基本形式 对于一个给定的样本,有n个属性对样本进行描述,则该样本可用一下表达式进行描述: 其实x为输入,y为输出.而线性回归的主要任务,就是找出x,y之间的关系,我们可以 ...

  4. 逻辑回归原理理解及公式推导

    1.算法介绍 (1)逻辑回归(Logistics Regression)是一种分类模型,常用于二分类问题. (2)我们可以用一句话来表示逻辑回归:逻辑回归是假设数据服从伯努利分布,基于最大似然估计推导 ...

  5. 由线性回归来理解深度学习的理论基础

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 这会是一篇比较长的文章,本来应该是分几次来po,但考虑到这个话题的 ...

  6. DPMM的理解、公式推导及抽样

    DPMM学习的基础及相关论文 学习DPMM(Dirichlet 过程混合模型)之前,首先要去理解DP过程及其三种构造方式,(1)Stick-breaking 构造,(2)Polya urn schem ...

  7. 线性回归相关知识及公式推导

       转自https://www.cnblogs.com/GuoJiaSheng/p/3928160.html 在现实生活中普遍存在着变量之间的关系,有确定的和非确定的.确定关系指的是变量之间可以使用 ...

  8. 卡尔曼滤波含义理解与公式推导(原作者王一哲,兰景公司,景贤计划)

    卡尔曼滤波是数据融合处理以及现代信号处理中十分重要,但是读书的时候在我电过于注重形式,对其内涵认识不足,工作之后才发现廖桂生老师在矩阵分析的课程上说的太对了,其实对于数学的定义的理解以及公式背后的含义 ...

  9. 超平面的理解与公式推导

    研究了半天,终于对"超平面"有了个初步了解. n 维空间中的超平面由下面的方程确定: 其中,w 和 x 都是 n 维列向量,x 为平面上的点,w 为平面上的法向量,决定了超平面的方 ...

最新文章

  1. HDU5692(线段树+dfs序)
  2. 牛客练习赛26 E-树上路径 (树链剖分+线段树)
  3. 【CF1020C】Election【贪心】
  4. 避免常见的6种HTML5错误用法,如何避免常见的6种HTML5错误用法
  5. 花花酱leetcode 题目-二分搜索
  6. 吸血鬼 java_吸血鬼数
  7. 使用maven创建web项目
  8. SQL必知必会-组合查询
  9. sql简介_SQL表简介
  10. win7 中出现“为了配置TCP/IP,必须安装并启动网络适配卡“问题的解决办法
  11. 不会框架不要紧,我带你自定义框架
  12. python3 pyv8 linux,Python 3.4不能安装Pyv8模块
  13. python获取股票数据,并计算技术指标
  14. 大数据数据湖之hudi
  15. python第三方库文件传输_慢步学习,python库文件概述,再来点第三方库文件安装的干货...
  16. position属性absolute与relative 详解 不为人知的(fixed)绝对定位(fixed相对于浏览器窗口=不动的div)
  17. 人脸识别学生考勤系统【1】
  18. foc 电流环解耦_FOC中电流环调试的宝贵经验总结(有理有据+全盘拖出)
  19. TCL学习--语法置换(第一篇)
  20. mppt光伏电池模型仿真光伏电池数学模型

热门文章

  1. java中如何进行强制转换?
  2. 弯下腰,只为一个昂起头的机会
  3. 慢节奏的和府,能否掌握资本带来的“加速度”
  4. 2.1 內积与欧几里得空间
  5. Manjaro手动调节屏幕亮度
  6. 编写 Linux shell 脚本 踩坑记录
  7. 密码基础知识(3)---对称密码体制
  8. ntpdate离线安装
  9. OceanBase 业务数据库实践(二)── DB2 迁移
  10. windows nodejs高版本降级为低版本