在介绍逻辑回归之前,先来看一个例子:
如下图所示,横坐标表示肿瘤大小,纵坐标表示是否为恶性,
给定8个数据,如图中×所示,求预测函数!
根据之前总结的线性回归方法,可得到下图中粉色直线,
有了之后,则可确定一个阈值0.5进行预测:
如果 ,预测“y=1”
如果,预测“y=0”
也即,将Malignant=0.5的点(上图粉色线上的粗点)投影到Tumor Size轴,
投影后的点左边预测为y=0,右边预测为y=1,则能够很好地进行分类。
但是,如果数据集如下图所示呢?
这种情况下,假设线性回归预测为蓝线,那么由0.5的boundary得到的线性方程中,不能很好地进行分类。
因为不满足:
如果 ,预测“y=1”
如果,预测“y=0”
这时,我们引入Logistic Regression Model:
上图中函数就是Sigmoid function或Logistic function,定义为
由下列公式可知,给定了数据x和参数θ,y=0和y=1的概率和为1
Decision boundary
所谓Decision Boundary就是能够将所有数据点进行很好地分类的边界。
如下图所示,假设形如的hypothesis参数
, 则有
如果,预测y=1
如果,预测y=0
刚好能够将图中所示数据集进行很好地分类
cost function 和梯度下降
该部分讲述如何实现简化的logistic regression系统中的梯度下降。
假设我们的数据点中y只会取0和1, 对于一个logistic regression model系统,有
那么cost function 定义如下:
由于y只有0,1两种取值,那么就可以写成
逻辑回归就是通过梯度下降方法,求出Cost function 最小时
的值,将
带入
即得到了预测函数
在线性回归中我们已经讲了如何应用Gradient Descent, 也就是下图Repeat中的部分,将θ中所有维同时进行更新,而J(θ)的导数可以由下面的式子求得,结果如下图手写所示:
现在将其带入Repeat中:
这时我们惊奇的发现,它和线性回归中我们得到的公式是一样的~
也就是说,下图中所示,不管h(x)的表达式是线性的还是logistic regression model, 都能得到如下的参数更新过程。
以上只是考虑两类的分类,如果有很多类型,该怎么分类呢?
所谓one-vs-all method就是将二分类的方法应用到多类分类中。
比如我想分成K类,那么就将其中一类作为positive,另(k-1)合起来作为negative,这样进行K个的参数优化,每次得到的一个
是指给定θ和x,它属于positive的类的概率。
按照上面这种方法,给定一个输入向量x,获得最大的类就是x所分到的类。