【机器学习】Logistic Regression逻辑回归算法

一、逻辑回归的概念

逻辑回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,经济预测等领域。逻辑回归从本质来说属于二分类问题,是基于Sigmoid函数(又叫“S型函数”)的有监督二类分类模型。

二、Sigmoid函数

Sigmoid函数公式为:
g ( z ) = 1 1 + e − z \mathbf{g}(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1其导数形式为:(注意,导数形式在后面会被用到)
g ′ ( z ) = d d z 1 1 + e − z = 1 ( 1 + e − z ) 2 ( e − z ) = 1 + e − z − 1 ( 1 + e − z ) 2 = 1 ( 1 + e − z ) ( 1 − 1 ( 1 + e − z ) ) = g ( z ) ( 1 − g ( z ) ) \begin{aligned} \mathbf{g}'(z)&=\frac{d}{dz}\frac{1}{1+e^{-z}}\\ &=\frac{1}{(1+e^{-z})^2}(e^{-z})\\ &=\frac{1+e^{-z}-1}{(1+e^{-z})^2}\\ &=\frac{1}{(1+e^{-z})}(1-\frac{1}{(1+e^{-z})})\\ &=\mathbf{g}(z)(1-\mathbf{g}(z)) \end{aligned} g(z)=dzd1+ez1=(1+ez)21(ez)=(1+ez)21+ez1=(1+ez)1(1(1+ez)1)=g(z)(1g(z))Sigmoid函数其图像如下所示,其取值范围被压缩到0到1之间。Alt
我们知道有监督分类问题需要有带类别标记的训练样本, g ( z ) \mathbf{g}(z) g(z)中的 z z z就对应训练集中某个样本的信息。 而样本信息通常用一系列特征的线性组合来表示,即
z = x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n z=x_0+\theta_1x_1+\theta_2x_2+\cdots+\theta_nx_n z=x0+θ1x1+θ2x2++θnxn其中 x x x表示 n n n个特征, θ \theta θ是每个特征的权重,代表对应特征的重要程度, x 0 x_0 x0是偏移,上式通常被写成向量形式: θ T x \theta^Tx θTx(其中 x 0 x_0 x0对应的 θ \theta θ等于1)。那么Sigmoid函数就可以相应地写为如下的形式:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(x)=\mathbf{g}(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+eθTx1假设我们知道了某个样本对应的特征取值和权重参数,那么只要将其带入上式即可得到一个0到1之间的数,通常认为 h θ ( x ) ≥ 0.5 h_\theta(x)\geq0.5 hθ(x)0.5则属于正类别,反之属于负类别,即这个数其实反映了该样本属于正类别的概率。现在的问题是,我们手上有了训练集,即样本的都是已知的,而模型参数是未知的。我们需要通过训练集来确定未知的值。一旦被确定,每当面临新样本时,我们就可以将其对应的 x x x扔到 h θ ( x ) h_\theta(x) hθ(x)中,根据结果是否大于0.5,轻松加愉快地得出新样本的类别了。

三、逻辑回归为什么要用sigmoid函数而不是用其他呢?

首先需要了解几个知识点:
A.指数族分布
指数族分布下面的公式,即:
p ( y ; η ) = b ( y ) e η T ( y ) + α ( η ) p(y;\eta)=b(y)e^{\eta T(y)+\alpha(\eta)} p(y;η)=b(y)eηT(y)+α(η)其中, η \eta η为自然参数, T ( y ) T(y) T(y)为充分统计量,通常 T ( y ) = y T(y)=y T(y)=y α ( η ) \alpha(\eta) α(η)为正则化项。

B.广义线性模型
满足下面三个假设的模型成为广义线性模型:

  1. y ∣ x ; θ y|x;\theta yx;θ 满足一个以 η \eta η为参数的指数族分布
  2. 给定 x x x,我们目标是预测 y y y的期望值,即 h ( x ) = E ( y ∣ x ) h(x)=E(y|x) h(x)=E(yx)
  3. η = θ T x \eta=\theta^Tx η=θTx

因为逻辑回归假设数据服从伯努利分布,我们用一个简单例子来介绍伯努利分布:抛硬币,一枚硬币抛中正面的概率为 p p p,那么反面的概率则为 1 − p 1-p 1p。那么伯努利分布的概率质量函数(PMF)为:
f ( y ; p ) = { p , y=1 1 − p , y=0 f(y;p)=\begin{cases} p, & \text {y=1} \\ 1-p, &\text{y=0} \end{cases} f(y;p)={p,1p,y=1y=0分段函数比较简单易懂,但是对于后面的推导比较麻烦,于是有:
f ( y ; p ) = p y ⋅ ( 1 − p ) 1 − y , y ∈ { 0 , 1 } f(y;p)=p^y\cdot (1-p)^{1-y},\quad y\in\{0,1\} f(y;p)=py(1p)1y,y{0,1}对上式进行 log ⁡ \log log变换操作:
f ( y ; p ) = p y ⋅ ( 1 − p ) 1 − y = e x p ( y log ⁡ ( p ) + ( 1 − y ) log ⁡ ( 1 − p ) ) = e x p ( y log ⁡ ( p ) + log ⁡ ( 1 − p ) − y log ⁡ ( 1 − p ) ) = e x p ( y log ⁡ ( p 1 − p ) + log ⁡ ( 1 − p ) ) \begin{aligned} f(y;p)&=p^y\cdot (1-p)^{1-y}\\ &=exp(y\log(p)+(1-y)\log(1-p))\\ &=exp(y\log(p)+\log(1-p)-y\log(1-p))\\ &=exp(y\log(\frac{p}{1-p})+\log(1-p))\\ \end{aligned} f(y;p)=py(1p)1y=exp(ylog(p)+(1y)log(1p))=exp(ylog(p)+log(1p)ylog(1p))=exp(ylog(1pp)+log(1p))其中,令
{ η = log ⁡ ( p 1 − p ) ⇒ p = 1 1 + e − η α ( η ) = − log ⁡ ( 1 − p ) = log ⁡ ( 1 + e η ) b ( y ) = 1 \begin{cases} \eta=\log(\frac{p}{1-p})\quad \Rightarrow p=\frac{1}{1+e^{-\eta}}\\ \alpha(\eta)=-\log(1-p)=\log(1+e^\eta)\\ b(y)=1 \end{cases} η=log(1pp)p=1+eη1α(η)=log(1p)=log(1+eη)b(y)=1即可以得出伯努利分布属于指数族分布。

即伯努利分布满足广义线性模型的第一个假设,下面利用广义线性模型后面两个假设得到:
h θ ( x ) = E ( y ∣ x ; θ ) = p = 1 1 + e − η = 1 1 + e − θ T x h_\theta(x)=E(y|x;\theta)=p=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=E(yx;θ)=p=1+eη1=1+eθTx1


四、目标函数

假设训练集中有 m m m个样本,每个样本属于正类别的概率为 h θ ( x ) h_\theta(x) hθ(x),属于负类别的概率就是 1 − h θ ( x ) 1-h_\theta(x) 1hθ(x),在训练过程中,我们应该尽可能地使整个训练集的分类结果与这 m m m个样本的类别标记尽可能地一致。换句话说,我们要使训练样本集分类正确的似然函数最大(每个样本相互独立),而我们可以很容易地写出如下的似然函数:
L ( θ ) = ∏ i = 1 m h θ ( x i ) y ( i ) ( 1 − h θ ( x i ) ) 1 − y ( i ) L(\theta)=\prod_{i=1}^m h_\theta(x^i)^{y(i)}(1-h_\theta(x^i))^{1-y(i)} L(θ)=i=1mhθ(xi)y(i)(1hθ(xi))1y(i)其中 y ( i ) y(i) y(i)是训练集中第 i i i个样本已经被标记好的类别,若 y ( i ) y(i) y(i)为1.则上式的前半部分起作用,反之后半部分起作用。由于对 L ( θ ) L(\theta) L(θ)整体求 log ⁡ \log log,其极值点保持不变,因此 L ( θ ) L(\theta) L(θ)可以简化为:
l ( θ ) = ∏ i = 1 m y ( i ) log ⁡ ( h θ ( x i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x i ) ) l(\theta)=\prod_{i=1}^m y^{(i)}\log(h_\theta(x^i))+(1-y^{(i)})\log(1-h_\theta(x^i)) l(θ)=i=1my(i)log(hθ(xi))+(1y(i))log(1hθ(xi))接下来的任务是求相应 θ \theta θ的值,使得 l ( θ ) l(\theta) l(θ)取最大值。如果 l ( θ ) l(\theta) l(θ)对整体取负号即为Logistic回归的损失函数(loss function),相应地,应该求使 − l ( θ ) -l(\theta) l(θ)取最小值的 θ \theta θ

五、求解过程与正则化

一般采用梯度下降法进行求解,这里不再细说。

在实际应用中,为了防止过拟合,使得模型具有较强的泛化能力,往往还需要在目标函数中加入正则项。在逻辑回归的实际应用中,L1正则应用较为广泛,原因是在面临诸如广告系统等实际应用的场景,特征的维度往往达到百万级甚至上亿,而L1正则会产生稀疏模型,在避免过拟合的同时起到了特征选择的作用。

六、总结

优点:

  1. 简单易于实现。
  2. 逻辑回归可以输出一个[0,1]之间的浮点数,也就是不仅可以产生分类的类别,同时产生属于该类别的概率。
  3. 逻辑回归是连续可导的,易于最优化求解。

缺点:

  1. 容易过拟合
  2. 原始的逻辑回归只能处理两分类问题,且必须线性可分。

七、拓展

为什么逻辑回归使用交叉熵损失函数而不用均方误差?
参考链接: 为什么LR模型损失函数使用交叉熵不用均方差?.



如有错误,欢迎批评指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值