Logistic回归分类算法详解

本节教程我们来讨论另外一种被广泛应用的分类算法— Logistic 回归。在讲解这个概念之前,我们先来聊一个题外话—“Logistic regression”的中文译法。“regression”译作“回归”,并没有什么异议,而“Logistic”的翻译可谓五花八门。有译作“逻辑斯谛”的,这种音译中规中矩,自然不能算错,但不够形象。

更多文献直接将其译作“逻辑”,这种译法可能就有点误导大家了。“逻辑”(logic)本来是一个哲学概念,它注重的是推论和证明,而“Logistic”主要用于机器学习领域的分类。二者几乎无关联,如此翻译,至少违反了“信达雅”中的“信”—不够确切。

可能你要问了,我们是在讨论“机器学习”,为何要纠结“Logistic”一词的译法呢?并不是因为我们“好为人师”,而是这关系到对“Logistic 回归”内涵的理解。下面我们就从为什么需要 Logistic 回归开始说起。

为什么需要Logistic回归

首先,需要强调的是,Logistic 回归也属于监督学习之列,虽然带有“回归”二字,但它却是名副其实的“分类”算法。通过前面的学习,我们知道,分类与传统意义上的回归最大的不同在于,分类算法输出的是离散的标签值(比如花的品类),而回归输出的是连续的实数(比如花瓣长度)。

前面我们已经提到,线性回归模型的优点在于,数据拟合简单直观,输出结果解释力强,但在部分场景下,它也会捉“捉襟见肘”,难以胜任。

下面我们来看这样一个场景。比如说,在一家服装店里,商家想根据顾客的各类特征(自变量 x),包括但不限于性别、年龄、穿着习惯、谈吐、颜值等,来预测自己的销售额(因变量 y)。显然,销售额是连续的实数值,因此这个模型构建起来,就是一个地地道道的线性回归模型。

y=w0+w1x1+w2x2+...+wmxm

其中,w0 表示截距,wi 表示与各个特征 xi 相匹配的权值。相比于预测店铺销售额这类高层次问题,销售员可能更关注一个问题:光临店铺的顾客“买”还是“不买”商品。注意,此时目标输出变量只有两类值:0(代表不买)和 1(代表买),这显然是一个二分类问题。

其实,这也是一个很重要的问题。拓展一下,在整个互联网电商世界,聪明的商家无不是通过收集大量的用户标签(如性别、年龄、购买力、页面停留时间等),来形成用户画像(User Profile)的。最终,商家面临的也都是一个二分类问题:用户要不要观看某个视频,用户要不要点击某条新闻,用户要不要购买某个商品等。究其本质,都是一样的。因此,对二分类问题实施建模,具有一定的普适意义。

但问题在于,我们观察到的样本特征,往往是连续的实数值,而我们输出的目标却是“非 0 即 1”这样的离散整数值,如果用简单的线性回归模型,那么无论 {wi} 怎么“上蹦下跳”,也难以有效达成“连续值→离散值”的映射。也就是说,简单的线性回归模型难以实现数据和目标数据之间的拟合。

如果直接拟合很难,那我们能不能转换一下思维方式呢?在输出值方面,我们暂时先做一点点妥协,不再考虑“非黑即白”的二分类(买或不买),而是考虑买或不买的概率。由于概率是一个连续值,这样一来,我们就重新回到了“连续值→连续值”的映射上,这似乎保持了“回归”的特性。

然后,我们给出一个阈值(θ),一旦概率大于 θ,就表示购买的可能性大。反之,低于 θ 表示购买的可能性小。可是,你可能会问,这个阈值该如何设定呢?

事实上,这个阈值可以不直接设定。我们假设购买的概率为 P,显然,对于一个二分类,不购买的概率就是 1-P。我们只要保证购买的概率 P 大于不够买的概率(1-P)就可以了,用数学的语言描述就是:

p/(1-p)>1

上面公式刻画的概念就是“odds”(几率)。如此一来,我们就把一个观察的连续值和一个输出的连续值关联起来了。但这似乎还不够,我们需要把二者用数学模型连接起来,即用到非常重要的 logit 变换。

Logistic源头初探

