• 线性最小二乘两种方法


    线性最小二乘拟合 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

  • 相关阅读:
    ios webapp调试神器MIHTool
    20个正则表达式
    jQuery技巧
    浏览器判断和移动端的判断
    JavaScript 被忽视的细节
    移动端Web页面问题解决方案
    virtualenv创建虚拟环境
    init.d文件夹
    python連接mysql數據庫
    const和define的使用区别
  • 原文地址:https://www.cnblogs.com/smartweed/p/8257818.html
Copyright © 2020-2023  润新知