学习Logistic Regression的笔记与理解
1.首先从结果往前来看下how logistic regression make predictions。
设我们某个测试数据为X(x0,x1,x2···xn),Θ(θ0,θ1,θ2,···θn)为我们的学习算法所学到的参数,那么
写成向量的话就变成
Z就是我们得到的结果,但是logistic regression只能处理二值数据,这个Z是一个连续值,它的范围可以很广。为了把这个Z化为二值变量,引人Sigmoid函数
这个函数的图形如下所示,将算得的Z代入上式即可得到一个接近1或者0的值,我们把g(Z)函数得出的值>=0.5的判断为1。
所以最终构造出的预测函数为
这个函数也可以用下式表示,即在给定测试数据X和训练算法所得的系数Θ的条件下,该测试数据位positive(y=1)的概率。
当然相对的,下式为该测试数据位negative(y=0)的概率。
2.训练算法(得到参数Θ)
2.1首先通过一个例子来看下Cost函数:有一组数据(X,Y),其中X是属性,Y是类别属性(连续)。其图像如图1所示,训练算法要得到一个评估函数入图2的绿色直线所示来预测未来的测试数据。
很明显只要使训练数据离该直线的距离最短即可,即图3中的黑色直线之和最短。用数学公式来表示的话就是
其中
所以我们的训练算法就是要找合适的θ0,θ1来使下式最小
上式就称为cost函数,当然cost函数可以有很多种,这个cost函数只是适用于这种情况。
2.2而logistic regression使用的cost函数为
接下来问题就变成了如何求J(Θ)的最小值。求这个J(Θ)可以采用梯度下降法,以有两个参数θ1,θ2为例(多维的也类似),图中的圈代表J(Θ)的值(类似于地理上的等高线)
每次向该点处梯度方向移动α的距离,这样就能在多次计算后就能得到其最小值。迭代的终止条件可以设为达到某个指定的迭代次数或算法达到某个允许的误差范围。用数学公式来表示这个迭代过程就是:
其中表示对每个θj分别求偏导:
由上面的化简可得Θ的更新过程如下:
由这个公式迭代多次最终得到所需参数,完成logistic regression算法的训练过程。
来源:http://blog.sina.com.cn/s/blog_64ecfc2f0101ranp.html