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

线性回归及梯度下降法

作者: 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