逻辑回归(Logistic Regression)

逻辑回归(Logistic Regression)

1 变量表

符号含义
m m m训练集样本数量
n n n特征数量
( x ( i ) , y ( i ) ) ({{x}^{(i)}},{{y}^{(i)}}) (x(i),y(i))训练集中第 i i i个样本, y ( i ) ∈ { 1 , 0 } {y}^{(i)}\in{\{1,0\}} y(i){1,0}
x ( i ) {x}^{(i)} x(i) i i i个输入值
y ^ ( i ) \hat{y}^{(i)} y^(i) i i i个输出值
x j ( i ) {x}^{(i)}_j xj(i) i i i个输入值的第 j j j个特征
h h h假设函数

2 逻辑回归模型

在这里插入图片描述

图1 逻辑回归模型

图1中, h h h代表 h y p o t h e s i s hypothesis hypothesis 假设(📑在机器学习中一般这么叫,andrew觉得不太好听~),它一般是模型输入的函数,在二分类逻辑回归模型中, h h h的表达方式为 :
{ h θ ( x ( i ) ) = g ( z ) = 1 1 + e − z z = θ T x ( i ) (1) \begin{cases} h_{\theta} (x^{(i)})=g(z)=\frac{1}{1+{{e}^{-z}}}\\ z=\theta^Tx^{(i)} \end{cases} \tag{1} {hθ(x(i))=g(z)=1+ez1z=θTx(i)(1)

其中,
θ = [ θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n ] T x ( i ) = [ x ( 0 ) , x ( 1 ) , ⋅ ⋅ ⋅ , x ( n ) ] T \begin{aligned} \theta &=[\theta_{0},\theta_{1},···,\theta_{n}]^T\\ x^{(i)}&=[x^{(0)},x^{(1)},···,x^{(n)}]^T \end{aligned} θx(i)=[θ0,θ1,,θn]T=[x(0),x(1),,x(n)]T

θ 0 , θ 1 , ⋅ ⋅ ⋅ , θ n \theta_0, \theta_1 ,···,\theta_n θ0,θ1,,θn模型参数 x 0 ( i ) x_{0}^{(i)} x0(i)规定为1。 g ( z ) g(z) g(z)如图2所示:

在这里插入图片描述

图2

实际上, h θ ( x ( i ) ) h_{\theta} (x^{(i)}) hθ(x(i))的作用是对于给定的输入变量 x ( i ) x^{(i)} x(i),根据选择的参数计算输出变量 y ^ ( i ) = 1 \hat{y}^{(i)}=1 y^(i)=1的可能性(estimated probablity)即:
h θ ( x ( i ) ) = P ( y ^ ( i ) = 1 ∣ x ( i ) ; θ ) (2) h_\theta \left( x^{(i)} \right)=P\left( \hat{y}^{(i)}=1|x^{(i)};\theta \right)\tag{2} hθ(x(i))=P(y^(i)=1x(i);θ)(2)

判定边界 0.5 0.5 0.5时,模型输出表达式为:
y ^ ( i ) = { 1 , h θ ( x ( i ) ) ≥ 0.5    ( θ T x ( i ) ≥ 0 ) 0 , h θ ( x ( i ) ) < 0.5    ( θ T x ( i ) < 0 ) (3) \hat{y}^{(i)}= \begin{cases} 1,h_{\theta} (x^{(i)})\ge0.5\ \ (\theta^Tx^{(i)}\ge0)\\ 0,h_{\theta} (x^{(i)})< 0.5\ \ (\theta^Tx^{(i)}< 0) \end{cases}\tag{3} y^(i)={1,hθ(x(i))0.5  (θTx(i)0)0,hθ(x(i))<0.5  (θTx(i)<0)(3)

3 代价函数(Cost Function)

建模误差,指的是模型输出值(预测或估计值)与训练集中实际值之间的差距,即:
e r r o r = y ^ ( i ) − y ( i ) (4) error=\hat{y}^{(i)}-y^{(i)}\tag{4} error=y^(i)y(i)(4)

考虑模型所有的输出值与实际值的差距,通常用代价函数来综合评估建模误差逻辑回归模型的代价函数表达式一般为:
{ J ( θ ) = 1 m ∑ i = 1 m c o s t ( y ^ ( i ) , y ( i ) ) c o s t ( y ^ ( i ) , y ( i ) ) = − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) (5) \begin{cases} J ( \theta) = \frac{1}{m}\sum\limits_{i=1}^m cost(\hat{y}^{(i)},y^{(i)}) \\ cost(\hat{y}^{(i)},y^{(i)})=-{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right) \tag{5} \end{cases} J(θ)=m1i=1mcost(y^(i),y(i))cost(y^(i),y(i))=y(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))(5)

c o s t ( y ^ ( i ) , y ( i ) ) cost(\hat{y}^{(i)},y^{(i)}) cost(y^(i),y(i)) h θ ( x ( i ) ) h_\theta\left( {{x}^{(i)}} \right) hθ(x(i))的变化情况如图3所示:
在这里插入图片描述

图3

由图3可知:
  当实际的 y ( i ) = 1 y^{(i)}=1 y(i)=1 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ(x(i))也为 1 时误差为 0,当 y ( i ) = 1 y^{(i)}=1 y(i)=1 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ(x(i))不为1时误差随着 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ(x(i))变小而变大。
  当实际的 y ( i ) = 0 y^{(i)}=0 y(i)=0 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ(x(i))也为 0 时代价为 0,当 y ( i ) = 0 y^{(i)}=0 y(i)=0 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ(x(i))不为 0时误差随着 h θ ( x ( i ) ) {h_\theta}( x ^{(i)}) hθ(x(i))变大而变大。

n = 1 n=1 n=1时, J ( θ 0 , θ 1 ) J (\theta_0, \theta_1) J(θ0,θ1)示意如图4所示:
在这里插入图片描述

图4 n=1时损失函数示意图

4 求解模型参数

求解模型参数的过程可以表示为无约束最优化问题,即:
m i n θ ∈ R n J ( θ ) (6) \mathop{min}\limits_{\theta \in R^n}J(\theta) \tag{6} θRnminJ(θ)(6)
故, θ = a r g m i n θ ∈ R n J ( θ ) \theta=arg \mathop{min}\limits_{\theta \in R^n}J(\theta) θ=argθRnminJ(θ)

4.1 梯度下降(Gradient Descent)

梯度下降是一个用来求函数最小值的方法,该方法通过不断的迭代模型参数,使得目标函数(这里即为代价函数 J J J)达到局部最小值。

梯度下降的迭代公式为:
{ θ 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ ) θ 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ ) ⋅ ⋅ ⋅ θ n : = θ n − α ∂ ∂ θ n J ( θ ) (7) \begin{cases} {\theta_{0}}:={\theta_{0}}-\alpha \frac{\partial }{\partial {\theta_{0}}} J(\theta) \\ {\theta_{1}}:={\theta_{1}}-\alpha \frac{\partial }{\partial {\theta_{1}}} J(\theta) \\···\\{\theta_{n}}:={\theta_{n}}-\alpha \frac{\partial }{\partial {\theta_{n}}} J(\theta) \end{cases}\tag{7} θ0:=θ0αθ0J(θ)θ1:=θ1αθ1J(θ)θn:=θnαθnJ(θ)(7)

其中, α \alpha α称为学习率 ∂ ∂ θ j J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial }{\partial {\theta_{j}}}J(\theta)=\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{j}^{(i)} θjJ(θ)=m1i=1m(hθ(x(i))y(i))xj(i)
( 7 ) (7) (7)写成矩阵形式为:
θ : = θ − α ∇ J ( θ ) (8) \theta:=\theta-\alpha \nabla J(\theta) \tag{8} θ:=θαJ(θ)(8)
其中, ∇ J ( θ ) = [ ∂ ∂ θ 0 J ( θ ) , ∂ ∂ θ 1 J ( θ ) , ⋅ ⋅ ⋅ , ∂ ∂ θ n J ( θ ) ] T \nabla J(\theta)=[\frac{\partial }{\partial {\theta_{0}}}J(\theta),\frac{\partial }{\partial {\theta_{1}}}J(\theta),···,\frac{\partial }{\partial {\theta_{n}}}J(\theta)]^T J(θ)=[θ0J(θ),θ1J(θ),,θnJ(θ)]T

参数可取方法
模型参数初始值随机选取
学习率 0.01 → 0.03 → 0.1 → ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 0.01\rightarrow0.03\rightarrow0.1\rightarrow······ 0.010.030.1
迭代停止条件代价函数收敛

判断代价函数 J ( θ ) J(\theta) J(θ)收敛的办法一般为画出“代价函数值——迭代次数”图,如图5所示。即每进行一次式 ( 7 ) (7) (7)的计算,便进行一次式 ( 5 ) (5) (5)的计算。
在这里插入图片描述

图5 损失函数值随迭代次数变化示意图

4.2 其他算法

共轭梯度法、BFGS(变尺度法)、L-BFGS(限制变尺度法)······

5 一对多(one-vs-all)

y ( i ) ∈ { 1 , 0 } → y ( i ) ∈ { 1 , 2 , 3 , ⋅ ⋅ ⋅ , k , ⋅ ⋅ ⋅ } {y}^{(i)}\in{\{1,0\}} \to{y}^{(i)}\in{\{1,2,3,···,k,···\}} y(i){1,0}y(i){1,2,3,,k,}时:
  将 y ( i ) = 1 {y}^{(i)}=1 y(i)=1标记为正向类,将 y ( i ) ≠ 1 {y}^{(i)}\ne1 y(i)=1标记为负向类,构建二分类逻辑回归模型 h θ ( 1 ) ( x ( i ) ) h_\theta^{( 1 )}\left( x^{(i)} \right) hθ(1)(x(i))
  将 y ( i ) = 2 {y}^{(i)}=2 y(i)=2标记为正向类,将 y ( i ) ≠ 2 {y}^{(i)}\ne2 y(i)=2标记为负向类,构建二分类逻辑回归模型 h θ ( 2 ) ( x ( i ) ) h_\theta^{\left( 2\right)}\left( x^{(i)} \right) hθ(2)(x(i))
  ······
  将 y ( i ) = k {y}^{(i)}=k y(i)=k标记为正向类,将 y ( i ) ≠ k {y}^{(i)}\ne k y(i)=k标记为负向类,构建二分类逻辑回归模型 h θ ( k ) ( x ( i ) ) h_\theta^{\left( k\right)}\left( x^{(i)} \right) hθ(k)(x(i))
  ······
( 2 ) (2) (2)转化为:
h θ ( k ) ( x ( i ) ) = p ( y ( i ) = k ∣ x ( i ) ; θ ) (9) h_\theta^{\left( k\right)}\left( x^{(i)} \right)=p\left( y^{(i)}=k|x^{(i)};\theta \right)\tag{9} hθ(k)(x(i))=p(y(i)=kx(i);θ)(9)

( 3 ) (3) (3)转化为:
{ y ^ ( i ) = k h θ ( k ) ( x ( i ) ) = max ⁡ i   h θ ( k ) ( x ( i ) ) (10) \begin{cases} \hat{y}^{(i)}=k\\ h_\theta^{\left( k \right)}(x^{(i)})=\mathop{\max}\limits_i\,h_\theta^{\left( k \right)}\left( x^{(i)} \right) \tag{10} \end{cases} {y^(i)=khθ(k)(x(i))=imaxhθ(k)(x(i))(10)

( 10 ) (10) (10)即为一对多逻辑回归模型的输出表达式。


补充说明📝:

  • 最优化相关知识后面看情况再补上。(ps:上课笔记丢了,难受n+1😭)
  • B a t c h Batch Batch梯度下降是指计算代价函数时用到了训练集所有样本。
  • 机器学习中的“梯度下降”实际上是指最速下降算法,即搜索方向为负梯度方向学习率即为搜索步长
  • 在逻辑回归模型中,代价函数 J ( θ ) J(\theta) J(θ)凸函数,故求得的局部最小值即为全局最小值。
  • 学习率取值不合适可能导致代价函数发散、不收敛或收敛速度慢等问题。


学习和温习记录,欢迎各位一起交流讨论,如有错误的地方或者建议,恳请在评论区批评和指导,博客不定期修改和更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西红柿爱喝水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值