机器学习之逻辑回归

逻辑回归:解决分类问题

一、基本概念

1、什么是逻辑回归

逻辑回归在某些书中也被称为对数几率回归,明明被叫做回归,却用在了分类问题上,我个人认为这是因为逻辑回归用了和回归类似的方法来解决了分类问题。
假设有一个二分类问题,输出为y∈{0,1},而线性回归模型产生的预测值为z=wTx+b是实数值,我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化。

ϕ(z)={0if z < 00.5if z = 01if z > 0

然而该函数不连续,我们希望有一个单调可微的函数来供我们使用,于是便找到了Sigmoid function来替代。
ϕ(z)=11+ez

两者的图像如下图所示(图片出自文献2)
机器学习之逻辑回归
有了Sigmoid fuction之后,由于其取值在[0,1],我们就可以将其视为类1的后验概率估计p(y=1|x)。说白了,就是如果有了一个测试点x,那么就可以用Sigmoid fuction算出来的结果来当做该点x属于类别1的概率大小。
于是,非常自然地,我们把Sigmoid fuction计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0。
y^={1 p^0.50 p^0.5

即:
p^=σ(θTxb)=11+eθTxb

如果真实值y等于1,预测的p越小,花费越大;
如果真实值y等于0,预测的p越大,花费越大
y^={1 p^0.50 p^0.5   cost={y=1,p,costy=0,p,cost

可以对应log函数如下:
机器学习之逻辑回归

2、逻辑回归损失函数推导

为了方便计算,把两个log函数组合起来求解,即

cost=ylog(p^)(1y)log(1p^)J(θ)=1mi=1my(i)log(p^(i))+(1y(i))log(1p^(i))p^=σ(Xb(i)θ)=11+eXb(i)θJ(θ)=1mi=1my(i)log(σ(Xb(i)θ))+(1y(i))log(1σ(Xb(i)θ))

其中θ 是未知,找到一个θ,使得J(θ)达到最小值
这个损失函数没有公式解,又因为是凸函数,没有局部最优解,所以用梯度下降法求全局最优解。

3、梯度下降法求解

对上一个损失函数求导:
机器学习之逻辑回归
对Sigmoid求导

σ(t)=11+et=(1+et)1σ(t)=(1+et)2et(1)=(1+et)2et

log(σ(t))求导:
log(σ(t))=1σ(t)σ(t)=1σ(t)(1+et)2et=1(1+et)1(1+et)2et=(1+et)1et=et1+et=1+et11+et=111+et=1σ(t)

对损失函数的前半部分的θ求导:
机器学习之逻辑回归
对损失函数的后半部分的θ求导:
机器学习之逻辑回归

机器学习之逻辑回归
整体求导:
机器学习之逻辑回归

二、对比分析

1、逻辑回归的优缺点

优点:

  • 实现简单,广泛的应用于工业问题上;
  • 简单易于理解,直接看到各个特征的权重
  • 能容易地更新模型吸收新的数据
  • 对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题;

缺点:

  • 对数据和场景的适应能力有局限性,不如决策树算法适应性那么强。
  • 当特征空间很大时,逻辑回归的性能不是很好;
  • 容易欠拟合,一般准确度不太高
  • 不能很好地处理大量多类特征或变量;
  • 只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分,对于非线性特征,需要进行转换;
  • 使用前提: 自变量与因变量是线性关系。
    只是广义线性模型,不是真正的非线性方法。

2、与线性回归的区别

Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。
这一家族中的模型形式基本上都差不多,不同的就是因变量不同。这一家族中的模型形式基本上都差不多,不同的就是因变量不同。

如果是连续的,就是多重线性回归
如果是二项分布,就是Logistic回归
如果是Poisson分布,就是Poisson回归
如果是负二项分布,就是负二项回归