Logistic回归算法


源码传送门

5.1Logistic回归

k k k元分类问题中,对任意样本 x ∈ X x\in X xX D x D_x Dx x x x的标签分布。监督式学习的任务是对给定样本 x x x预测 E y D x [ y ] E_{y D_x}[y] EyDx[y] E y D x [ y ] E_{y D_x}[y] EyDx[y]的第 i i i个分量为对象属于第 i i i个类别的概率。可见分类问题的监督式学习任务是对给定的特征组 x x x预测对象属于每一个类别的概率。
对于概率问题和普通的回归最大的区别在于,概率值只能在 P r ∈ [ 0 , 1 ] Pr\in[0,1] Pr[0,1],所以一般情况都会使用sigmoid函数作为Logistic模型。
Logistic模型取定特征组 x ∈ R n x\in\mathbb{R^n} xRn,称模型
h w ( x ) = s i g o m i d ( < w , x > ) = 1 1 + e − < w , x > h_w(x)=sigomid(<w,x>)=\frac{1}{1+e^{-<w,x>}} hw(x)=sigomid(<w,x>)=1+e<w,x>1
为一个Logistic模型。
下面是sigomid函数图像
在这里插入图片描述
模型的损失函数采用对数损失函数,对任意 y = ( y 1 , y 2 , . . . , y k ) , z = ( z 1 , z 2 , . . . , z k ) ∈ [ 0 , 1 ] k y=(y_1,y_2,...,y_k),z=(z_1,z_2,...,z_k)\in[0,1]^k y=(y1,y2,...,yk),z=(z1,z2,...,zk)[0,1]k。(y为真实值,z为预测值, [ 0 , 1 ] k [0,1]^k [0,1]k表示k维每个维度的值在[0,1]之间)
l ( y , z ) = − ∑ t = 1 k y t l o g z t l(y,z)=-\sum_{t=1}^{k}y_tlogz_t l(y,z)=t=1kytlogzt
这里查到的解释是,均方误差损失函数会使优化问题变得非凸,最后有多的局部最优解。
对于特殊的二元分类问题可以化简表示为
l ( y , h w ( x ) ) = y l o g ( 1 + e − < w , x > ) + ( 1 − y ) l o g ( 1 + e < w , x > ) l(y,h_w(x))=ylog(1+e^{-<w,x>})+(1-y)log(1+e^{<w,x>}) l(y,hw(x))=ylog(1+e<w,x>)+(1y)log(1+e<w,x>)

Logistic回归
输入: m m m条训练数据 S = { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) } S=\{(x^{(1) },y^{(1)}),(x^{(2) },y^{(2)}),...,(x^{(m) },y^{(m)}) \} S={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}
输出:Logistic模型 h w ∗ ( x ) = 1 1 + e − < w ∗ , x > h_{w^*}(x)=\frac{1}{1+e^{-<w^*,x>}} hw(x)=1+e<w,x>1,使得 w ∗ ∈ R n w^*\in\mathbb{R^n} wRn为如下优化问题的最优解
m i n w ∈ R n ∑ i = 1 m 1 m [ y ( i ) l o g ( 1 + e − < w , x ( i ) > ) + ( 1 − y ( i ) ) l o g ( 1 + e < w , x ( i ) > ) ] \underset{w\in \mathbb{R^n}}{min}\sum_{i=1}^m{\frac1m} [ y^{(i)}log(1+e^{-<w,x^{(i)}>}) + (1-y^{(i)})log(1+e^{<w,x^{(i)}>}) ] wRnmini=1mm1[y(i)log(1+e<w,x(i)>)+(1y(i))log(1+e<w,x(i)>)]

