Logistic Regression Algorithm解决分类问题

线性回归算法中,我们看到,在training set中,输入矩阵X与向量y的值都是连续的。所以在二维空间中,我们可以用一条直线去模拟X与y的变化关系,寻找参数向量theta的取值。如根据房屋面积预测房价,根据日期、纬度来预测温度等等,我们称此类问题为回归(Regression)。

而本文,我们开始研究另外一种情况下的机器学习,即y值的变化为不连续的(categorical)。例如,y的取值只有0和1,我们用来表征类似:考试通过与否(pass/fail)、比赛输赢(win/lose)、是否患病(healthy/sick)等问题。这种y的取值只有2种的情形,称为2分类,当然也存在3分类、4分类、多分类的情况,但我们总要从最简单的情况开始。这样X连续变化,y值为categorical的机器学习问题,我们称为分类Classification。

其实很明显,我们不是在寻找X与y的变化关系了,而是在寻找一个决策边界(Decision Boundary),超过这个边界,我们认为取值为1的概率要大一些,反之我们会取0。

我们将Logistic Function定义为如下形式,我们可以看出,在x连续变化时,估计值h(x)始终在0,1之间。当x趋于无穷大时,h(x)=1;h(0)=1/2;x趋于负无穷时,h(x)=0。

 其图形为:

由于Logistic Function的选择,使我们有了求解theta最关键的一步:将h(x)视作一种概率,从而利用最大似然估计(Maximum Likelihood Estimation)求解该问题。我们可以将h(x)的公式看做y=1的概率,则原公式可以写为:

由于y的值只可能取0或1,所以我们根据概率性质可知:

同样的,我们可以将以上两个公式合二为一成为如下形式:

接下来,我们来做参数拟合(Parameter Fitting),极大似然函数为:

对L求log得:

在数理统计中,我们在此对上式求偏导数,然后置零解方程,即可得出令似然函数最大的theta值。而在我们的Logistic Regression Algorithm中,我们需要拿到这个偏导数值(在当前theta值情况下,斜度最陡翘的方向),然后来做梯度上升(从结果上看似乎是梯度下降,但其实在我们定义J的时候加了个负号,将其隐藏了)操作。我们定义Cost Function J为:

对J of theta求导,见手稿:

带入梯度下降算法我们得到,对于每一个theta

若用向量表示,则为:

原文地址:https://www.cnblogs.com/rhyswang/p/6833019.html