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

线性回归

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

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

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

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

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

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

最小二乘法

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

θ=(XTX)1XTY θ = ( X T X ) − 1 X T Y

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

梯度下降法

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

θ=θαXT(XθY) θ = θ − α X T ( X θ − Y )

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

逻辑回归

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

S(z)=11+ez S ( z ) = 1 1 + e − z

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

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

你可能感兴趣的:(机器学习)