Logistic 回归算法,又叫做逻辑回归算法,或者 LR 算法(Logistic Regression)。用于解决分类问题。在机器学习中,Logistic 函数通常用来解决二元分类问题,也就是涉及两个预设类别的问题,而当类别数量超过两个时就需要使用 Softmax 函数来解决。
基础概念
分类问题与回归问题
分类问题:预测样本属于哪个或者哪些预定义的类别,其输出值是离散值。如下图,给定一个样本,可以判断其是‘dog’还是‘cat’。
回归问题:用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值也随之发生变化,其输出数据是连续值。如下图,可以根据拟合出来的直线对占地面积的某一个值进行价格的预测。
Sigmoid函数
sigmoid函数,又称为Logistic 曲线,是一个线性函数,由统计学家皮埃尔·弗朗索瓦·韦吕勒发明,其函数表达式如下:
y = 1 1 + e − z y = \frac{1}{1+e^{-z} } y=1+e−z1
函数图像如下:
从图像上看,对于 Logistic 函数而言,x = 0 是一个有着特殊意义坐标,越靠近 0 和越远离 0 会出现两种截然不同的情况:任何y > 0.5 的数据可以划分到 “1”类中;而y < 0.5 的数据可以划分到 “0”类。因此可以把 Logistic 看做解决二分类问题的分类器。如果想要 Logistic 分类器预测准确,那么 x 的取值距离 0 越远越好,这样结果值才能无限逼近于 0 或者 1。
接下来通过两幅图像来解释为什么需要让x离0越远越好。
将sigmoid图像x的取值缩小范围至[-0.6 , 0.6]可获得如下的图像:
将sigmoid的x取值扩大范围至[-60, 60]可以获得如下图像:
通过对比两幅图像,我们可以发现,当x取值比较小时,sigmoid函数与线性模型无异;当x取值大起来,我们发现sigmoid函数呈现的是一个阶梯式图像,这对我们的二分类来说简直不要太妙。这也就是为什么要采用logistic进行二分类的原因。
基于最优化方法的最佳回归系数确定
问题引出
通过上面的描述,我们发现,为了实现logistic回归分类,我们可以在每一个特征上乘以一个回归系数,然后把相乘的结果累加,代入sigmoid函数中就可以得到一个在[ 0,1 ]范围的值y,我们就可以通过判别y的值来实现分类。(例:y > 0.5为1类,y < 0.5为0类 )
公式描述:
z = w T x + b z =\mathbf{ w^{T}x} +b z=wTx+b
z:分类特征与回归系数计算值
w:回归系数矩阵(最佳系数) - ->待求
x:分类的输入数据
b:转置向量(常数) - ->待求
y = 1 1 + e − z y = \frac{1}{1+e^{-z} } y=1+e−z1
带入z可得:
y = 1 1 + e w T x + b y = \frac{1}{1+e^{\mathbf{ w^{T}x} +b} } y=1+ewTx+b1
由上式可以做出以下假设
y:样本x作为正例的可能性
1 - y:样本x作为反例的可能性
y /(1 - y):几率,反映了x作为正例的相对可能性
由于y的函数有分式和指数e的,所以我们采用对数函数对其进行一种映射:
ln y 1 − y = ln p ( y = 1 ∣ x ) p ( y = 0 ∣ x ) = w T x + b \ln_{}{\frac{y}{1-y} } = \ln_{}{\frac{p(y=1|x)}{p(y=0|x)} }=\mathbf{ w^{T}x} +b ln1−yy=lnp(y=0∣x)p(y=1∣x)=wTx+b
p ( y = 1 ∣ x ) = w T x + b 1 + w T x + b p(y=1|x)=\frac{\mathbf{ w^{T}x} +b}{1+\mathbf{ w^{T}x} +b} p(y=1∣x)=1+wTx+bwTx+b
p ( y = 0 ∣ x ) = 1 1 + w T x + b p(y=0|x)=\frac{1}{1+\mathbf{ w^{T}x} +b} p(y=0∣x)=1+