线性回归及梯度下降法
来源:互联网 发布:algorithm 风格算法 编辑:程序博客网 时间:2024/05/16 18:39
一、线性回归
线性回归主要运用于“预测”类问题:
假设我们有一堆的数据(房间大小,房价)。给定一个没见过的房间大小,它的价格应该怎么估计呢?
一般来说,我们可以假定房价h(x)和大小x之间存在一种线性关系。求出最优h(x)后,
对于每一个大小x的房间,我们都可以给出一个估价h(x)
概念:COST FUNCTION(代价函数)
给定假设h(x):
在已知数据的条件下,他的代价函数为J(theta1,theta2):
可见,代价函数体现了一种预测值与实际值之间的误差(欧式距离的均值)
而我们的目标——
二、Gradient Descent(梯度下降)
梯度下降是一种在已知数据中求解最优h(x)的方法。
核心步骤:
注意:必须在求的所有参数之后同时更新,才能进行下一次循环
原理:
对于一个碗型函数,每进行一次参数更新,都会是取值更加接近最优解(碗底)
以二次函数为例,看起来大概就是这个样子
其中alpha称为学习速率(learning rate),过大将会使算法 不能收敛, 过小则收敛过慢
对于有两个参数的单价函数的梯度下降,其收敛过程看起来大概就是这个样子(注意,可以有两种不同路径)
通过不断进行梯度下降,我们可以求得给定数据下的参数的局部最优解
(数学没学好,表述很垃圾,最近准备重学线性代数)
因此,整个线性回归过程可以总结如下:
1、根据给定数据架设预测函数h(x)
2、计算代价函数J
3、计算各参数偏导
4、更新参数
5、重复2~4直到代价函数跟新的步长小于设定值或者是重复次数达到预设值。
上面简单地介绍了线性回归的模型和梯度下降获得参数方程的方法。
用到的一个十分简单的参数方程h(x)=theta0+theta1*x
在现实问题中,参数方程能要复杂许多,
不只有一个未知量x,可能有多个未知量x、y,不只有一次项,更有多次项,
因此,梯度下降的过程变化为:
(注意偏导的计算公式)
附:为了获得良好的收敛,在进行梯度下降前,我们可以对数据进行预处理。
目标是使得数据大小在同一个数据数量级上,均值为零。
一般将数据放缩到(-1,1)区间,
我们可以对数据进行如下操作:
其中u1是数据的均值,s1为数据绝对值的最大值。
用处理后的数据进行梯度下降可以获得更好效果。
- 线性回归及梯度下降法
- 线性回归及梯度下降
- 线性回归及梯度下降
- 线性回归及梯度下降
- 线性回归及梯度下降
- 多元线性回归及梯度下降
- 线性回归及梯度下降算法详解
- 线性回归&梯度下降
- 线性回归系列(4)-线性回归及梯度下降
- 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现
- 梯度下降法,最小二乘法求线性回归
- 线性回归与梯度下降法
- 梯度下降法,最小二乘法求线性回归
- 线性回归与梯度下降法
- 梯度下降法,最小二乘法求线性回归
- 梯度下降法解多元线性回归
- 梯度下降法解线性回归
- 线性回归最小二乘法和梯度下降法
- Spring MVC sample application for downloading files
- C语言生成随机数函数的用法
- C#程序设计之学生信息管理系统
- 【干货】照片也能讲故事:水印相机设计小结
- 个人生活安排
- 线性回归及梯度下降法
- pgsql8.1中文文档截取
- leetcode-3Sum
- mysql学习系列:Error:1005错误之errno:105
- Swift的基础,操作符,字符串和集合类型
- mac cocos2dx环境搭建 配置完报错:Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files
- swift 学习资料收集
- 修改android最小堆内存
- ios7 中的 Auto Layout 使用教程 第三节