前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门 9-1 什么是逻辑回归

机器学习入门 9-1 什么是逻辑回归

作者头像
触摸壹缕阳光
发布2020-02-17 15:51:06
6080
发布2020-02-17 15:51:06
举报
文章被收录于专栏:AI机器学习与深度学习算法

前言

本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍什么是逻辑回归算法以及将实数域范围映射到[0, 1]区间概率值的Sigmoid函数。

a

什 么 是 逻 辑 回 归

这一章介绍一个全新的机器学习算法~逻辑回归算法。

▲2017年Kaggle统计

上图是著名的人工智能和数据科学相关的竞赛网站Kaggle在2017年统计的各类机器学习算法在实际工作中使用情况。在这个统计中逻辑回归算法在各个领域使用非常普遍(除了军事和安全领域),比第二名的决策树算法高出了20个百分点。可见逻辑回归算法本身虽然并不难,但是却非常的有用,以后要对逻辑回归算法多多的关注。

这个从侧面说明了,对于一个机器学习算法来说,并不见得算法越复杂越好,要根据实际的使用场景来选择最合适的算法。前面也提到过免费的午餐定理(No Free Lunch Theorem),并没有某一种算法比另外一种算法要好,任何模型在所有问题上的性能都是相同的(核心前提:每种问题出现的概率是均等的,每个模型用于解决所有问题时,在其平均意义上的性能是一样的)。

通过统计结果也可以看到现在大红大紫的深度学习算法,比如Neural Network(神经网络)、CNNs(卷积神经网络)和RNNs(循环神经网络),它们的排名相对比较靠后,这是由于深度学习属于表示学习的模型,其特征通过样本数据集在训练任务的时候自动学习,因此训练深度学习算法对数据集的要求非常高,需要大量高质量的数据集,与此同时,处理大的数据集对计算能力的要求也会变得非常高。在这种情况下,尤其已有的数据量并不是特别大的时候,这些所谓简单的机器学习算法使用好,也会非常有效。在这个课程中,深度学习算法以及贝叶斯相关的算法不会涉及,对于深度学习算法来说是一个庞大的体系,而对于贝叶斯相关算法而言,背后涉及非常复杂的数学运算。

那什么是逻辑回归算法呢?

▲逻辑回归解决分类问题

逻辑回归听名字好像是一个回归算法,但是实际上逻辑回归算法解决的是分类问题。刚接触的时候肯定会很奇怪,回归算法是怎样解决分类问题的?实际上逻辑回归的原理是将样本特征x与事件A发生的概率联系起来,此时输出预测的是对于这个样本特征x来说事件A发生的概率是多少(即概率p(A | x)),由于概率值是一个属于[0, 1]范围的标量值,所以可以把逻辑回归算法称为一个回归问题。

机器学习算法的本质其实就是求出一个函数f,如果有一个样本x经过这个f函数运算之后会得到一个预测值,我们通常记为y。

▲逻辑回归只能解决二分类问题

无论是之前介绍的线性回归还是多项式回归,这个y值实际上就是我们关心的指标。比如对于波士顿房产价格预测来说,这个y值就是房价;对于学生成绩预测来说,这个y值就是成绩。但是在逻辑回归中,得到的y值本质上是一个概率值(用p来表示),也就是说对于逻辑回归来说,得到一个f函数,此时来了一个样本x,将这个x放进f函数中计算得到的一个概率值p,之后根据这个概率值p进行分类。

  1. 如果概率值p大于等于0.5,表示在输入样本x情况下某个事件A有50%以上的概率发生,此时将y值设置为1;
  2. 如果概率值p小于等于0.5,表示在输入样本x情况下某个事件A不足50%的概率发生,事件1 - p(A)(A bar)发生的概率大,此时将y值设置为0;

对于事件A的含义,在实际问题中可能会有不同的意思。比如对于预测病人有无恶性肿瘤来说,事件A表示恶性肿瘤患者,事件A bar表示良性肿瘤患者,也就是说1代表恶性肿瘤患者,0代表良性肿瘤患者;而对于银行评判客户信用风险的来说,事件A表示银行发给客户信用卡有风险,事件A bar表示银行发给客户信用卡没有风险,也就是1代表银行发给客户信用卡有风险,0代表银行发给客户信用卡没有风险……

总之,预测得到这个概率值之后,多进行一步判断操作,得到的0,1结果就是最终的分类结果。因此逻辑回归既可以看作是一个回归算法,也可以看作是一个分类算法。如果我们不进行最后根据p值进行分类操作的话,那么逻辑回归是一个只能输出[0, 1]范围概率值的回归算法。

我们计算出的是通过样本特征来拟合计算出一个事件发生的概率。比如给一个病人信息,计算他患有恶性肿瘤的概率;给一个客户信息,计算出银行发给信用卡产生风险的概率,最后对这些概率值进一步进行分类操作。通常情况下,使用逻辑回归算法解决分类问题,通过上面介绍的分类例子也可以看出,逻辑回归算法本身只能解决二分类问题。如果对于多分类的问题,逻辑回归算法本身是不支持的,当然我们可以使用一些其他的技巧进行改进,使得逻辑回归算法能够解决多分类问题,关于这个话题,在这一章的最后还会介绍。前面提到过使用kNN算法解决分类问题,kNN算法与逻辑回归算法非常不同的地方就在于对于kNN算法来说,它是天生就可以解决多分类问题的。

b

Sigmoid 函 数

