机器学习(一)——线性回归的梯度下降算法和正规方程法

原创 2018年04月14日 22:09:03

机器学习(一)——线性回归的梯度下降算法和正规方程法


线性回归

机器学习基本分为有监督学习无监督学习

有监督学习基本分为回归问题分类问题

回归问题很简单,就是根据样本预测一个连续数的值,类似于模拟信号的预测吧,结果是0.1还是0.2呀,明天降雨量是500mm还是501mm呀。

分类问题自然就是数字信号的预测了,结果是0还是1呀,明天下午还是不下雨呀,这种。

回归问题可以用一条线来拟合样本数据,然后把目标x带入,就得到了目标y。

用一次函数,也就是直线来拟合,就是线性回归了。


梯度下降 gradient Descent

一次函数最重要的就是斜率k和截距b,也就是两个参数而已,θ0,θ1
也就是y=θ01*x。

现在任务简单了,确定θ向量,使尽可能多的数据点落在直线上,。

任务进一步变成了,使所有点到直线的距离的和最小,所以需要一个叫做代价函数的东西,J(θ)。它表示所有点到直线的距离和,那么总有一组θ,使得J最小,这个θ就是我们要找的。

但是θ总不可能一步得到,所以需要随便选个θ,然后让计算机帮我们慢慢调整到合适的地方,就好像牛顿迭代法求零点一样,这个过程下面会仔细讲到。

好了,当调整到合适的地方,也就是找到了不错的θ后,我们的直线就画出来了,只需要带入目标x,就可以得到预测值y了,完美。

1、hypothesis,假设函数

在上面的介绍中,其实已经有了hypothesis了,那就是y=θ01*x.

意思很简单,就是去猜猜看数据集满足什么样子的函数,一次的,二次的,根号,然后写个样子出来就好了,参数当然是每个特征有个参数。

哦,先介绍下变量。

X假设是一个m*n的矩阵,m表示有m个样本,n表示有n个特征,一般来说如果是n个特征,应该是有n+1维,因为X0应该是1,用来对应上面所显示的θ0,也就是常数项。后面的维度和这个对应就好。
θ是n*1的矩阵,在hypothesis中对应每个特征的参数。
y是m*1的矩阵,显然,它就是数据集中每条样本的结果。

所以,X*θ=y。 那么,hypotgesis也可以表示为 h(θ)=Xθ

2、cost function,代价函数

代价函数也介绍过了,就是根据θ计算所有点到当前直线的距离,然后程序会自动调整直线。

距离就是直线的y值减去样本对应x的y值咯,不想取绝对值,就用平方代替了,所以代价函数就变成了:
这里写图片描述

上面一个是普通的形式,下面转换成了矩阵的形式。

每一个预测的y减去样本的y,求平方,再求和,除以样本数量*2,这个2是因为后面求导会方便一点。

3、迭代

好了,最重要的部分来了。

代价函数J(θ)的自变量是θ,应变量是距离和。

代价函数的目标是使距离最小,也就是找到θ使J最小,ok,这简直就是牛顿迭代法的翻版。

牛顿迭代法是给个二次函数,也就是一条曲线,然后随便取个值,然后求这个值的导数,用这个值减去倒数*α,一直循环到y值为0,脑补下这个过程呗,不想画图了。
α大概表示步距吧,所以α不能太大,一步跨过了最小值,就又变大了,,当然α也不能太小,要不然迭代到啥时候去。

所以这里虽然不是求零点,但是也是求最小值,其实是一样的。

所以迭代过程就是:

这里写图片描述

其中的偏导数需要化简,过程如下:

所以最后,迭代过程就是:
这里写图片描述

至于什么时候停止,可以通过代码检测,发现导数接近0了,或者导数的导数接近0了,那就差不多了。当然也可以画图肉眼判断喽,把每次J的值画出来,发现最后基本不随着迭代的进行变化了,且一直在减小,那就说明差不多了。

好了,到这里为止,θ已经被找到了,带到hypothesis里面预测我们的目标就搞定了。

4、tips

可以进行特征的缩放,让所有特征范围差不多大,这样可以下降的快一点,一般做法是对某个特征减去这个特征所有样本的平均数再除以标准差。

需要注意的是,最后在进行预测的时候,需要对预测的x做相应变化。


正规方程 normal Equations

其实这个才是正常情况下首先应该想到的方法,

