个人机器学习总结之逻辑回归

1. 逻辑回归

1.1 算法原理

逻辑回归是在线性的基础上,利用类似线性回归的思想,得到一条直线 ,将数据划分为两类(每次都只能是两类)。

但它不能单纯像线性回归一样,简单求损失函数最小来得到这条直线,因为下面这两种典型的情况可以看出直接拟合得到的直线可能会导致相当一些数据分类错误。

            

它区别于线性回归在于以下两点:

(1)它做的是分类问题,所以训练数据里会带有类别标签yi,如1或者0。

(2)它引入了sigmoid函数:

 

sigmoid函数带有的特点有:

1)它是将函数值进行压缩,当 大于0时,sigmoid函数值将大于0.5, 值越大,越趋近于1。反之,当其小于0时,sigmoid函数值将小于0.5。

而正好我们是要做二分类问题,判断它属于哪一类可以看它属于哪一类的概率大一些,或者说看属于哪一类的概率大于0.5,与g(z)的值相吻合,所以我们可以用g(z)来代表属于该类别的概率,如果大于0.5,则判为此类。

而且如果点离直线 越远时,说明此类分类特性越明显,而此时得到的数值将越趋近于正无穷或者负无穷,代入g(z)后得到的数值越趋近于1,表明其属于此类的概率越大,说明使用g(z)代表分类的概率非常适合。

2)sigmoid函数的运算特性有:

 

这可以方便我们得到g(z),即分类概率P(y=1|x)与θTX之间的关系,便于我们后面得到极大似然函数 。

 

有了上式,我们显然可以看到,如果θ已知,就可以做分类预测了。但是,我们此时是需要通过训练来得到θ,训练数据里是带有分类标签的。

下面用到极大似然估计求解θ,认为我们得到的数据,就是概率最大的情况。由于数据之间认为相互独立,所以进行连乘可以得到得到该数据的概率,即似然函数。

 

要求上式取得极大值,说明要对其进行求导为0,得到的θ即为所求。

但是,上式对计算机而言,不好求,毕竟计算机喜欢的是迭代求解,所以,可以利用梯度下降法,得到一个θ使得 最大,即为其负值最小。

可采用BGD或者SGD,这与线性回归中的内容一致,不再作介绍。

也可采用牛顿法,即采用二阶泰勒展开公式来得到θ的变化量,如下 

当要求f(x)最大值时,应对上式进行求导等于0,可得下式:

 

利用上述性质,放到 上,在θj处进行展开,可以得到

 

其中:

 

θ求解完毕。逻辑回归所要求的那条分类直线就得到了。

1.2 算法流程

(1)利用现有数据,即训练集数据 ,得到似然函数:

 

(2)设定初始θ值,如(0,0,0),或者其它,该值的设定一定程度上会影响是否取到最优值

(3)迭代求解得到最终θ值,设定改变量小于某个阈值或者 在θ更新后变大了,即停止迭代,迭代公式如下,具体公式见2.1:

 

(4)利用求解得到的θ,加上sigmoid函数,可以对后面的数据进行分类预测。

 

1.3 注意事项

(1)逻辑回归名字中带回归,但却是做的是分类的问题,但纠其本质,也是通过概率计算的逻辑,得到一个回归线的方程;

(2)在利用sigmoid函数的时候,就已经决定了逻辑回归这个算法只能作二分类,因为它是令g(z)=P(y=1|x),而1- g(z)=P(y=0|x);

(3)逻辑回归做多分类的话是进行多次二分类操作,达到多分类的目的,始终原理上是只能做二分类问题。

猜你喜欢

转载自www.cnblogs.com/wenghsimu/p/11234978.html