逻辑回归(一):0还是1?

分类

对于人来说,分类是一种很自然的能力。看到猫的照片,我们知道是猫,看到狗的照片,我们知道是狗;根据邮件的内容我们也能很快看出这是不是一封广告/诈骗邮件。既然人能简单地完成这种任务,那我们能不能让计算机也做到呢?显然,当今的社会生活已经给了我们答案。我们今天就介绍一种最为简单的分类思想,逻辑回归(Logistic Regression)。

任务

首先,从简单的二分类讲起。

  • 邮件:是否为诈骗邮件
  • 肿瘤:良性还是恶性
  • 照片:猫还是狗

类似这些的分类任务,我们称之为二分类(Binary Classification)。事实上这种二分类问题都可以抽象成对0和1的分类。整个模型简图如下,输入数据,通过一个函数,输出一个类别(0或者1)。
在这里插入图片描述

思路和方法

我们的思考方式一般都是从低维慢慢拓展至高维,所以我们这里就假设一个物体的特征可以用一个数来表示。比如我们假设根据肿瘤的大小就可以判断肿瘤是良性还是恶性,并且假设大的肿瘤更可能是恶性肿瘤。用0表示良性肿瘤,用1表示恶性肿瘤。
在这里插入图片描述

如上图所示,显然根据我们的设定,Size在1-4的 肿瘤都算是良性的肿瘤,Size大于等于5的肿瘤都是恶性的肿瘤。那么,根据这些数据,我们要怎么样才可以得到一个通用模型,使得输入一个肿瘤的大小,就可以判断它是良性的还是恶性的呢?

用线性回归?

按照这个思路,很容易联想到其实这也很像一个预测的过程,那么用我们之前介绍过的线性回归(线性回归:机器学习的"Hello, World")可不可以做到呢?

不妨试他一试,上图中的线性拟合结果大致可以表示成下图:
在这里插入图片描述
那么随便输入一个肿瘤的大小,我们就会得到一个输出 h θ ( x ) h_{\theta}(x) hθ(x),但是这个值的范围并不只有0和1,这种情况要怎么办呢?我们可以取0和1的中点0.5作为一个阈值,根据以下规则调整输出:

  • 如果 h θ ( x ) ≥ 0.5 h_{\theta}(x)\geq0.5 hθ(x)0.5,认为 " y = 1 " "y=1" "y=1"
  • 如果 h θ ( x ) < 0.5 h_{\theta}(x)<0.5 hθ(x)<0.5,认为 " y = 0 " "y=0" "y=0"

这样看起来貌似挺合理的,但是如果我们再加一个比较偏远的数据点呢?这个时候我们的误差就会非常大了,所以显然这并不是一个特别好的选择。

逻辑回归(Logistic Regression)

根据上面的分析可以看出,如果使用线性回归,输出的值是可以小于0或者大于1的。事实上对于一个分类程序来说,输出远小于0和远大于1都是非常奇怪的。逻辑回归的好处之一就是得到的输出是一个0到1的数。即:
0 ≤ h θ ( x ) ≤ 1 0\leq h_{\theta}(x)\leq1 0hθ(x)1
当我们在用线性回归的时候,我们提出的假设是:
h θ ( x ) = θ T X h_{\theta}(x) = \theta^TX hθ(x)=θTX
这个式子的意义就是,每一个输入的特征都对结果有一定的贡献,这个贡献的大小就是对应的权重 θ i \theta_i θi。为了让输出结果为在0到1之间,同时又要体现各个特征的贡献,那么聪明的人们就想到用以下形式来作为输出函数:
h θ ( x ) = g ( θ T X ) g ( z ) = 1 1 + e − z h_{\theta}(x) = g(\theta^TX)\\ g(z) = \frac{1}{1+e^{-z}} hθ(x)=g(θTX)g(z)=1+ez1
函数 g ( z ) g(z) g(z)被称为 S i g m o i d Sigmoid Sigmoid函数,图像如下图所示:
在这里插入图片描述
显然,这个函数的值最终都是在区间 ( 0 , 1 ) (0,1) (0,1)上的。也就是说这个函数实现了所有实数到区间 ( 0 , 1 ) (0,1) (0,1)上的映射。我们再联想一下,这个一定在区间 ( 0 , 1 ) (0,1) (0,1)上的输出值,会有什么意义呢?当然可以解释成靠近0或1的程度,而这种程度,很直觉地,非常类似于概率。也就是说,我们得到的 h θ ( x ) h_{\theta}(x) hθ(x),可以认为是分类结果为1的概率。用数学形式表示如下:
h θ ( x ) = P { y = 1 ∣ x ; θ } h_{\theta}(x) = P\{y=1|x; \theta\} hθ(x)=P{ y=1x;θ}
好的,那么我们已经知道了使用的函数的形式及其意义,接下来我们介绍一下决策边界(Decision Boundary)

决策边界(Decision Boundary)

再把 S i g m o i d Sigmoid Sigmoid函数搬出来,仍记得它长成这样:
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1
在这里插入图片描述
显然,如果我们把 z = 0 z = 0 z=0代入函数式中,得到的函数值为0.5,也就是说

  • z ≥ 0 :   g ( z ) ≥ 0.5 z\geq0:\ g(z)\geq0.5 z0: g(z)0.5
  • z < 0 :
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值