在统计学领域,Logistic 的同义词是 logit。logit 常出现在很多机器学习框架的函数中。那么 logit 到底是什么意思呢?

在统计学里,概率(Probability,简称 P)描述的是某事件 A 出现的次数与所有事件出现的次数之比。很显然,概率 P 是一个介于 0~1 之间的实数;P=0,表示事件 A 一定不会发生,而 P=1 则表示事件 A 一定会发生。以掷骰子为例,由于骰子有 6 面,任意一面的点数出现的概率都是相同的。于是,事件 A“掷出点数 1”的概率 P(A)=1/6。

在英文中,odds 的本意是“几率”“可能性”,它和我们常说的概率又有什么区别呢?相比于概率 P,odds 指的是事件发生的概率与事件不发生的概率之比:

odds(A)=事件A发生的概率/事件A不发生的概率

还拿掷骰子的例子来说,掷出点数 1 的 odds 为:

odds(掷出点数1)=(1/6)/(5/6)=1/5

很明显,odds 和 P 之间的关系为:

odds(A)=P(A)/1-P(A)

进一步简化可知:

odds(A)=事件A发生的次数/发生其他事件的次数(即事件A不发生的次数)

很容易推导得知,P(A) 和 odds(A) 的值域是不同的。前者的值域是 [0,1],而后者则是 [0,+∞)。

那这和 logit 到底有什么关系呢?请注意“logit”一词的构成,它的含义是对它(it)取对数(log),这里“it”就是指 odds。下面我们就可以给出 logit 的定义了:

logit(odds)=log(p/1-p)

上面实际上就是所谓 logit 变换,其曲线如图 1 所示。

logit变换曲线

图 1:logit变换曲线

或许你要问,那为什么要实施 logit 变换呢?简单来说,在机器学习领域,很多变换都是为了方便模型更好地拟合数据,logit 变换亦是如此。从图 1 中可以看出,通过变换,logit 就具备了一个很重要的特性,即它的值域为 (-∞, +∞),摆脱了上下限制,这就给数据的拟合提供了方便。当然,其优点并不局限于此,后面会继续讨论。

通常,logit 变换的对数底是自然对数e,这里我们把 odds 用更简单的符号 z 表示,则有:

z=ln(p/1-p)

显然,通过公式上面,我们也容易反推出概率P的值:

p=e2/(1+e2)

如果我们再将公式上面做以简单变形,让分子和分母同时乘以 e-z,并按分布函数的格式写出来,可得到:

p=(Z≤z)=1/(1+e2)

这里,Z 表示随机变量,取值为实数。上面公式正是在 Logistic 回归和神经网络中广泛使用的 Sigmoid 函数,又称 Logistic 函数(以后不再区分这两种叫法)。该函数有很多优良的“品性”,如单调递增、处处可导等,如图 2 所示。

Logistic函数

图 2:Logistic 函数

行文至此,或许你对“logit”的内涵已经有了更为准确的理解。追根溯源,Logistic regression 比较“信达雅”的中文译法应该为“对数几率回归”。比如,在那本著名的“西瓜书”《机器学习》中,这个词就是这么翻译的。

Logistic 回归通过使用其固有的 Logistic 函数来估计概率,从而衡量因变量(即要预测的标签)与一个或多个自变量(特征)之间的关系。这些概率必须二值化,才能真正地实现分类预测。

从图 2 中可以看到,Logistic 函数是一个 S 形的曲线,它可以将任意实数值映射为 0~1 之间的值。这个特性,对于解决二分类问题十分重要。我们使用阈值(比如说 0.5)将 0~1 之间的概率转换为两个不同的类,通常用“0”表示一类(比如说概率小于 0.5),用“1”表示另外一类(概率大于 0.5)。

需要注意的是,选择概率值 0.5 作为阈值,仅是一种一般性的做法。在实际应用时,针对不同情况可选择不同的阈值。比如说,如果对正例的查准率要求高,可以选择更大一些的阈值(比如 0.6)。如果对正例的查全率(即召回率)要求高,则可以选择小一些的阈值(比如 0.4)。

此外,分类的标识“0”或“1”,和概率值的边界“0”或“1”,其实是没有任何关系的。我们完全可以用“-1”和“1”表示两个类,只要它们有区分度即可。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容