首页 » python机器学习 » python机器学习全文在线阅读

《python机器学习》3.3.1 初识逻辑斯谛回归与条件概率

关灯直达底部

逻辑斯谛回归是针对线性可分问题的一种易于实现且性能优异的分类模型。它是业界应用最为广泛的分类模型之一。与感知器及Adaline类似,逻辑斯谛回归模型也是适用于二类别分类问题的线性模型,通过一对多(OvR)技术可以扩展到多类别分类。

在介绍逻辑斯谛回归作为一种概率模型所具有的特性之前,我们先介绍一下几率比(odd ratio)[1],它指的是特定事件发生的几率。用数学公式表示为,其中p为正事件发生的概率。此处,正事件并不意味着好的事件,而是指我们所要预测的事件,以一个患者患有某种疾病的概率为例,我们可以将正事件的类标标记为y=1。更进一步,我们可以定义logit函数,它是几率比的对数函数(log-odds,对数几率)。

logit函数的输入值范围介于区间[0,1],它能将输入转换到整个实数范围内,由此可以将对数几率记为输入特征值的线性表达式:

此处,p(y=1|x)是在给定特征x的条件下,某一个样本属于类别1的条件概率。

我们在此的真正目的是预测某一样本属于特定类别的概率,它是logit函数的反函数,也称作logistic函数,由于它的图像呈S形,因此有时也简称为sigmoid函数:

这里的z为净输入,也就是样本特征与权重的线性组合,其计算方式为:

我们来绘制一下自变量取值介于区间[-7,7]的sigmoid函数的图像:

执行上述代码,将会呈现一个S形(sigmoidal)曲线:

可以看到,当z趋向于无穷大(z→∞)时,φ(z)趋近于1,这是由于e-z在z值极大的情况下其值变得极小。类似地,当z趋向于负无穷(z→-∞)时,φ(z)趋近于0,这是由于此时分母越来越大的结果。由此,可以得出结论:sigmoid函数以实数值作为输入并将其映射到[0,1]区间,其拐点位于φ(z)=0.5处。

为了对逻辑斯谛回归模型有个直观的认识,我们可以将其与第2章介绍的Adaline联系起来。在Adaline中,我们使用恒等函数φ(z)=z作为激励函数。而在逻辑斯谛回归中,只是简单地将前面提及的sigmoid函数作为激励函数,如下图所示:

在给定特征x及其权重w的情况下,sigmoid函数的输出给出了特定样本x属于类别1的概率φ(z)=P(y=1|x;w)。例如,针对某一样本我们求得φ(z)=0.8,这意味着该样本属于变色鸢尾的概率为80%。类似地,该样本属于山鸢尾的概率可计算为P(y=0|x;w)=1-P(y=1|x;w)=0.2,也就是20%。预测得到的概率可以通过一个量化器(单位阶跃函数)简单地转换为二元输出:

对照前面给出的sigmoid函数的图像,它其实相当于:

对于许多应用实践来说,我们不但对类标预测感兴趣,而且对事件属于某一类别的概率进行预测也非常有用。例如,将逻辑斯谛回归应用于天气预报,不仅要预测某天是否会下雨,还要推测出下雨有多大的可能性。同样,逻辑斯谛回归还可用于预测在出现某些症状的情况下,患者患有某种疾病的可能性,这也是逻辑斯谛回归在医疗领域得到广泛应用的原因。

[1] 某一事件发生与不发生的概率的比值。——译者注