线性最小二乘两种方法

线性最小二乘拟合 y = w0 +w1x  (参数 w0, w1)

 

(1)如何评价一条拟合好的直线 y = w0 +w1x 的误差?

  "cost" of a given line : Residual sum of squares (RSS)

 

    

(2)最小二乘方法的思路

  使 RSS 尽量小。

  即

      

  而RSS 函数的图像是这样的:

      

   极小值 处导数为0.

  

   对RSS 求导:

      

    

  有两种方法求解。

 1.closed form:

  解析解, 使gradient = 0

  得到:

  w1:  slope = ((sum of X * Y) - (1/N)*(sum of X)*(sum of Y)) / ((sum of X^2) -(1/N)* (sum of X)*(sum of X))

  w0:  intercept = (1/N)*(sum of Y) - slope * (1/N)* (sum of X)

  

  2.gradient descent

  梯度下降方法。

  对于简单的函数拟合,可以直接求出解析解。但对于一些不能直接求出解析解的情况(例如神经网络),就可以使用梯度下降方法。

  注意到:

   

    w0 的导数 = sum (yi - (w0+w1xi) ) ,即  w0导数 =  sum( error )

   w1的导数  = sum( error*x )

  

 

  算法过程:

   step 0.初始化:

      initial_w0 = 0

      initial_w1 = 0

      step_size = 0.05

      tolerance = 0.01

 

    step 1 ~. 对于接下来的每一步:

    (1)根据当前 w0、 w1 计算 y ,并计算w0 、w1的导数 sum( error ) 和 sum( error *x)

     (2)更新 w0 、w1 的值:

           adjustment  =  step_size *  derivative(导数)

          w0 = w0 - adjustment (w1 同理)

      (3)检查算法是否应该结束(导数是否已经收敛到一个很小的值了):

          magnitude = sqrt(sum (derivative ^2))

          if magnitude < tolerance:

               end

 

出处:华盛顿大学machine learning:regression  week 1

转载于:https://www.cnblogs.com/smartweed/p/8257818.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值