线性回归,逻辑回归,梯度下降学习小结


线性回归

简单来说线性回归就是寻找一条能够和数据拟合的直线,像这样:
这里写图片描述
(这是我上一篇博客中用到的图,顺手拿来用了^o^,数据都是瞎编的,用python的polyfit()函数拟合的)
很明显可以看出来有一些数据并不在我们拟合的这条直线上,说明我们拟合的直线还是有误差的
假定我们拟合的直线为:
一元的时候:

h θ ( x ) = θ 1 x 1 + θ 0

多元的时候:
h θ ( x 1 , x 2 , , x n ) = θ n x n + + θ 2 x 2 + θ 1 x 1 + θ 0

我们如果用 矩阵表示的话就更加方便了:
h θ ( x ) = θ n x n + + θ 2 x 2 + θ 1 x 1 + θ 0   = [ θ 0 , θ 1 θ n ] [ x 1 x 2 x n ]   = θ T X

但是我们拟合的直线和数据间依然有误差,即有的点和直线有一段距离,我们想要数据拟合的好也就意味着两者之间的距离要达到最小值,而 均方误差就是我们所谓的 损失函数:
一元的时候:
J ( θ 1 , θ 0 ) = 1 2 m i = 0 m ( h θ ( x i ) y i ) 2
注意:前面加上1/2只是为了方便求导,没有什么数学意义
多元的时候:( 用矩阵表示
J ( θ ) = 1 2 ( X θ Y ) T ( X θ Y )

要求最小值可以用 最小二乘法梯度下降

最小二乘法

思路:
(1)求函数的导数
(2)令导数为零
(3)取得最小值
此时:

θ = ( X T X ) 1 X T Y

注意:这里是用矩阵表示的,计算的时候不要把两边消掉了(=_=)

梯度下降法

思路:
(1)选一个点
(2)求梯度
(3)向梯度相反的方向移动 (移动的步长为学习率 α
(4)重复步骤2,3
(5)取得最小值
对于每一次:

θ = θ α X T ( X θ Y )

注意:梯度下降法也适用于非线性的情况

逻辑回归

并不是所有时候数据都是线性关系,也可以是非线性关系,这个时候就用到逻辑回归了,逻辑回归是基于sigmoid函数,也叫s函数,s函数的值域在0-1之间
这里写图片描述

S ( z ) = 1 1 + e z

所以 逻辑回归的基本方程为:
h θ ( x ) = 1 1 + e X θ

逻辑回归的损失函数是用 最大似然法求得:
思路:
(1)求似然函数
(2)将似然函数最大化
(3)对似然函数取反
似然函数的定义看这里似然函数
最后求得损失函数为:
J ( θ ) = i = 1 m ( y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 y ( i ) ) l o g ( 1 h θ ( x ( i ) ) ) )

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
China Scenic Area
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告