机器学习之逻辑回归(logistics regression)原理推导和决策边界

提要:逻辑回归虽然名字里面有回归,但是主要用来解决分类问题。

线性回归(Linear Regression)

线性回归的表达式:
f ( x ) = w T + b f(x)=w^T+b f(x)=wT+b

线性回归对于给定的输入 x x x ,输出的是一个数值 y ,因此它是一个解决回归问题的模型。
为了消除掉后面的常数项b,我们可以令 x ′ = [ 1 x ] T x'=[1\quad x]^T x=[1x]T,同时 w ′ = [ b w ] T w'=[b \quad w]^T w=[bw]T ,也就是说给x多加一项而且值恒为1,这样b就到了w里面去了,直线方程可以化简成为:
f ( x ′ ) = w ′ T x ′ f(x')=w'^Tx' f(x)=wTx

在接下来的文章中为了方便,我们所使用的 w , x w, x w,x 其实指代的是 w ′ , x ′ w',x' w,x

分类问题(Classification)

二分类问题就是给定的输入 x x x,判断它的标签是A类还是非A类。二分类问题是最简单的分类问题。我们可以把多分类问题转化成一组二分类问题.
因此,解决了二分类问题,相当于解决了多分类问题。

如何用连续的数值去预测离散的标签值呢?

线性回归的输出是一个数值,而不是一个标签,显然不能直接解决二分类问题。那我如何改进我们的回归模型来预测标签呢?

一个最直观的办法就是设定一个阈值,比如0,如果我们预测的数值 y > 0 ,那么属于标签A,反之属于标签B,采用这种方法的模型又叫做感知机(Perceptron)。

另一种方法,我们不去直接预测标签,而是去预测标签为A概率,我们知道概率是一个[0,1]区间的连续数值,那我们的输出的数值就是标签为A的概率。一般的如果标签为A的概率大于0.5,我们就认为它是A类,否则就是B类。这就是我们的这次的主角逻辑回归模型 (Logistics Regression)。

逻辑回归(logistics regression)

明确了预测目标是标签为A的概率。
概率是属于[0,1]区间。但是线性模型 f ( x ) = w T x f(x)=w^Tx f(x)=wTx 值域是 ( − ∞ , + ∞ ) (-\infty, +\infty) (,+)。我们不能直接基于线性模型建模。需要找到一个模型的值域刚好在[0,1]区间,同时要足够好用。
于是,选择了我们的sigmoid函数。
它的表达式为: σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1 + e^{-x}} σ(x)=1+ex1
它的图像:在这里插入图片描述
我们结合sigmoid函数,线性回归函数,把线性回归模型的输出作为sigmoid函数的输入。于是最后就变成了逻辑回归模型:

y = σ ( f ( x ) ) = σ ( w T x ) = 1 1 + e − w T x y=\sigma(f(x))=\sigma(w^Tx)=\frac{1}{1 + e^{-w^Tx}} y=σ(f(x))=σ(wTx)=1+ewTx1

假设我们已经训练好了一组权值 w T w^T wT。只要把我们需要预测的 x x x 代入到上面的方程,输出的y值就是这个标签为A的概率,我们就能够判断输入数据是属于哪个类别。

逻辑回归(二分类)LR的损失函数

损失函数就是用来衡量模型的输出与真实输出的差别。
假设只有两个标签1和0, y n ∈ { 0 , 1 } y_n \in \{0, 1\} yn{0,1}。我们把采集到的任何一组样本看做一个事件的话,那么这个事件发生的概率假设为 p p p 。我们的模型y的值等于标签为1的概率也就是 p p p 。为标签不是1就是0,因此标签为0的概率就是 1 − p 1-p 1p.我们把单个样本看做一个事件,那么这个事件发生的概率就是:
P ( y i ∣ x i ) = p y i ( 1 − p ) 1 − y i P(y_i|x_i)=p^{y_i}(1-p)^{1-y_i} P(yixi)=pyi(1p)1yi

如果我们采集到了一组数据一共N个, { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x N , y N ) } \{(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_N,y_N)\} {(x1,y1),(x2,y2),(x3,y3),...,(xN,yN)},这个合成在一起的合事件发生的总概率怎么求呢?其实就是将每一个样本发生的概率相乘就可以了,即采集到这组样本的概率:
P 总 = P ( y 1 ∣ x 1 ) P ( y 2 ∣ x 2 ) P ( y 3 ∣ x 3 ) P ( y N ∣ x N ) = ∏ n = 1 N p y n ( 1 − p ) 1 − y n P_总=P(y_1|x_1)P(y_2|x_2)P(y_3|x_3)P(y_N|x_N)=\prod_{n=1}^{N}p^{y_n}(1-p)^{1-y_n} P=P(y1x1)P(y2x2)P(y3x3)P(yNxN)=n=1Npyn(1p)1yn

注意 P 总 P_总 P是一个函数,并且未知的量只有 w w w(在p里面)。

由于连乘很复杂,我们通过两边取对数来把连乘变成连加的形式,即:

