• 一、简介
  • 二、主要内容
  • Classification:
  • Hypothesis Representation:
  • Decision boundary:
  • Cost function:
  • Advanced optimization:
  • Multi-class classification: One-vs-all:
  • 三、参考链接


一、简介


逻辑回归(Logistic Regression)是机器学习中的一种分类模型,由于算法的简单和高效,在实际中应用非常广泛。逻辑回归与线性回归在很多方面都差不多,不同的是因变量,逻辑回归的因变量可以是而分类的,也可以是多分类的,但是二分类的更为常用,也更容易解释,所以我们实际中最常用的是二分类的逻辑回归。如果是连续的,就是多重线性回归;如果是二项分布,就是逻辑回归;如果是Poisson分布,就是Poisson回归;如果是负二项分布,就是负二项回归。Logistic回归的主要用途:
1.寻找危险因素:寻找某一疾病的危险因素等;
2.预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;
3.判别:实际上,跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。

二、主要内容


Classification:

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_梯度下降算法


从上图可以看出来,当不考虑最右上角的训练样本时,做出的直线与y=0.5的交点对应的x坐标恰好能把良性和恶性的值分开,但如果算上最右上角的训练样本值时,做出的直线与y=0.5的交点的x坐标与之前少一个训练样本的x坐标差别比较大。所以数据的微小变动都对结果能够产生很大的影响,所以一般解决分类问题不用线性回归的方法。


Hypothesis Representation:

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_线性回归_02


Sigmoid函数是一个在生物学中常见的S型的函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_梯度下降算法_03


由概率论公式知:在分类问题中,其中一个分类的概率可以由其他概率简单计算得出。


Decision boundary:

用逻辑函数求决策边界

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_最小值_04

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_最小值_05


用逻辑函数的图像找出z>0的部分,即为我们所求的部分。

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_梯度下降算法_06


上图为非线性的决策边界的求解,只需要将假设函数的变量的阶数升高,就可以得到非线性的假设函数,然后再给出θ的值,就能得到具体图形的决策边界。决策边界不是训练集的属性,而是假设本身及其参数的属性。


Cost function:

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_最小值_07



hθ(x)=g(θTx)=11+e−Tx h θ ( x ) = g ( θ T x ) = 1 1 + e − T x


零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_梯度下降算法_08


如果取


hθ(x)=g(θTx)=11+e−Tx h θ ( x ) = g ( θ T x ) = 1 1 + e − T x

那么代价函数的图像将会是左边的图像,是一个非凹函数,不能比较轻易地找到全局最小值,显然这不是我们想要的结果,我们想要的结果是能得到右下角的凹函数的图像,这样我们能从图像上面找到全局最小值,所以θ的选择是至关重要的。


零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_梯度下降算法_09


当y=1时,因为


hθ(x)=11+e−Tx h θ ( x ) = 1 1 + e − T x

所以

−log(hθ(x)=−log(1−(1+e−θx))=−log(1+e−θx)+c,1+e−θx>1 − l o g ( h θ ( x ) = − l o g ( 1 − ( 1 + e − θ x ) ) = − l o g ( 1 + e − θ x ) + c , 1 + e − θ x > 1

所以可以画出大致图像如上。当h_θ(x)=1,即实际与预测值完全一样的时候,cost=0,从图像上也可以看出这个结论是正确的,但是,当

hθ(x)=0 h θ ( x ) = 0

,也就是y=1的概率为0的时候,cost→∞,即实际与预测值不一样的时候cost→∞。


零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_最小值_10


同理,当y=0的时候也可以得出当实际值与预测值相同的时候,cost=0,当实际值与预测值不一样的时候cost→∞。

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_线性回归_11


将公式简化可以得到

cost=(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x)) c o s t = ( h θ ( x ) , y ) = − y l o g ( h θ ( x ) ) − ( 1 − y ) l o g ( 1 − h θ ( x ) )


零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_最小值_12


通过梯度下降的公式对θ进行求值更新,除了

hθ(x) h θ ( x )

(线性回归里面

hθ(x)=θx, h θ ( x ) = θ x ,

这里

hθ(x)=11+e(−θTx) h θ ( x ) = 1 1 + e ( − θ T x )

的表示不同,这个算法和线性回归里面的梯度下降算法几乎是一致的。


Advanced optimization:

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_线性回归_13


除了梯度下降算法外,还有共轭梯度法,BFGS ,L-BFGS,后两者由拟牛顿法延伸出来,与梯度下降相比,这些算法的优点是:

1.不需要手动选择步长

2.通常比梯度下降算法快


Multi-class classification: One-vs-all:

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_梯度下降算法_14

零膨胀负二项泊松回归 statsmodel python 负二项回归和泊松回归_线性回归_15


二类分类问题可以用线性回归分类,也可以用逻辑回归分类多类分类问题可以将其看作二类分类问题,先保留其中一类,剩下的所有类别作为另一类。对于每一类再计算出他们的概率,取概率最大的类作为分类的结果。

三、参考链接


]
http://blog.jobbole.com/88521/

https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407?fr=aladdin