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

线性回归

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

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

多元的时候:
hθ(x1,x2,,xn)=θnxn++θ2x2+θ1x1+θ0

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

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

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

最小二乘法

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

θ=(XTX)1XTY

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

梯度下降法

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

θ=θαXT(XθY)

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

逻辑回归

并不是所有时候数据都是线性关系,也可以是非线性关系,这个时候就用到逻辑回归了,逻辑回归是基于sigmoid函数,也叫s函数,s函数的值域在0-1之间
线性回归,逻辑回归,梯度下降学习小结

S(z)=11+ez

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

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