算法详解系列(二):逻辑回归

逻辑回归假设数据服从伯努利分布,通过极大化似然函数方法,运用梯度下降来求解参数,来达到将数据二分目的。

一、算法的推导

1.1 对数几率函数

对数几率函数:是一种Sigmoid函数,通过此函数来输出类别概率。

对数几率函数为: y = 1 1 + e − ( w T x + b ) y = \frac { 1 } { 1 + e ^ { - (w^T x+b ) }} y=1+e(wTx+b)1,其中 y y y代表的是样本视为正样本的可能性,则 1 − y 1-y 1y为视为负样本的可能性。

对数几率:定义为 ln ⁡ y 1 − y = w T x + b \ln \frac { y } { 1 - y } = w ^ { T } x + b ln1yy=wTx+b,其中$\frac { y } { 1 - y } $称为比率。

决策边界:作用在 n n n维空间,将不同样本分开的平面或曲面,在逻辑回归中,决策边界对应 w T x + b = 0 w ^ { T } x + b=0 wTx+b=0

分布函数
密度函数

1.2 使用极大似然法进行参数估计

由对数几率函数对应输出正样本的概率,可得对应关系:$P ( y = 1 | x ) = \frac { e ^ { w ^ { T } x } + b } { 1 + e ^ { w ^ { T } x + b } } , 并 令 ,并令 P ( y = 1 | x ) =\pi ( x ) , 则 对 应 的 ,则对应的 P ( y = 0 | x ) = \frac {1} { 1 + e ^ { w ^ { T } x + b } } , 则 ,则 P ( y = 0 | x ) =1-\pi ( x )$。

现学习目标是对**参数 w w w b b b**进行参数估计,使得逻辑回归模型能尽可能符合数据集分布。

对于给定的数据集 { x ( i ) , y ( i ) } \left \{ x^{(i)},y^{(i)} \right \} {x(i),y(i)}其中 i i i从1到数据集大小m,来使得最大化对数似然。

首选,写出似然函数: l = ∏ i = 1 m [ π ( x ( i ) ) ] y ( i ) [ 1 − π ( x ( i ) ) ] 1 − y ( i ) l=\prod_{i=1}^{m}\left[ \pi \left( x ^ { (i) } \right) \right] ^ { y ^ { (i) } }\left[1- \pi \left( x ^ { (i) } \right) \right] ^ {1- y ^ { (i) } } l=i=1m[π(x(i))]y(i)[1π(x(i))]1y(i),对数似然函数就是 L ( w ) = ∏ i = 1 m [ y ( i ) log ⁡ π ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − π ( x ( i ) ) ) ] L(w)=\prod_{i=1}^{m}[ y^{(i)} \log \pi ( x^{(i)} ) +(1- y^{(i)}) \log (1- \pi ( x^{(i)}) ) ] L(w)=i=1m[y(i)logπ(x(i))+(1y(i))log(1π(x(i)))],可化简为 ∑ i = 1 m [ y ( i ) log ⁡ π ( x ( i ) ) 1 − π ( x ( i ) ) + log ⁡ ( 1 − π ( x ( i ) ) ) ] = ∑ i = 1 m [ y ( i ) ( w ⋅ x ( i ) ) − log ⁡ ( 1 + exp ⁡ ( w ⋅ x ( i ) ) ] \sum _ { i = 1 } ^ { m } \left[ y ^ { (i) } \log \frac { \pi \left( x ^ { (i) } \right) } { 1 - \pi \left( x ^ { (i) } \right) } + \log \left( 1 - \pi \left( x ^ { (i) } \right) \right) \right]=\sum _ { i = 1 } ^ { m } \left[ y^ { (i) } \left( w \cdot x ^ { (i) } \right) - \log \left( 1 + \exp \left( w \cdot x ^ { (i) } \right) \right]\right. i=1m[y(i)log1π(x(i))π(x(i))+log(1π(x(i)))]=i=1m[y(i)(wx(i))log(1+exp(wx(i))],后面式子是带入 π ( x ) \pi ( x ) π(x)后化简得到。

现在,即对对数似然函数求极大值,即以对数似然函数为目标的最优化问题。 L ( w ) L(w) L(w)是关于 w w w的高阶连续可导凸函数,根据凸优化理论,可采用梯度下降法,牛顿法等优化方法求解。

1.3 逻辑回归的损失函数

逻辑回归的损失函数是交叉熵损失函数,交叉熵主要用于度量分布的差异性

h θ ( x ) = 1 1 + e − θ T x h _ { \theta } ( x ) = \frac { 1 } { 1 + e ^ { - \theta ^ { T } x } } hθ(x)=1+eθTx1,即用 θ \theta θ代替了 [ b , w 0 , w 1 , . . . , w n ] [b, w_0, w_1, ... , w_n] [b,w0,w1,...,wn]

交叉熵损失函数: J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ) ) ] J ( \theta ) = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } [y ^ { (i) }log h _ { \theta } ( x ) +(1-y^{(i)})log(1- h _ { \theta } ( x )) ] J(θ)=m1i=1m[y(i)loghθ(x)+(1y(i))log(1hθ(x))]

