逻辑回归(Logistic Regression)

前言

上文《利用朴素贝叶斯进行分类》
上文的最后部分,通过对朴素贝叶斯公式:
P ( C 1 ∣ x ) = P ( x ∣ C 1 ) P ( C 1 ) ∑ i = 1 n P ( x ∣ C i ) ⋅ P ( C i ) P\left(\mathrm{C}_{1} | \mathrm{x}\right)=\frac{P\left(\mathrm{x} | \mathrm{C}_{1}\right) P\left(\mathrm{C}_{1}\right)}{\sum_{i=1}^{n} P\left(\mathrm{x} | C_{i}\right) \cdot P\left(C_{i}\right)} P(C1x)=i=1nP(xCi)P(Ci)P(xC1)P(C1)上下同除分子(考虑这样做的目的大概是为了后续带入高斯分布化简提供便利),将高斯分布带入到贝叶斯公式并进行化简,最终得到如下式子:
在这里插入图片描述
这也就是说,可以通过对贝叶斯公式的变形,并根据上面化简后的式子求出 w w w b b b,进行求出样本 x x x 属于某一类别的概率。
同时,这也代表还有另外一种计算 P ( C 1 ∣ x ) P(C_1|x) P(C1x)的方法——类似于线性回归中使用梯度下降直接求出 w w w b b b,分类问题是否同样可以不去考虑 N 1 , N 2 , μ 1 , μ 2 , Σ N_1,N_2,\mu_1,\mu_2,\Sigma N1,N2,μ1,μ2,Σ,而是对 w w w b b b 进行直接求解呢?
答案是肯定的。
这种方法就叫做逻辑斯蒂回归(Logistic Regression).

逻辑回归

既然要直接计算 w w w b b b,因此可以不用考虑两种类别服从不同的分布,而是考虑整体样本,统一使用 f w , b ( x ) f_{w, b}(x) fw,b(x)来表示整体样本服从的分布函数。假设有训练集如下图所示,那么所有样本均服从该分布的概率(极大似然估计的定义)也就是红色圈起来的部分:
在这里插入图片描述
我们的目标自然是: w ∗ , b ∗ = arg ⁡ max ⁡ w , b L ( w , b ) w^{*}, b^{*}=\arg \max _{w, b} L(w, b) w,b=argmaxw,bL(w,b)
这等价于: w ∗ , b ∗ = arg ⁡ min ⁡ w , b − ln ⁡ L ( w , b ) w^{*}, b^{*}=\arg \min _{w, b}-\ln L(w, b) w,b=argminw,blnL(w,b)

为什么使用自然对数函数 log ⁡ e ( L ) \log_e(L) loge(L)?我的理解是,这可以将乘法形式化为加法形式,便于推导。
如果将一个类别的输出值表示为 y ^ 1 = 1 \hat y_1=1 y^1=1,则另一个类别: y ^ 2 = 0 \hat y_2=0 y^2=0
那么两种不同类别便可以得到统一的表示形式(交叉熵,Cross Entropy):
C ( f ( x n ) , y ^ n ) = − [ y ^ n ln ⁡ f ( x n ) + ( 1 − y ^ n ) ln ⁡ ( 1 − f ( x n ) ) ] C\left(f\left(x^{n}\right), \hat{y}^{n}\right)=-\left[\hat{y}^{n} \ln f\left(x^{n}\right)+\left(1-\hat{y}^{n}\right) \ln \left(1-f\left(x^{n}\right)\right)\right] C(f(xn),y^n)=[y^nlnf(xn)+(1y^n)ln(1f(xn))]上面的式子其实可以理解为加权数。

在这里插入图片描述
因此
在这里插入图片描述
对于逻辑斯蒂回归的目标函数同样可以使用梯度下降求最佳的参数
因此关键在于求目标函数对两个参数 w w w b b b 的偏导
求导的重点在于利用链式法则,举个例子
∂ ln ⁡ f w , b ( x ) ∂ w i = ∂ ln ⁡ f w , b ( x ) ∂ z ∂ z ∂ w i \frac{\partial \ln f_{w, b}(x)}{\partial w_{i}}=\frac{\partial \ln f_{w, b}(x)}{\partial z} \frac{\partial z}{\partial w_{i}} wilnfw,b(x)=zlnfw,b(x)wiz
求偏微分后惊奇的发现,逻辑斯蒂回归中的 w w w b b b 竟然与线性回归中的完全一样!
amazing!
在这里插入图片描述
这也就意味着,我们可以使用相同的代码完成线性回归和逻辑斯蒂回归两种操作,需要改变的仅仅是模型 f w , b ( x ) f_{w,b}(x) fw,b(x)的函数——由简单的 ( w x + b ) (wx+b) (wx+b)套上个simoid函数,变为下式即可:
1 1 + e − ( w x + b ) \frac{1}{1+e^{-{(wx+b)}}} 1+e(wx+b)1
对于多分类问题,只需将sigmoid函数变为softmax函数,其模型如下:
在这里插入图片描述

生成模型和判别模型

生成模型利用数学计算得出概率的表达式,从而可以求出样本属于某类的概率;
判别模型是将所有类别统一用一个概率函数表示,利用梯度下降的方法使损失函数(负的极大似然估计)值最小化,从而得出最佳的 w w w b b b.
在这里插入图片描述
很多情况下,判别模型的效果都比生成模型好,这是因为生成模型是基于朴素贝叶斯的,它为了方便计算,默认不同特征之间条件独立,也就是说, P ( x ∣ C 1 ) = P ( x 1 ∣ C 1 ) ⋅ P ( x 2 ∣ C 1 ) P(x|C_1)=P(x_1|C_1)·P(x_2|C_1) P(xC1)=P(x1C1)P(x2C1),而事实上条件很可能是不独立的。

逻辑回归的不足

简单的逻辑回归不能解决线性不可分的分类,下面是一个“异或”的例子
在这里插入图片描述
左图中,“异或”被表示在坐标系中,红色和蓝色分别代表不同的两个类别,可以看到,无论如何,都无法用一条直线将红色与蓝色完全隔离成两部分。
右图是对左图的线性变换,是点 x x x乘上一个矩阵的结果。此时,横纵坐标相同的点(类别零)均被映射到了 [ 1   1 ] T \left[1\ 1\right]^T [1 1]T的点,这时的类别一与类别零显然可以被一条直线分隔。
将线性不可分的数据,通过多层的逻辑回归(隐藏层)做特征转换,在最后即可输出为正确的分类。
在这里插入图片描述
神经网络,深度学习!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值