之前也写过,X*θ=y

稍微进行下变换,就可以了

左乘X-1,不就得到θ了吗,可是X不一定是方阵,所以先变成方阵再说,左乘X的转置。

思路就是这样,最后结果是:

这里写图片描述

这个方法在低纬度的时候好用,因为一次到位,但是维度高了之后可能矩阵就算就有一丢丢麻烦了,利弊我也说不清,刚入门,先学着再说。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21922801/article/details/79944880

机器学习-线性回归-正规方程

1. 正规方程前面几篇文章里面我们介绍了求解线性回归模型第一个算法 梯度下降算法,梯度下降算法最核心的是找到一个学习速率α,通过不断的迭代最终找到θ0 ... θn, 使得J(θ)值最小。今天我们要介...
  • cgl1079743846
  • cgl1079743846
  • 2016-08-10 00:14:30
  • 1214

机器学习(四)正规方程求解线性回归问题、正规方法与梯度法的优劣

除了梯度向量法,求解最小J(θ)也是可行的,但是偏微分方程太过复杂。 经数学证明,运用线性代数的公式,直接求解代价函数J(θ)最小时,特征向量θ的取值。 公式为: 正规方程方法与梯度向下方...
  • lonelyrains
  • lonelyrains
  • 2015-10-07 15:19:04
  • 2820

机器学习入门(12)--线性回归之正规方程

 申明:此文章内容来自于 Doctor AndrewNG的视频,经过编辑而成 到目前为止 我们一直在使用的线性回归的算法 是梯度下降法。 就是说为了最小化代价函数 J(θ) ,我们使用...
  • hutao1101175783
  • hutao1101175783
  • 2016-12-15 20:13:10
  • 742

机器学习(七)线性回归、正规方程、逻辑回归的正规化

问题:过分拟合 解决方法:为代价函数引入新的参数项 1)线性回归        代价函数       梯度 2)正规方程       方程 3)逻辑回归       代价函数       梯度...
  • lonelyrains
  • lonelyrains
  • 2015-10-19 10:14:53
  • 2041

机器学习算法入门之(一) 梯度下降法实现线性回归

文章的背景取自An Introduction to Gradient Descent and Linear Regression,本文想在该文章的基础上,完整地描述线性回归算法。部分数据和图片取自该文...
  • Titan0427
  • Titan0427
  • 2015-12-24 12:32:13
  • 55241

机器学习之正规方程法

简介   本篇继续进行机器学习,主要是使用opencv,用c语言实现机器学习之一元线性回归、正规方程法。 关于这部分的原理,可以参考:1、https://www.coursera.org/learn...
  • u011630458
  • u011630458
  • 2015-07-09 21:04:55
  • 2097

机器学习——线性回归中正规方程组的推导

对于某些线性回归问题,正规方程方法是更好的解决方案,这种方法是对(代价函数)求的导数并使其为0,它能够不需要迭代直接求出。如下: 本文将涉及矩阵的求导,以下先对矩阵求导做出介绍。 首先定义表示m×...
  • weixin_39449570
  • weixin_39449570
  • 2017-11-22 14:20:48
  • 328

机器学习_线性回归,梯度下降算法与正规方程

个人对这方面的理解,文字纯手打,图片来自于coursera的课件 1.线性回归的定义:给出若干的训练集(训练集中x(j)ix_i^{(j)}表示样本j中第i个项),然后拟合为一条直线,使得cost最...
  • matrix5267
  • matrix5267
  • 2016-12-20 21:08:32
  • 533

机器学习--吴恩达(线性回归,梯度下降,正规方程法)

本节课是对监督学习的讲解,ng以自动驾驶为例,告诉我们汽车对方向的预测是连续值,故而是回归问题。 什么是回归问题?(regression) 确定两种或两种以上变量相互依赖的定量关系的一种统计分...
  • wait_ButterFly
  • wait_ButterFly
  • 2018-01-16 16:56:42
  • 212

机器学习_正规方程(最小二乘法)的推导

机器学习中正规方程的推导,一共两种推导方式
  • Perfect_Accepted
  • Perfect_Accepted
  • 2017-10-29 10:42:14
  • 855
收藏助手
不良信息举报
您举报文章:机器学习(一)——线性回归的梯度下降算法和正规方程法
举报原因:
原因补充:

(最多只允许输入30个字)