机器学习 基础教程

机器学习 集成学习

机器学习 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/ml-lr.html

机器学习 LR


逻辑回归(logistic regression)是统计学中的一个经典的分类方法。它是由英国统计学家 David Cox 在1958年提出的。逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

LR的起源

logistic regression的起源主要分为几个阶段,从开始想到logistic这个词,到发现logistic function,再推导出logit function,最后才命名logistic regression。这些过程都是大量的研究者们共同努力发现的,只是在历史的长河中,很多人被渐渐遗忘了。

logistic起源

logistic起源于对人口数量增长情况的研究,比利时人Pierre François Verhulst在1838年提出了对人口增长的公式描述,他博士毕业于根特大学的数学系,是个数学教授和人口学家。早在1835年Verhulst的同乡Adolphe Quetelet发表了一篇关于讨论人口增长的文章,文中认为人口不可能一直是几何(指数)增长,而会被与增长速度平方成比例的一种阻力而影响,但是这篇论文只有猜想没有数学理论基础,却极大的启发了Verhulst。因此在1838年Verhulst发表了关于人口数量增长的论文,就是在这篇论文里面他推导出了logistic equation,文章中谈到一个重要观点,随着时间的增加,一个国家的大小(资源)和这个国家人们的生育能力限制了人口的增长,人口数量会渐渐趋近一个稳定值。厉害的是他将这个过程用公式给描述出来了,他从人口数量增长的速度公式入手,即人口数量对时间t的导数;其中就是他认为人口数量稳定的值,当远小于时,求导公式后一项约等于0,那么就变成了,这个阶段人口增长速度与人口数量和一个常数的乘积成正比,并且在渐渐变大。然后对这个式子求解一阶线性微分方程得到。当接近时,人口增长速度开始渐渐变小,同样求解二阶微分方程(论文中是将二阶转化成一阶求解),然后将二者整合在一起得到最初的形式。他将法国英国等过十几年的人口实际数据拿来跟这个公式对比之后发现确实拟合的很不错。但他当时并没有那么多年的数据,下图是在他过世以后人们总结的300年来的人口增长分布,可以看到非常漂亮地拟合了logisitc分布的累积分布函数走势。但是当时这个公式并没有名字,直到1845年他发表了另外一篇重要文章,他给这个公式起了一个名字“logistic”。

比利时的人口增长数量图

logistic function

然而在Verhulst发布文章后的几十年内,人们都没有意识到这个工作的重要性,很多人都独立的研究出了这个增长现象,直到1922年一个叫做Raymond Pearl的人口学家注意到Verhulst在1838年就已经提出了这个现象和公式,并在他的文章中也使用了logistic function来称呼它,并且沿用至今。

logit function

基于Pearl的logistic function,Joseph Berkson在1944年提出了logit function。

logistic regression

后来,在1958年David Cox提出了logistic regression。

逻辑回归的假设函数

任何的模型都是有自己的假设,在这个假设下模型才是适用的。逻辑回归的第一个基本假设是假设数据服从伯努利分布。伯努利分布有一个简单的例子是抛硬币,抛中为正面的概率是p,抛中为负面的概率是1-p。

在逻辑回归这个模型里面是假设正的概率为一个Sigmoid函数,如下图。

逻辑回归假设函数

逻辑回归的损失函数

逻辑回归的损失函数采用对数损失函数,是一个极大似然函数

由于该极大似然函数无法直接求解,我们一般通过对该函数进行梯度下降来不断逼近最优解。

逻辑回归优缺点

逻辑回归作为工业界大量使用的算法,有很多优点,同时也有一些不足。

逻辑回归的优点

逻辑回归有如下几个优点:

  • 形式简单,模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。
  • 模型效果不错。在工程上是可以接受的(作为baseline),如果特征工程做的好,效果不会太差,并且特征工程可以大家并行开发,大大加快开发的速度。
  • 训练速度较快。分类的时候,计算量仅仅只和特征的数目相关。并且逻辑回归的分布式优化sgd发展比较成熟,训练的速度可以通过堆机器进一步提高,这样我们可以在短时间内迭代好几个版本的模型。
  • 资源占用小,尤其是内存。因为只需要存储各个维度的特征值。
  • 方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cutoff,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。

逻辑回归的缺点

逻辑回归有很多优点,同样也如下不足:

  • 准确率并不是很高。因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布。
  • 很难处理数据不平衡的问题。举个例子,如果我们对于一个正负样本非常不平衡的问题,比如正负样本比为10000:1。我们把所有样本都预测为正也能使损失函数的值比较小。但是作为一个分类器,它对正负样本的区分能力不会很好。
  • 处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题。
  • 逻辑回归本身无法筛选特征。有时候,我们会用gbdt来筛选特征,然后再上逻辑回归。
机器学习有下面几种定义: ...
这里收集了机器学习开发过程中遇到的各种问题及解答。 ...
机器学习中的 Boosting 算法族有两大类,一类是 weight_boosting,其中以 adaboost 为主要代表,另一类是 gr ...
Adaboost(Adaptive Boosting)是集成学习 boosting 家族中的一员。它是以色列计算科学教授 Yoav Freu ...
决策树(decision tree)是一种基本的分类与回归方法。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以 ...