机器学习从入门到XX(三):分类器和逻辑回归

分类问题

问题的一种实现方式是,使用,对于所有的预测结果,以某个值作为分界。比如小于0.5意味着0,大于0.5意味着1。然而,这种方法不够好,因为分类问题并不能用线性方程表示。

逻辑回归

假设函数

为了推导分类问题的假设函数。我们可以先忽略y其实是离散值这个事实,尝试使用线性回归模型来预测y。所不同的是,我们试图将y限制在如下范围:

决策边界

观察上面公式,不难发现

是一条将y分割成两部分的线,一边是0,一边是1。决策边界由假设函数决定。

例如:

如上图,由

再比如:

观察上图的假设函数,不难发现这是个半径为1的圆形组成的决策边界,圆内部的(X1,X2)将使得y=0,反之,圆外部的(x1,x2)将使得y=1。

因此,假设函数形成了决策边界,不同的输入被假设函数落入不同的区域,从而得到分类的结果。所以,分类问题也是回归问题,只不过回归的结果是一组离散的值,并且我们采用上面的logistic函数来实现,因此,这种回归方法称为逻辑回归(logistic regression)。

代价函数

与线性回归一样,为了得到最优的假设函数,我需要先定义代价函数来衡量分类器的精度。但是我们不能直接使用线性回归中的代价函数,因为这会产生很多局部最优解,从而难以得到全局最优解,我们称这种函数为non-convex函数(convex这个术语在中文翻译中可能歧义,所以这里不做翻译)。下图展示了non-convex和convex的区别:

针对逻辑回归问题,定义如下的代价函数:

通过这样代价函数设计,我们可以保证代价函数是函数。

逻辑回归梯度的下降

上一节,我们定义了逻辑回归的代价函数,但是这个函数被分成了两部分:

为了方便进行算法设计,需要将两部分合二为一:

其他算法

,,算法可以用来代替梯度下降算法,因为这些算法在寻找最优的过程中往往更高效和精确。我们无需自己编写这些算法实现,而是直接使用现成的库,因为这些库在实现上已经做过高度优化和大量测试了。octave也支持这些算法。

从中我们发现,在使用时,我们无需手动设定学习速率参数。

下面是一个例子:

多级分类

上面我们讨论的分类问题最终的预测结果非0即1,也就是说,只有两种分类可能。在许多实际的问题中,分类结果有多种可能。例如:

将邮件分为工作、朋友、家庭等类

将天气分为晴天、阴天、雨天、下雪天

由于,我们可以把问题分割成个二值分类问题,每个二值分类问题计算当前预测的y属于其中一个分类的概率。

这种方式也叫,例如下面一个3级分类问题:

首先可以创建一个二值分类器,计算样本为三角形和非三角形的概率;然后创建一个二值分类器,计算样本为长方形和非长方形的概率;然后创建一个二值分类器,计算样本为叉和非叉的概率;最后将这三个分类其中概率最大的作为结果。每次我们考察其中一个分类,跟其他分类的概率,从而把多级问题转化为多个二值化分类器。

夏洛克 AIOps

Make Data Think

人工智能 | 机器学习 | IT运维

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180330G15OGW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券