F ( w ) = l n ( P 总 ) = l n ( ∏ n = 1 N p y n ( 1 − p ) 1 − y n ) = ∑ n = 1 N l n ( p y n ( 1 − p ) 1 − y n ) = ∑ n = 1 N y n l n ( p ) + ( 1 − y n ) l n ( 1 − p ) F(w)=ln(P_总)=ln(\prod_{n=1}^{N}p^{y_n}(1-p)^{1-y_n}) = \sum_{n=1}^Nln(p^{y_n}(1-p)^{1-y_n}) =\sum_{n=1}^Ny_nln(p)+(1-y_n)ln(1-p) F(w)=ln(P)=ln(n=1Npyn(1p)1yn)=n=1Nln(pyn(1p)1yn)=n=1Nynln(p)+(1yn)ln(1p)

其中 p = 1 1 + e − w T x p=\frac{1}{1+e^{-w^Tx}} p=1+ewTx1

这个函数 F ( w ) F(w) F(w) 又叫做它的损失函数.损失函数可以理解成衡量我们当前的模型的输出结果,跟实际的输出结果之间的差距的一种函数。这里的损失函数的值等于事件发生的总概率,我们希望它越大越好。但是跟损失的含义有点儿违背,因此也可以在前面取个负号。

最大似然估计MLE(Maximum Likelihood Estimation)

我们只能知道一个样本它实际的标签是1还是0。那么我们如何估计参数 w w w跟b的值呢?

最大似然估计MLE(Maximum Likelihood Estimation),就是一种估计参数 w w w的方法。在这里如何使用MLE来估计 w w w呢?

在上一节,我们知道损失函数 F ( w ) F(w) F(w)是正比于总概率 P 总 P_总 P的,而 F ( w ) F(w) F(w)又只有一个变量 w w w 。也就是说,通过改变 w w w 的值,就能得到不同的总概率值 P 总 P_总 P。那么当我们选取的某个 w ∗ w^* w 刚好使得总概率 P 总 P_总 P 取得最大值的时候。我们就认为这个 w ∗ w^* w 就是我们要求得的 w w w的值,这就是最大似然估计的思想。

现在我们的问题变成了,找到一个 w ∗ w^* w ,使得我们的总事件发生的概率,即损失函数 F ( w ) F(w) F(w)取得最大值,这句话用数学语言表达就是:
w ∗ = arg ⁡ max ⁡ w F ( w ) = − arg ⁡ min ⁡ w F ( w ) w^*=\mathop{\arg\max}_{w} F(w)=-\mathop{\arg\min}_{w}F(w) w=argmaxwF(w)=argminwF(w)

F ( w ) F(w) F(w)的梯度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逻辑回归的可解释性

逻辑回归最大的特点就是可解释性很强。

在模型训练完成之后,我们获得了一组n维的权重向量 w w w 跟偏差 b。

对于权重向量 w w w,它的每一个维度的值,代表了这个维度的特征对于最终分类结果的贡献大小。假如这个维度是正,说明这个特征对于结果是有正向的贡献,那么它的值越大,说明这个特征对于分类为正起到的作用越重要。

对于偏差b (Bias),一定程度代表了正负两个类别的判定的容易程度。假如b是0,那么正负类别是均匀的。如果b大于0,说明它更容易被分为正类,反之亦然。

根据逻辑回归里的权重向量在每个特征上面的大小,就能够对于每个特征的重要程度有一个量化的清楚的认识,这就是为什么说逻辑回归模型有着很强的解释性的原因。

决策边界

逻辑回归的决策边界是否是线性的,相当于问曲线:
在这里插入图片描述
是不是的线性的,我们可以稍微化简一下上面的曲线公式,得到:
在这里插入图片描述
我们得到了一个等价的曲线,显然它是一个超平面(它在数据是二维的情况下是一条直线)。

总结

逻辑回归模型:

y = σ ( f ( x ) ) = σ ( w T x ) = 1 1 + e − w T x y=\sigma(f(x))=\sigma(w^Tx)=\frac{1}{1 + e^{-w^Tx}} y=σ(f(x))=σ(wTx)=1+ewTx1

其中我们不知道的量是 w w w ,假设我们已经训练好了一个 w ∗ w^* w , 我们用模型来判断 x i x_i xi 的标签呢?很简单,直接将 x i x_i xi 代入y中,求出来的值就是 x i x_i xi 的标签是1的概率,如果概率大于0.5,那么我们认为它就是1类,否则就是0类。

那怎么得到 w ∗ w^* w呢?
因为逻辑回归的损失函数L是一个连续的凸函数(conveniently convex)。这样的函数的特征是,它只会有一个全局最优的点,不存在局部最优。
如果采用随机梯度下降法的话,我们首先随机产生一个 w w w的初始值 w 0 w_0 w0 ,然后通过公式不断迭代从而求得 w ∗ w^* w的值:
在这里插入图片描述
每次迭代都从所有样本中随机抽取一个 ( x i , y i ) (x_i,y_i) (xi,yi)来代入上述方程。

LR和线性回归的区别

线性回归用来做预测,LR用来做分类。
线性回归是来拟合函数,LR是来预测函数。
线性回归用最小二乘法来计算参数。LR用最大似然估计来计算参数。
线性回归更容易受到异常值的影响,而LR对异常值有较好的稳定性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值