前言
本期介绍的是 《Machine Learning with R, tidyverse, and mlr》 一书的第四章——逻辑回归(logistic regression)。逻辑回归是基于概率分类的有监督学习算法,它依赖于直线方程,产生的模型非常容易解释和交流。在其最简单的形式中,逻辑回归被用来预测二分类问题,但算法的变体也可以处理多个类。
1. 逻辑回归简介
逻辑回归算法通常应用于二分类问题,称为二项逻辑回归 (binomial logistic regression),当处理三分类或更多分类问题时,称为多项逻辑回归 (multinomial logistic regression)。该算法的应用过程如 Fig 1 所示,其中虚线表示中间还有其他过程,稍后会有介绍。
Fig 1. 逻辑回归过程
逻辑回归学习的模型输出新数据属于每个类的概率,再将新数据分配到它们最有可能属于的类。
1.1 二分类问题
假设你是一家 15 世纪艺术博物馆的馆长,当一些据称出自著名画家之手的艺术品来到博物馆时,你的工作就是判断它们是真品 (original)还是赝品 (forgery) (一个二分类问题)。我们可以对每幅画进行化学分析,并知道这一时期的许多赝品使用的颜料铜含量低于真品。通过使用逻辑回归来学习一个模型,它可以根据一幅画的铜含量来告诉你一幅画是真品的概率。
Fig 2 是一些已知画作的铜含量,并用一条直线来模拟画作的类别和铜含量的关系。平均而言,赝品的铜含量低于真品。
Fig 2. 画作类别与铜含量直线关系图
x 轴表示铜含量,y 轴显示分类类别,就像是一个连续变量一样,赝品和真品分别取 0 和 1 的值。y = 0.5 处的红色虚线表示分类阈值。蓝色实线表示在铜含量和类别之间建立的线性关系。由图可以看出,该直线关系有许多错误分类,分类效果较差。
Fig 3. 画作类别和铜含量 logistic 关系图
Fig 3 是使用 logistic 函数来模拟画作类别和铜含量的关系,使用和 Fig 2 相同的数据。由图中可以看出,和直线关系相比,分类效果较好。更重要的是,由于 logistic 函数将铜含量映射为 0 和 1 之间的值,所以 x 轴可以将其输出解释为含有特定铜含量的画作是真品的概率。另外,随着铜含量的增加,是真品的概率趋近于 1,相反,随着铜含量的减少,是真品的概率趋近于 0。
上文所介绍的内容中,只有一个预测变量——铜含量,但是如果我们有多个预测变量应该如何进行呢?可以借助接下来要介绍的 log odds。
1.1.1 log odds
一幅画是真品的 odds 是:
其中,p 是一幅画是真品的概率,范围为 0-1。odds 是表示某事发生可能性的一种方便的方式,其值大于 0,它可以告诉我们一件事发生的可能性比它不发生的可能性大多少。
Fig 4. 根据铜含量计算的真品的 odds
由 Fig 4 所示,这幅画的铜含量与这幅画是否是真品的 odds 之间并不是线性关系。接下来,对 odds 取对数,即为 log odds:
这个函数又称为 logit 函数。
Fig 5. 根据铜含量计算的真品的 log odds
由 Fig 5 可以看出,此时铜含量和这幅画是否是真品的 log odds 之间呈线性关系,且 log odds 的值是无界的。正值意味着某事更有可能发生而不是不发生,负值则相反。此外,线性关系意味着当我们有多个预测变量时,我们可以将它们的贡献加到 log odds 中,根据所有预测变量的信息,得到一幅画是真品的总的 log odds。
1.1.2 如何预测分类
那么,我们如何从铜含量和 log odds 的直线关系中得出结论呢? 设我们有以下线性关系:
当通过新数据的铜含量计算出 log odds 后,再将其转换为画作为真品的概率 p:
若 p>0.5,则为真品。这种 log odds 到 odds 到 probability 的转换如 Fig 6 所示。
Fig 6. log odds 到 odds 到 probability 的转换
当我们有多个预测变量时,对应的线性方程形式可以写为:
新画作整个分类过程如 Fig 7 所示 (以两个预测变量(copper & lead)为例)。
Fig 7. 新画作整个分类过程
通过使用算法学习得到的线性模型,将新数据的铜含量(copper)和铅含量(lead)转换为它们的 log odds (或 logits)。接下来,使用 logistic 函数将 log odds 转换为概率 p。若 P 大于 0.5,则为真品。
1.2 多分类问题
上面的例子介绍的是二项逻辑回归问题。但我们也可以使用逻辑回归的变体预测多分类问题,即多项逻辑回归。在多项逻辑回归中,该模型为每个实例的每个输出类估计了一个 logit,而不是仅对每个实例估计一个 logit。将这些输出类的 logit 输入到 softmax function 中转换为概率 p,其和为 1。然后,选择概率最大的类作为输出类。该过程如 Fig 8 所示。
Fig 8. 多项逻辑回归过程
![(5}OE0%]T@_6C`CHPIX`KVP.png (5}OE0%]T@_6C`CHPIX`KVP.png](https://ucc.alicdn.com/pic/developer-ecology/6010c18ba9584062b995f4df09a48305.png?x-oss-process=image/resize,w_1400/format,webp)





![AV]C_5ZG{QRR)MHMCLTDFJV.png AV]C_5ZG{QRR)MHMCLTDFJV.png](https://ucc.alicdn.com/pic/developer-ecology/ace4428a1c684a3da87dff3ca56a5413.png?x-oss-process=image/resize,w_1400/format,webp)

![1TTJ2W8AFU8PVKM]_A[SLDQ.png 1TTJ2W8AFU8PVKM]_A[SLDQ.png](https://ucc.alicdn.com/pic/developer-ecology/2e102e69bf8a452c8a2468185b4d2304.png?x-oss-process=image/resize,w_1400/format,webp)






