博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】线性回归最小二乘法和梯度下降法
阅读量:6871 次
发布时间:2019-06-26

本文共 753 字,大约阅读时间需要 2 分钟。

原文链接:《》

问题描述

  首先我们定义问题,线性回归要解决的问题就是根据给出的数据学习出一个线性模型。

  例如我们最常说的身高和体重的关系,以及房屋面积和房价的关系,这里给出一个瑞典汽车保险数据集
  数据集 可以直接复制出来用
两列分别表示
索赔要求数量
对所有索赔的总赔付,以千瑞典克朗计
数据前五行

1 108 392,52 19 46,23 13 15,74 124 422,25 40 119,4

 

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

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

下面给出两种解决方法,并分析这两种方法区别。

最小二乘法

定义损失函数如下:

 

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

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

多元线性回归

梯度下降法

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

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

 

随机梯度下降

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

 

 

转载于:https://www.cnblogs.com/kuliuheng/p/10594964.html

你可能感兴趣的文章
使用 Go 的 struct tag 来解析版本号字符串
查看>>
Objective-c——UI基础开发第十一天(UICollectionView)
查看>>
CentOS 7 搭建Jenkins+JDK+Git+Maven+Gradle持续集成系统
查看>>
yarn的 文件名、目录名或卷标语法不正确
查看>>
《C专家编程》笔记(四)——数组和指针并不相同
查看>>
最新工作环境整理遇到的一些问题。
查看>>
ip通信基础第七周(下)
查看>>
mysql5.6.38占用内存过大问题解决
查看>>
那些年学过的计算机编程语言
查看>>
MySQL----外键
查看>>
全面总结: Golang 调用 C/C++,例子式教程
查看>>
安卓手机的屏幕规格很多。app开发者在设计User Interface的时候,要怎么处理,才能适应不同屏幕大小?...
查看>>
php合并数组并保留键值的方法
查看>>
WinEdit编辑器中中文乱码
查看>>
HTTP的长连接和短连接(转)
查看>>
《Java从入门到精通》第十三章学习笔记
查看>>
洛谷 p2530 化工场装箱员(资源型)
查看>>
js数组去重
查看>>
类职能的单一性
查看>>
java正则表达式实战例子,持续更新,记下来后面就不用重新写了。。。
查看>>