使用交叉熵损失函数的原因: J ( θ ) J ( \theta ) J(θ)中除去$ - \frac { 1 } { m } 便 是 上 述 的 对 数 似 然 函 数 , 对 便是上述的对数似然函数,对 便J ( \theta )$求最小,即对对数似然函数求极大。

1.4 逻辑回归的梯度下降

∂ J ( θ ) ∂ θ j = ∑ i = 1 m 1 m ( e θ T x ( i ) 1 + e − θ T x x j ( i ) − y ( i ) x j ( i ) ) = ∑ i = 1 m 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) , ( j = 0 , 1 , 2 , . . . , n ) \frac { \partial J ( \theta ) } { \partial \theta_ j }=\sum _ { i = 1 } ^ { m } \frac { 1 } { m }(\frac { e^{\theta^T x^{(i)} }} { 1 + e ^ { - \theta ^ { T } x } }x^{(i)}_{j}-y^{(i)}x^{(i)}_{j})=\sum _ { i = 1 } ^ { m }\frac { 1 } { m }(h_ \theta ( x ^ { ( i ) } ) - y ^ { ( i ) }) x _ { j } ^ { ( i ) },(j=0,1,2,...,n) θjJ(θ)=i=1mm1(1+eθTxeθTx(i)xj(i)y(i)xj(i))=i=1mm1(hθ(x(i))y(i))xj(i),(j=0,1,2,...,n)

所以,参数迭代更新式为: θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) , ( j = 0 , 1 , 2... , n ) \theta _ { j } : =\theta _ { j } - \alpha \frac { 1 } { m }\sum _ { i = 1 } ^ { m } (h _ { \theta } \left( x ^ { ( i ) } \right) - y^ {( i )})x _ { j } ^ { ( i ) } , \left( j = 0 , 1,2..., n \right) θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i),(j=0,1,2...,n)

1.5 多分类逻辑回归

普通逻辑回归是一个二分类模型,可推广至多分类

假设:离散型随机变量 Y Y Y的取值集合是 { 1 , 2 , … , K } \{ 1,2 , \dots ,K\} {1,2,,K},共有 K K K类,则多分类逻辑回归模型的输出概率为:

P ( Y = k ∣ x ) = e w k ⋅ x 1 + ∑ k = 1 k − 1 e w k ⋅ x , k = 1 , 2 , . . . , K − 1 P ( Y = k | x ) =\frac { e ^ { w _ { k } \cdot x } } {1+ \sum _ { k = 1 } ^ { k-1 }e ^ { w _ { k } \cdot x } },k=1,2,...,K-1 P(Y=kx)=1+k=1k1ewkxewkx,k=1,2,...,K1 P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 k − 1 e w k ⋅ x , x ∈ R n + 1 , w k ∈ R n + 1 P ( Y = K | x ) =\frac {1 } {1+ \sum _ { k = 1 } ^ { k-1 }e ^ { w _ { k } \cdot x } },x \in R ^ { n + 1 } , w _ { k } \in R ^ { n + 1 } P(Y=Kx)=1+k=1k1ewkx1,xRn+1,wkRn+1

其中注意 Y = k Y=k Y=k是一个取 1 1 1 K − 1 K-1 K1类其中一类, Y = K Y=K Y=K是指第 K K K类, P ( Y = K ∣ x ) P ( Y = K | x ) P(Y=Kx)便是由1减去其他k取值的概率就是第K类的概率。

多分类LR由来:softmax函数, s o f t m a x ( x ) = e k ∑ k = 1 C e k softmax(x)=\frac { e ^ { k } } { \sum _ { k = 1 } ^ { C }e^k } softmax(x)=k=1Cekek

二阶逻辑回归的参数估计法也可推广到多项逻辑回归。

1.6 分布式逻辑回归

算法的伪代码:

