分类
在生活中有时需要区分,邮件中是否有脏话,肿瘤是否是良性的等等情况。这一类问题都有一个特点,那就是问题的答案只有两种,要么是要么就不是。也就是其输出的结果y∈{0,1}。在机器学习中一般将1视作积极的情况,0视作消极的情况。而要解决这样的一类问题,就需要用到本章的逻辑回归算法。
假设陈诉
如果我们可以通过这个例子来看看如果我们还是采用线性回归的方式来解决这类分类问题的话会导致什么样的后果。
在这里横轴是肿瘤大小,竖轴是是否为恶性肿瘤(1就是,0就不是)。我们把数据集的点打上去,然后在通过线性拟合的方式将线画出来就是左边的那一条线,我们可以看到这一条直线上值为0.5的点对应到x轴上就是是否为恶性肿瘤的临界大小,就这个数据集而言拟合的还是不错的。但是如果我们在很右边又加上了一个点,我们可以知道这条直线是会向右边偏的,就变成了右边那条直线,这个时候我们可以看到分类效果就并不好了。当然,线性回归还有一个问题就是,其实我们只是希望结果输出0,1但是线性回归可能会输出远大于1或远小于0的结果,这然这个模型变得很诡异。
所以这个时候我们的逻辑回归就该登场了。
从这张图片中可以看出来,我们希望将结果映射到0-1之间,于是我们就将原来线性回归中的theta’ * x再通过sigmoid函数输出来(它的图像就是右下角的那个样子)。于是我们的假设函数就发生了变化。请注意,这个假设函数的输出值是y=1的概率而不是y的值。
决策边界
这里可能就有人问了,为啥加个这个函数他就能做分类了?要想明白为什么,就需要理解这个模型里面的决策边界的问题。
从这张图片里面可以看出来,我们需要对两类数据进行分类,于是我们将假设函数设成右上角那种形式,然后通过了损失函数的迭代最终确定theta = [-3,1,1]。如果我们想要预测y=1,那么就需要假设函数h(x)的输出大于等于0.5,也就是需要sigmoid函数g(x)的输入大于等于0所以我们便得到了-3+x1+x2≥0这样的决策边界(学过线性规划的肯定知道)。于是便很顺利的将我们的样本进行了分类。
通过上面那个分析,可以尝试着怎么推导出这个例子的决策边界。
代价函数
相比于线性回归,我们修改了假设函数。如果还是用原来的代价函数的话会导致两个问题:1.比较复杂。2:会有许多局部最小值,这一点对梯度下降这个方法来说简直是致命的。
我们首先把原来损失函数的在图中画线的部分记为cost(h(x),y),然后我们要想如何设置cost函数解决原来的这些问题。
这张图片的上面便是逻辑回归中的cost函数,为什么要设置为这样可以看一下下面的解释,我在这里就不赘述了。
为了方便表达和求导,我们把cost这个分段函数用一个表达式表示出来,就得到了逻辑回归中的损失函数。
梯度下降
这又是前面几章提到的梯度下降算法在逻辑回归中的使用,有趣的是我们可以看到损失函数对theta求偏导之后的表达形式居然和线性回归是一样的。
多元分类
是不是逻辑回归只能解决二元分类的问题呢?答案是否定的。为了解决多元分类的问题,我们就需要掌握一对多的方法技巧。
例如这里我们需要进行三分类,于是我们可以针对每一个样本训练一个分类器,这样我们就得到了三个分类器(也就是三个假设函数),在预测时,我们把输入数据分别输入到三个分类器中,再看输出值哪个大那这个数据属于哪种类型的概率就越大。