上手机器学习系列-第3篇(上)-聊聊logistic回归

在这里插入图片描述

前言

本系列关注于动手学习实践机器学习知识,往期文章可到公众号首页点击查看历史文章。

本期我们来聊聊logistic回归,该方法简单优雅且兼具实用性,当前在企业界实际工作中仍有大量使用,因此对于初学者是一个比较好的上手练习。

logistic回归是咋来的

首先要说明一点,“逻辑回归” 这个翻译是非常差劲的一个翻译词汇(没办法,历史上有太多这种先入为主、劣币驱逐良币的案例了),从后面的讨论我们就会得知,该方法既不涉及逻辑学,也不是通常的回归方法,它其实是一种分类模型。周志华老师的《机器学习》一书就将该方法称为“对数基率回归”。

绝大多数机器学习图书在讲解该模型时上来就讲公式,而不讲思考过程。这一点是挺烦人的。笔者还是更喜欢遇到一个新事物多想想前人是怎么创造出来这个东西的,这里面的思考逻辑应该是什么。

为了尽量讲清楚该方法,我们先来看什么是线性模型。

线性模型是用线性判别式(决策平面为N维空间中的一个超平面)来进行分类的模型。用大白话来讲,可以想象一个高维空间中,飞过一个超级大的平面(这就是所谓的“超平面”),把空间分隔成了两部分,如此就把数据点分到了不同的类别中。如下图所示(只是需要将二维空间拓展到高维空间即可):
在这里插入图片描述
说到这里我们先GET到一个信息:所谓“线性模型”,是指其判别函数是一个超平面。而判别函数就是一个f(x), 它可以把x映射到K个类别中。

对于二分类问题来讲,很自然的一个想法就是超平面一侧是类别C1, 另一侧即是类别C2。在三维世界里,如果该平面方程式为AX1+BX2+CX3+D = 0,则根据高中时代学过的几何学,其平面上方的空间可以表示为AX1+BX2+CX3+D > 0, 另一侧为AX1+BX2+CX3+D < 0。对于分类问题,将样本数据的坐标代入即可求得分类,这是多么优雅的一种方法呀(事实上,感知机方法正是建立在此基础之上,本文我们不展开讨论)。这里的AX1+BX2+CX3+D = 0,也可以叫做决策平面、判别函数,不同的学习材料中会有差别的叫法。

下面通过两种不同的角度来思考logistic回归可以怎么得出来。

一种角度是硬着头皮去创造。没错,还记得中学数学老师讲过的吗,数学思维方法之一就是空间想象能力哦!对于分类问题来说,我们无非是想找到一个决策函数f(x),使得对于不同的样本点x,函数f(x)都可以快速映射到其对应的分类上。那么怎样的函数形态会比较优美呢?我们可以参考下面的图A,对于X>0,都分类为+1;X<0,都分类为-1。但该函数是一个分段函数,这种在数学上是不受待见的,因为它不连续。这里是不是回忆起数学老师们经常挂在嘴边的“这个函数是连续的、可导的、balabala”。 那咱们就把它变成连续的,同时还基本保持住这种形态。没错,就是下图B这样了。对于该图形来说,虽然有一小段曲线介于(-1,1)之间,但这一段过渡很快,对于大多数X>0而言,仍有Y无限接近1,X<0,Y无限接近-1的良好特性。但是,这个函数还是有点哪里不太对劲。大家这样想,我们在说给定一个样本x,判断它是类别C的时候,是不是有那么一点概率的味道,没错,有一大类方法就是通过求解条件概率P(C|X)来找到样本X所属的类别C。而一个概率值是介于[0, 1]之间的。那我们把这个函数曲线平移一下呗,只要保持其形态就好了,于是我们就得到了下图C。现在,当X>0时,Y>0.5, 且快速接近于1,而X<0时,y<0.5,且快速接近于0。再联想到上面我们讨论过的超平面对于空间的分隔,是不是要发出一声“哦,这样就可以把样本正好分成两类了嘛”。 注意此时得到的函数形态就是一种logistic分布,这也是该模型中logistic的由来呀,跟逻辑学半毛钱关系都没有。
(img)

回到上面的概率化思想,可推出二分类场景下的条件概率分别如下:
(img)

再换一种角度。 有时候我们是真想不到什么样现成的函数形态比较好啊,那有没有别的出路呢?让我们再用上点关联化思维。还记得我们上面讨论的超平面吗?这个分隔的边界如此之清晰易懂,那我们就往这上面去凑呗。

现在我们就来找这个决策的超平面。回到二分类的场景,我们把归类为其中一类的概率记为P,则另一类为1-P。在数学上有一个指标叫odds(中文叫基率),记为P/(1-P)。它表示的就是分类A的概率/分类B的概率,其值域为0到正无穷。现在还引不出一个超平面,因为平面是无限延伸的,其值域为负无穷到正无穷,对吧?那怎么办?做个变换吧,想办法把这个基率变到负无穷到正无穷。那谁能把自变量为0到正无穷,映射到负无穷到正无穷呢?是的,有很多啊!但是,还记得高时学过的log函数(如下图所示)吗?
(img)

所以我们可以做一个log变换嘛!这里就得到:
(img)
啥?这不正是logistic分布函数吗?!

至此,我们用两种思维方式得到了logistic回归的函数形态。希望这些讨论有助于大家更形象地理解该模型。
在下篇中,我们将使用Python scikit-learn来实践一个二分类任务,并走读该算法包的源代码,敬请关注。

欢迎关注本人公众号:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值