对于前几章学习的线性回归算法,来了一个包含若干特征的样本x,经过训练得到f(x),计算得到对应这些特征的y值。在线性回归中,f(x)函数其实就是θT乘以xb。在这里需要注意,对于线性回归来说,由于存在一个θ0,所以样本x对应的要使用xb(xb为每一个样本特征前面加一个值为1的元素),这个1和θ0相乘得到的是截距,这些在学习线性回归算法的时候都提到过。不论如何最终得到y的值域在负无穷到正无穷之间。换句话说,通过线性回归这种方式,可以求出得到任意的值。那么使用什么样的方式才能将其表示为事件发生的概率呢?

▲σ函数将值域限定到[0, 1]之间

根据概率的公理化定义可知,概率值只能在[0, 1]之间取值。如果我们直接使用线性回归的方式,因为线性回归的输出范围包含[0, 1],还是能够找到一组θ值,这组θ和和样本特征x相乘计算得到的y值来表达事件发生的概率。当然这仅仅是从应用的角度来讲,可以这样做,但是这样做不够好,就是因为概率有值域的限制,而直接使用这种线性回归方式得到的结果没有值域的限制,无论是最终拟合的直线,还是使用多项式回归拟合的曲线,此时计算得到的可信度会非常差。

解决其实非常简单,我们同样使用线性回归这种方式,依然找到一系列的θ值,这个θ值和xb进行点乘操作,只不过此时我们将这个结果作为一个特征值再传给σ函数,经过σ函数转换成一个值域在[0, 1]之间的概率值。

接下来就来看看对于逻辑回归非常关键的σ函数。

▲Sigmoid函数

通常我们会使用一个名为Sigmoid的函数,Sigmoid函数的表达式如上图所示。乍得一看会觉得这个函数表达式非常复杂,接下来尝试绘制一下这个函数,感性的看一下这个函数是什么样子的,进而理解一下为什么Sigmoid函数可以方便的将全体实数范围的值转换成[0, 1]之间的概率值。

虽然表达式看起来非常复杂,但是函数对应的图形非常简单。

接下来就仔细来分析一下这个曲线的性质。

▲Sigmoid函数

这根曲线最左端逐渐趋近于0,但是实际上是达不到0的;而最右端逐渐趋近于1,但是实际上是达不到1的。换句话说,Sigmoid函数的值域在(0, 1)之间(不包括0和1),这样就可以非常方便的将任意的实数值映射到(0, 1)作为概率值。上面是通过函数图像简单的分析,接下来通过函数表达式更加理性的分析一下。

  1. 当t取负无穷的时候,e的负t次方是一个非常大的值,也就是说1除上1加上一个非常大的值,计算得到的结果无穷分之一,最终计算的结果趋近于0;
  2. 当t取正无穷的时候,e的负t次方就无限逼近于0,此时,1除上1加上一个无限小近乎为0的数,最终计算的结果趋近于1;

因此Sigmoid函数的值域在(0, 1)之间。

下面将函数图像的坐标轴画出来。

▲Sigmoid函数

对于Sigmoid函数,当传进入的参数t大于0的时候,得到的概率值p是大于0.5的;当传进去参数t小于0的时候,得到的概率值p是小于0.5的,此时分界点就是t = 0的位置,如果把t = 0代入Sigmoid表达式中,即σ(0) = 1/2。对于Sigmoid函数来说:

  1. 传进入的参数t大于0的时候:
    1. 当t越接近0,函数计算的结果越接近0.5;
    2. 当t越远离0,得到的结果就会越大,大到一定程度会非常接近于1;
  2. 传进去的参数t小于0的时候:
    1. 当t越接近0,函数计算的结果越接近0.5;
    2. 当t越远离0,得到的结果就会越小,小到一定程度会非常接近于0;

c

逻 辑 回 归

介绍了什么是逻辑回归以及将实数范围的值压缩到(0, 1)之间概率值的SIgmoid函数。接下来具体的看一下逻辑回归。

▲逻辑回归表达式

将Sigmoid函数中的t换成线性回归表达式θT与xb点乘,用运算的结果作为事件发生的概率。当概率值大于0.5的时候,相应的分类取1;当概率值小于0.5的时候,相应的分类结果取0。

为了在整体上理解逻辑回归算法。举一个实际的例子,比如有一个病人数据,需要预测病人患有良性肿瘤还是恶性肿瘤,首先通过训练得到一组θ值,这样每来一组新的病人数据,在这组数据前面添加一个值为1的元素(需要计算截距),之后和训练求出来的θ做点乘,点乘的结果会得到一个标量值,把得到的标量值再放到Sigmoid函数中,得到的结果就是这个病人患有恶性肿瘤的概率,如果这个概率值大于0.5的话,预测这个病人很有可能是一名恶性肿瘤的患者;如果这个概率值小于等于0.5的话,预测这个病人很有可能是一名良性肿瘤患者。

现在理解了逻辑回归的算法,剩下的问题就是对于给定的样本数据集X和分类标签y,如何找到一组参数θ,可以最大程度的获得样本数据集X对应的分类输出y。这是在训练过程中要做的主要任务,也就是拟合训练样本。首先需要求出一组相应的θ值,使得通过这种方式在训练数据集上有非常好的预测结果,也就是所谓的拟合样本数据集。对于拟合训练数据集逻辑回归远远没有线性回归那么直观,因为线性回归可以非常容易的用预测结果减去真实的y值的平方和,也就是所谓的MSE,用这样的标准来判断拟合的好坏。但是对于逻辑回归来说,由于它是一个分类问题,不能使用线性回归的标准来判断拟合的好坏,在下一小节将会具体的介绍这个问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档