【转载】逻辑回归模型的前世今生

它是一个简单的模型,却支撑着互联网新旧巨头最挣钱的核心模块;

它是一个经典的模型  行业内却很少有人能讲清它的前世今生今天;

今天,小编和大伙唠一唠,《逻辑回归的前世今生》。

点击率(CTR)预估问题是各大互联网公司几乎都要做的重要问题,是新旧巨头们挣钱的核心模块之一。

在做CTR预估的工程实践中,他们都用逻辑回归:

百度通过CTR预估,筛选出变现能力更强的广告;淘宝通过CTR预估,筛选出更有可能让你“大出血”的商品;今日头条通过CTR预估,让你上厕所、蹲马桶时也忍不住刷一刷。

虽然在今天,深度学习模型成为时尚,但是逻辑回归模型仍然顽强坚守在第一线,为什么它没有被替换?因为它足够简单却又足够有效。线上的系统往往对实时性要求很高,也就是训练好的模型在线上进行预测时必须快速响应,从这一点上,逻辑回归(LR)模型不可替代。

不仅如此,逻辑回归模型是一线机器学习工程师最喜欢的模型之一,下面请听一线机器学习工程师的观点

它虽然是备胎,但是非常重要

逻辑回归(LR)模型在目前的工业界仍然应用非常广,是最重要的基础模型。当解决一个工程问题时,如果一开始就上DNN这样的高级模型,并不明智。  

       原因是:训练一个复杂的模型的时间成本高,比如一个DNN模型可能得一周甚至更久(训练过程中还经常需要调参),在数据和特征都可能存在瑕疵的情况下,一开始就用复杂模型并不明智。

      实际上,数据有问题的可能性非常大,比如:噪声数据是否已经清洗干净;样本不均衡的问题是否严重、有没有处理;实际获取到的训练数据往往是通过一些规则得到的,可能是有偏的;甚至在一些多分类问题中,由于分类标准区分度不够,导致有些分类的case之间有重叠;

     另外,最开始选择的特征也很可能不合理。通过LR模型可以快速验证特征和数据的合理性。   

     这也就是说 虽然你是备胎,但是我离不开你!

从实践经验来看,最好的办法是,首先用LR、GBDT这样的简单模型来做一个base模型。然后再在这个基础上,用高级模型(如DNN、RNN等)进行提高。最后权衡一下 高级模型在效果上的提升幅度和它所带来的空间占用和时间成本的增加,如果确实效果提高足够明显、而且在存储和耗时方面的代价在可以接受的范围,才使用高级模型。当然啦,模型融合也是很好的思路,比如bagging。

        因此,

备胎也可能会有春天!

选模型  不求最复杂  但求最实用

市面上的博客和培训讲义,介绍解逻辑回归时,似乎都认为logistic函数是天生就有的。例如,周志华大大的《机器学习》经典书里就这样引入logistic函数:

但是,光是怎么产生的呢?没有人知道。

      同理,logistic函数到底是怎么得到的呢?没有人在乎,没有人介绍。

      但是,我在乎!

Logistic模型是1938年Verhulst—Pearl在修正非密度方程时提出来的,他认为在一定的环境中种群的增长总存在一个上限,当种群的数量逐渐向着上限上升时实际增长率就要逐渐地缩小,所以也被称为。广义Logistic曲线可以模仿一些情况的人口增长(P)的S形曲线。起初阶段大致是指数增长 ;然后随着人口开始变得饱和,增加变慢;最后,达到成熟时增加停止,所以又叫 sigmoid曲线(S型曲线)。形如:

好了,背诵完毕,您现在懂了logistic函数为什么是下面的形式了吗:

下面我们以“人口预测”问题作为例子,揭开logistic函数是怎么来的------》微分方程,揭开logistic函数神秘面纱

1) 最简单的指数模型

       人口预测对简单的模型无疑是指数增长模型。我们设时刻t的人口总量为x(t),并将x(t)看作连续、可微的函数。记初始时刻(t=0)的人口为x0。规定人口的增长率为常数r,即单位时间内x(t)的增量等于r乘以x(t)。我们考虑t到时间内人口的增量,则有

这是一个我们比较熟悉的指数增长的函数。当r > 0时,人口将按照指数规律无限制地增长,称为指数增长模型。

事实上,这个模型与欧洲19世纪以前的人口增长是很好地吻合的。它作为短期模型可以取得很好的效果,但是长期来看,任何地区的人口不可能无限制地增长。因为土地、水源等自然资源的供应和环境的承载能力是有限的,当人口增加到一定数量时,人口的增长就会慢下来,增长率会变小。为此,引入了下面的改进模型。

2) 考虑资源、环境约束条件下的改进模型

   

对人口的阻滞体现在对r的影响上,表现为r随着人口数量的增加而下降.我们不妨把人口的增长率r表示为关于人口数量x的函数r(x),显而易见r(x)为减函数,于是(2)式可写为

这个函数为什么它要长成这样?他们都不解释!他们都是坏人!但是现在,你通过我们这个小案例看到了,原来logistic函数是这样推导出来的!是不是So easy?

逻辑回归模型的现实意义

事实上,人口预测问题所使用的logistic模型,可以用来描述包括人类在内几乎所有物种在资源约束下的增长规律。

请看下面这段话:

当一个物种迁入到一个新生态系统中后,其数量会发生变化。假设该物种的起始数量小于环境的最大容纳量,则数量会增长。该物种在此生态系统中有天敌、食物、空间等资源也不足(非理想环境),则增长函数满足逻辑斯谛方程,图像呈S形,此方程是描述在资源有限的条件下种群增长规律的一个最佳数学模型。

我们可以设想一下,假设我们承包了一个鱼塘,扔了数量比较少的鱼苗进去以后,这个鱼塘内鱼的条数的变化是不是也会满足logistic模型呢?

其实,不光是物种数量的建模,很多社会、经济现象都可以借助于来解释。比如某互联网公司推出一款爆款产品以后,这个产品的用户数可能也会呈现类似的增长规律:刚开始时,由于产品反响非常好,用户呈指数级增长,当用户数到达一定的规模以后,由于抄袭者增多、竞争对手加大狙击力度、以及网民总数是有限的,这个产品的用户数的增长率会逐渐放缓。

别被它的名字所蒙蔽

前面我们讲到的人口预测问题,其实是逻辑回归方法应用于解决回归问题的一个实例。不过在实际的工业界使用时,逻辑回归基本上是用于解决分类问题,比如CTR预估,工业界几乎没有人用它来做回归问题。这样就带来一个让很多初学者困惑的问题:

我们明明是拿“逻辑回归”来解决分类问题,但是它的名字上为啥非得带上“回归”二字呢,为什么不叫“逻辑分类(logistic classification)”呢?

作为好事者,我特意去谷歌了一下,结论是:

No Why!没有原因,大家都这么叫,习惯就好

猜你喜欢

转载自www.cnblogs.com/mod109/p/9349710.html