[分类] 逻辑回归-Logistic Regression

终于到了大名鼎鼎的逻辑回归,在学逻辑回归的时候,从偏传统的统计那边学过一次,然后又从机器学习这边学过一次,感觉还是挺不一样的。

从传统那边,老师说之所以要进行logit变换的原因是在生物统计方面觉得这个transformation比较合理,但从机器学习上看,这个transformation跟LDA(Linear Discriminant Analysis)有关,在了解了LDA之后,有Logistic这个想法还是蛮直接。

在传统上会有对Group Data做逻辑回归的情况,但是在机器学习上,好像很少会有这种问题出现。不过个人以为,从Logistics Regression这个名字来看,最开始应该还是传统统计这边有了成果,然后之后才算到了ML算法中。

话不多说,既然整理的是ML算法,那就从ML这边说起。刚才讲了,logistic的想法与LDA有关。在LDA判别某一个点属于哪一类时,需要计算这个式子,为了使所有的,做一个系数的变换:

... ... ....

由上式,可以导出:


这也叫做Softmax函数。因为是由LDA导出的,所以就直接处理了一个多分类的问题。

那如果从传统统计这边导,Logistic最开始不完全是为了处理分类问题存在的,他可以看做是对占比的一个预测,这也就是逻辑回归为什么有回归这两个字。


Lecture Notes-Burhman

就像上面这个例子,我们要拟合percent和Age的关系。那在一开始画percent和Age的散点图的时候,我们会发现他们的关系并不是完全线性的,反而呈现一种S-shape(类似Sigmoid Function),那对于这种问题,我们还是会想要把他转化为一个线性关系来处理嘛,所以就对percent做一个logit transformation,这是为什么算法叫logistic的原因。,这样转换以后话散点图,发现和X有成性关系,于是。这样一来,,这也叫做Sigmoid Function

仔细观察从LDA导出的式子和刚才的式子,可以发现其实他们是一样的,softmax可以看做是Sigmoid的一个拓展,但本质相同。

所以在做参数估计的时候,我们可以先从统计这边来看。由于统计上一开始处理的是一个估计percentage的问题,那其实这就很明显可以看做一个二项分布,类似的,多分类可以看做是一个Multinomial的分布。为了简单处理,以下只考虑二分类问题,并且将一并归到中。那从统计上来说,参数估计一般是用最大似然估计,二项分布可以看做是多个伯努利分布,所以:




因为这个式子不能得到显式的答案,所以需要用牛顿法/最优化方法来数值逼近方程根。然后因为呈sigmoid的形态,所以模型在两端的导数很小,所以迭代起来会很慢。所以一般初始值可以另或一些0附近比较小的值,然后learning rate需要很小,我自己试下来有时候需要<0.000001才能让算法收敛。如果自己写logistic算法的话,处置选取和learning rate需要谨慎选择,然后最好是对数据先进行标准化再做拟合。

Sigmoid

那对于logistic,我们一般选取的损失函数式Cross-Entrophy:
,如果是多分类问题:,可以发现,其实和最大似然估计的式子是一样的。

模型选择时,如果是subset selection的话一个个拟合很耗时间,所以一般会用Rao score test 去test是否要加feature,用Wald test决定是否要去变量 ->bi direction stepwise

或者是直接加入一个L1正则项,来剔除一些变量

TBC

你可能感兴趣的:([分类] 逻辑回归-Logistic Regression)