设置参数,例如最大迭代次数,学习率,初始权重等
Repeat Until MaxIter Times {
	训练数据分发给计算节点(可对数据一次分发多次使用)
	计算节点参数更新
	计算节点将更新后参数发给管理节点
	管理节点收集参数作参数累和后更新参数
}

二、逻辑回归的欠、过拟合

解决LR回归欠拟合

  • 增加特征的维度

解决LR的过拟合

  • 减少特征的数量,可人工特征选择,也可降维等模型算法选择

  • 正则化(加入 L 1 , L 2 L_1,L_2 L1,L2罚项)

  • 逐渐减小梯度下降学习率 α \alpha α

三、逻辑回归的优缺点

LR优点

  1. 直接对分类的可能性建模,无需事先假设数据分布,避免了假设分布不准确带来的问题
  2. 不仅预测出类别,还可得到近似概率预测
  3. 对率函数是任意阶可导凸函数,有很好得数学性质,很多数值优化算法可直接用于求取最优解
  4. 容易使用和解释,计算代价低
  5. LR对时间和内存需求上相当高效
  6. 可应用于分布式数据,并且还有在线算法实现,用较小资源处理较大数据
  7. 对数据中小噪声鲁棒性很好,并且不会受到轻微多重共线性影响
  8. 因为结果是概率,可用作排序模型

LR缺点

  1. 容易欠拟合,分类精度不高
  2. 数据特征有缺失或特征空间很大时效果不好

四、逻辑回归面对线性不可分数据

逻辑回归本质上是一个线性模型,可通过:

  1. 利用特殊核函数,对特征进行变换把低维空间转换到高维空间,使用组合特征映射(如多项式特征)。但组合特征泛化能力较弱
  2. 扩展LR算法,提出FM算法

五、逻辑回归通常稀疏的原因

  1. 分类特征通常采用one-hot转换成数值特征,产生大量稀疏
  2. 一般很少直接将连续值作为逻辑回归模型输入,而是将连续特征离散化

LR一般需要连续特征离散化原因

  1. 离散特征的增加和减少都很容易,易于模型快速迭代
  2. 稀疏向量内积乘法速廈快,计算结果方便存储,容易扩展
  3. 离散化的特征对异常数据有很强的鲁棒性(比如年龄为300异常值可归为年龄>30这一段)
  4. 逻辑回归属于广义线性模型,表达能力受限。单变量离散化为N个后,每个变量有单独的权重,相当于对模型引入了非线性,能够提升模型表达能力,加大拟合
  5. 离散化进行特征交叉,由 M + N M+N M+N个变量为 M ∗ N M*N MN个变量(将单个特征分成 M M M个取值),进一步引入非线性,提升表达能力
  6. 特征离散化后,模型会更稳定(比如对用户年龄离散化,20-30作为一个区间,不会因为用户年龄,增加一岁变成完全不同的人,但区间相邻处样本会相反,所以怎样划分区间很重要)
  7. 特征离散化后,简化了LR模型作用,降低模型过拟合风险

六、逻辑回归和线性回归的异同

相同之处

  1. 都使用了极大似然估计来对样本建模。线性回归使用最小二乘法,实际上就是在自变量 x x x和超参数 θ \theta θ确定,因变量 y y y服从正态分布的假设下,使用最大似然估计的一个化简。逻辑回归通过对似然函数的学习,得到最佳参数$\theta $
  2. 二者在求解参数的过程中,都可以使用梯度下降的方法

不同之处

  1. 逻辑回归处理的是分类问题,线性回归处理的是回归问题
  2. 逻辑回归中因变量取值是一个二元分布,模型学习得出的是 E [ y ∣ x ; θ ] E[y|x;\theta] E[yx;θ],即给定自变量和参数后,得到因变量的期望。而线性回归实际上求解的是 y = θ T x y=\theta^Tx y=θTx,是对假设的真实关系 y = θ T x + ε y=\theta^T x+\varepsilon y=θTx+ε的一个近似,其中 ε \varepsilon ε是误差项
  3. 逻辑回归中因变量是离散的,线性回归中的因变量是连续的。并在自变量与参数 θ \theta θ确定情况下,逻辑回归可以看作广义线性模型在因变量 y y y服从二元分布时一个特殊情况,而使用最小二乘法求解线性回归时,我们认为因变量 y y y服从正态分布

七、逻辑回归的应用场景

  • CTR预估,Recommender System的Learning to Rank
  • 病理诊断,可用于寻找某一疾病的危险因素
  • 信用评估领域
  • 垃圾邮件分类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值