zoukankan      html  css  js  c++  java
  • 【转】线性回归最小二乘法和梯度下降法

    原文链接:《线性回归最小二乘法和梯度下降法

    问题描述

      首先我们定义问题,线性回归要解决的问题就是根据给出的数据学习出一个线性模型。
      例如我们最常说的身高和体重的关系,以及房屋面积和房价的关系,这里给出一个瑞典汽车保险数据集
      数据集 可以直接复制出来用
    两列分别表示
    索赔要求数量
    对所有索赔的总赔付,以千瑞典克朗计
    数据前五行

    1 108 392,5
    2 19 46,2
    3 13 15,7
    4 124 422,2
    5 40 119,4

    我们按照这个数据集作出图如下

      大概观察一下可以用线性模型去定义,现在的问题是根据现有的这个数据集合,我们要学习出一个模型,然后给出索赔要求数量我们能够预测总赔付。
    下面给出两种解决方法,并分析这两种方法区别。

    最小二乘法

    定义损失函数如下:

     

    上面是损失函数,我们现在目的使得损失函数尽可能的小,就是求如上Q的最小值,函数求极值问题,这里就用到了导数,导数的意义是导数大于0的x处函数递增,导数小于0处x的函数递减,导数为0既为函数的极值点

    证明也很简单,这里给个证明的链接,剩下就是几次求和的事儿了。 

    多元线性回归

    梯度下降法

     我们要求解的问题和上面一样,同样定义的模型和损失函数都一样,模型为线性模型,损失函数为平方差值和最小,同样这里要求解的是线性方程的参数。

    首先我们给每个参数赋值一个随机数,然后按照下面公式进行迭代:

     

    随机梯度下降

    上面公式我们发现,每迭代一次我们都要遍历所有的数据去求和,如果数据量大的话可能计算一次很耗时,于是就有了随机梯度下降,这样虽然解决了数据量大的问题,但是学习速度比较曲折,并且学习到的结果可能只是几个局部最优解。如果数据量小建议用批量梯度下降: 

     

  • 相关阅读:
    PowerDesigner设置线风格(直线,折线。。。)
    使用PowerDesigner画ER图详细教程
    UML学习小结
    UML用例图说明
    UML类图基本画法
    Enterprise Architect与startUML表示UML常用图
    手把手教你使用startuml画用例图
    各种图(流程图,思维导图,UML,拓扑图,ER图)简介
    StartUML 各种类图的例子
    StarUML---推荐一款UML工具(很好很强大)
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/10594964.html
Copyright © 2011-2022 走看看