模型的优化目标函数称为交叉熵
如果标签分布是伯努利分布,用 Y Y Y表示标签的随机变量,则 Y Y Y有如下参数化形式
P w ( Y = y ) = { h w ( x ) 如果 y = 1 1 − h w ( x ) 如果 y = 0 P_w(Y=y)= \begin{cases} h_w(x) & 如果y=1 \\ 1-h_w(x) & 如果y=0 \\ \end{cases} Pw(Y=y)={hw(x)1hw(x)如果y=1如果y=0
上式等价于 P w ( Y = y ) = h w ( x ) y ( 1 − h w ( x ) 1 − y ) P_w(Y=y)=h_w(x)^y(1-h_w(x)^{1-y}) Pw(Y=y)=hw(x)y(1hw(x)1y)
然后最大似然函数为
L i k e ( w ∣ y ( 1 ) , y ( 2 ) , ⋯   , y ( m ) ) = ∏ i = 1 m p w ( Y = y ( i ) ) = ∏ i = 1 m h w ( x ( i ) ) y ( i ) ( 1 − h w ( x ( i ) ) ( 1 − y ( i ) ) ) Like(w|y^{(1)},y^{(2)}, \cdots ,y^{(m)}) =\prod_{i=1}^mp_w(Y=y^{(i)}) = \prod_{i=1}^mh_w(x^{(i)})^{y^{(i)}}(1-h_w(x^{(i)})^{(1-y^{(i)}})) Like(wy(1),y(2),,y(m))=i=1mpw(Y=y(i))=i=1mhw(x(i))y(i)(1hw(x(i))(1y(i)))
取对数即可得到
∑ i = 1 m 1 m [ y ( i ) l o g ( 1 + e − < w , x ( i ) > ) + ( 1 − y ( i ) ) l o g ( 1 + e < w , x ( i ) > ) ] \sum_{i=1}^m{\frac1m} [ y^{(i)}log(1+e^{-<w,x^{(i)}>}) + (1-y^{(i)})log(1+e^{<w,x^{(i)}>}) ] i=1mm1[y(i)log(1+e<w,x(i)>)+(1y(i))log(1+e<w,x(i)>)]
乘以-1/m即为交叉熵。这是交叉熵的统计意义,交叉熵是信息论中的概念还有别的解释
这里对于模型中 < w , x > <w,x> <w,x>采用线性或者质数及其他何种形式,有一个指数分布族作为指导,但是我实在看不懂。

5.2 Logistic回归优化算法

优化求解方法和前面一样的方法求梯度然后梯度下降
∇ l ( y , h w ( x ) ) = − y x e − < w , x > 1 + e − < w , x > + ( 1 − y ) x e < w , x > 1 + e < w , x > = x ( h w ( x ( i ) ) − y ( i ) ) \nabla l(y,h_w(x))=-yx\frac{e^{-<w,x>}}{1+e^{-<w,x>}} + (1-y)x\frac{e^{<w,x>}}{1+e^{<w,x>}}=x(h_w(x^{(i)})-y^{(i)}) l(y,hw(x))=yx1+e<w,x>e<w,x>+(1y)x1+e<w,x>e<w,x>=x(hw(x(i))y(i))
X X X为mn矩阵,Y为m1矩阵, h w ( x ) h_w(x) hw(x)为m*1矩阵
最终 ∇ F ( w ) = 1 m X T ( h w ( X ) − y ) \nabla F(w)=\frac1mX^T(h_w(X)-y) F(w)=m1XT(hw(X)y)

5.3 分类问题的度量

5.3.1 准确率,精确率与召回率

首先是一个用来表示用的示性函数 1 { } : { T r u e , F a l s e } → { 0 , 1 } 1\{\}:\{True,False\}\rightarrow\{0,1\} 1{}:{True,False}{0,1}定义为
1 { T r u e } = 1 , 1 { F a l s e } = 0 1\{True\}=1,1\{False\}=0 1{True}=1,1{False}=0
示性函数就是布尔值到0,1整数的映射。
准确率
A c c u r a c y T ( h ) = ∑ i = 1 m 1 { h ( x ( i ) ) = y ( i ) } m Accuracy_T(h)=\frac{\sum_{i=1}^m1\{h(x^{(i)})=y^{(i)}\}}{m} AccuracyT(h)=mi=1m1{h(x(i))=y(i)}
准确率的计算可以解释为,预测结果正确的概率
对于二元分类问题还有如下的两种度量方法
先说明一下几个符号的含义:
如果 y = 1 y=1 y=1 h ( x ) = 1 h(x)=1 h(x)=1,则称该预测为真正(True positive)
如果 y = 0 y=0 y=0 h ( x ) = 1 h(x)=1 h(x)=1,则称该预测为假正(False positive)
如果 y = 0 y=0 y=0 h ( x ) = 0 h(x)=0 h(x)=0,则称该预测为真负(True negative)
如果 y = 1 y=1 y=1 h ( x ) = 0 h(x)=0 h(x)=0,则称该预测为假负(False negative)
精确率
P r e c i s i o n T ( h ) = T P T P + F P Precision_T(h)=\frac{TP}{TP+FP} PrecisionT(h)=TP+FPTP
预测出的正样本中预测正确的概率
召回率
R e c a l l T ( h ) = T P T P + F N Recall_T(h)=\frac{TP}{TP+FN} RecallT(h)=TP+FNTP
正样本中被预测出的概率
在使用阈值分类时,可以通过设置阈值可以改变精确率和召回率,一般来说,精确率和召回率的关系是,精确率越高,召回率越低。
调和平均值
F 1 ( h ) = 1 1 P r e c i s i o n ( h ) + 1 R e c a l l ( h ) F_1(h)=\frac{1}{\frac{1}{Precision(h)} + \frac{1}{Recall(h)}} F1(h)=Precision(h)1+Recall(h)11
F1作为衡量指标时,平衡了精确率和召回率的影响。
但是考虑两种情况,例如对飞机零件的合格性检验就需要用精确率,因为我们希望预测出的好的零件都是符合标准的。例如在疫情核酸检测的检验标准是召回率,我们希望所有的病例都被找到。两种情况分别是两个极端,找到的都是好的,和好的都被找到。

5.3.2 ROC曲线及AUC度量

ROC曲线的纵坐标和横坐标分别是:
真正率 / T P R = T P T P + F N , 假正率 / F P R = F P F P + T N 真正率/TPR=\frac{TP}{TP+FN},假正率/FPR=\frac{FP}{FP+TN} 真正率/TPR=TP+FNTP,假正率/FPR=FP+TNFP
通过选取不同的阈值就会得到下图ROC曲线
在这里插入图片描述
AUC度量:ROC曲线下方的面积
面积越接近于1说明效果越好。
曲线左上方的拐点处所对应的阈值一般来说就是所需要的。
对左上方拐点处可以解释为,负样本在预测为正样本概率很小的情况下,正样本被预测正确的概率很高。

5.4 Softmax回归(二元分类到k元分类推广)

5.4.1 Softmax回归概念

Logistic回归主要是解决的二元分类问题,最后的结果可以描述为为是类型A的概率和不是类型A的概率。但是没法进行多分类。
而实际上只需要多拟合几个模型就能进行多元分类,比如有ABC三类数据进行分类,至于要用Logistic模型拟合,A非A、B非B、C非C就能实现多分类。Softmax回归事实上也是用了这种方法。
Softmox模型 W W Wn*k矩阵
h w ( x ) = ( e < w 1 , x > ∑ t = 1 k e < w t , x > , e < w 2 , x > ∑ t = 1 k e < w t , x > , . . . , e < w k , x > ∑ t = 1 k e < w t , x > ) h_w(x)=(\frac{e^{<w_1,x>}}{\sum_{t=1}^ke^{<w_t,x>}},\frac{e^{<w_2,x>}}{\sum_{t=1}^ke^{<w_t,x>}},...,\frac{e^{<w_k,x>}}{\sum_{t=1}^ke^{<w_t,x>}}) hw(x)=(t=1ke<wt,x>e<w1,x>,t=1ke<wt,x>e<w2,x>,...,t=1ke<wt,x>e<wk,x>)

Softmax回归
输入: m m m条训练数据 S = { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) } S=\{(x^{(1) },y^{(1)}),(x^{(2) },y^{(2)}),...,(x^{(m) },y^{(m)}) \} S={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}
输出:Softmax模型 h w ∗ h_{w^*} hw,使得 W ∗ = ( w 1 ∗ , w 2 ∗ , . . . , w k ∗ ) W^*=(w_1^*,w_2^*,...,w_k^*) W=(w1,w2,...,wk)为如下优化问题的最优解
m i n w ∈ R n ∗ k F ( W ) = − 1 m ∑ i = 1 m < y ( i ) , l o g h w ( x ( i ) ) > \underset{w\in \mathbb{R^{n*k}}}{min}F(W)=-\frac1m\sum_{i=1}^m<y^{(i)},logh_w(x^{(i)})> wRnkminF(W)=m1i=1m<y(i),loghw(x(i))>

5.4.2 Softmax回归优化算法

Softmax回归的梯度计算用到对矩阵理解要求较高,并且比较复杂。
这里直接给结果
∇ F ( w ) = 1 m X T ( h w ( X ) − y ) \nabla F(w)=\frac1mX^T(h_w(X)-y) F(w)=m1XT(hw(X)y)
没错和Logistic回归完全一样,只是数据矩阵在维数上不一样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喂★借个微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值