美文网首页
线性回归及梯度下降法

线性回归及梯度下降法

作者: Zhou_qn | 来源:发表于2020-08-10 00:02 被阅读0次
  • 回归分析:用来建立方程模拟两个或者多个变量之间如何关联
    被预测的变量叫:因变量,输出
    用来进行预测的变量叫:自变量,输入


    hθ(x) = θ01x
    这个方程对应的图像是一条直线,称为回归线。其中,θ1为回归线的斜率,θ0为回归线的截距

  • 代价函数(cost Function)

  • 最小二乘法:

  • 真实值y,预测值hθ(x),则误差为(y-hθ(x))2

  • 找到合适的参数,使得误差平方和:
    \quad\quad\quad\quad\quad J(θ_0,θ_1) =\frac{1}{2m} \textstyle\sum_{i=1}^{m}(y^i-h_θ(x^i))^2 最小
    \quad\quad\quad\quad\quad【注:\frac{1}{2}可有可无,主要是为了求导和平方的2抵消】

    线性回归

  • 相关系数
    我们使用相关系数去衡量线性相关性的强弱
    \quad\quad\quad\quad\quad r_{xy} = \frac{\textstyle\sum(X_i-\bar{X})(Y_i-\bar{Y})}{\sqrt{\textstyle\sum(X_i-\bar{X})^2 \textstyle\sum(Y_i-\bar{Y})^2}}

  • 决定系数
    相关系数R(coefficient of determination)是用来描述两个变量之间的线性关系的,但决定系数的适用范围更广,可以用于描述非线性或者有两个及两个以上的相关关系。它可以用来评价模型的效果

\quad总平方和(SST) : \textstyle\sum_{i=1}^{n}(y_i-\bar{y})^2y_i是真实值,\bar{y}是真实值的平均值】
\quad回归平方和(SSR) :\textstyle\sum_{i=1}^{n}(\hat{y}-\bar{y})^2\hat{y}是预测值】
\quad残差平方和(SSE):\textstyle\sum_{i=1}^{n}(y_i-\hat{y})^2
\quad它们三者的关系是:SST=SSR+SSE

\quad决定系数: R^2 = \frac{SSR}{SST} = 1-\frac{SSE}{SST}R^2的值越接近1,说明它们之间的关系越接近于线性的关系,越接近0就越不接近于线性关系】

  • 梯度下降法:
    有这么一个函数 J(θ_0,θ_1)minJ(θ_0,θ_1)
    \quad1. 初始化θ_0,θ_1
    \quad2. 不断改变θ_0,θ_1,直到J(θ_0,θ_1) 到达全局最小值,或局部极小值
    图1
图2

θ_0,θ_1 取不同初始值的变化结果,如图1取值,然后不断改变θ_0,θ_1,直到J(θ_0,θ_1) 到达全局最小值,如图2取值,然后不断改变θ_0,θ_1,直到J(θ_0,θ_1) 到达局部极小值

repeat until convergence {
θ_j:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)【α指的是学习率】
}

正确做法 :同步更新
temp0:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
temp1:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_0:=temp0
θ_1:=temp1

不正确做法:
temp0:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_0:=temp0
temp1:= θ_j- α\frac{∂}{∂θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_1:=temp1

\quad现在假设只有一个参数θ_1,公式如下,现在看图3中的曲线,当我们的取①处的θ_1值,那么我们计算出来的斜率是负数,α学习率为正数,相乘就为负数,则θ_1减去这个负值以后就变大了,赋给θ_1θ_1的取值大了,现在到了②处,计算出来的斜率还是负数,α学习率为正数,相乘就为负数,则θ_1减去这个负值以后又变大了,接下来到了③处,计算出来的斜率还是正数,α学习率为正数,相乘就为正数,则θ_1减去这个正值以后变小了,则下次取值一定在③的左侧,都会忘最小值靠近。【学习率的值不能太小(变化会太慢),也不能太大(变化会太大),可以多尝试,找到比较合适的 0.1,0.03,0.003,0.001........等等】

图3
  • 用梯度算法来求解线性回归:

\quad\quad\quad\quad\quad\quad\quad j=0: α\frac{∂}{∂θ_0}J(θ_0,θ_1) = \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
\frac{∂}{∂θ_j}J(θ_0,θ_1) =
\quad\quad\quad\quad\quad\quad\quad j=1: α\frac{∂}{∂θ_1}J(θ_0,θ_1) = \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
repeat until convergence {
θ_0:= θ_0- α \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
θ_1:= θ_1- α \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)·x^i
}


梯度算法可能会陷入局部最小值:



梯度下降算法的代价函数是凸函数,所以会一直往最小值走

梯度下降算法的代价函数

相关文章

网友评论

      本文标题:线性回归及梯度下降法

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