逻辑回归(Logistic Regression)

逻辑回归(Logistic Regression)

这是一个软性二分类问题:关心的是目标函数的值(分布在[0,1]之间),表示正类的概率是多少。值越接近于1,表示正类的可能性越大。

目标函数: f ( x ) = P ( + 1 ∣ x ) ∈ [ 0 , 1 ] ⇔ P ( y ∣ x ) = { 1 − f ( x ) , f o r   y = − 1 f ( x ) , f o r   y = + 1 f(x) = P(+1|x)\in [0,1] \Leftrightarrow P(y|x) = \{^{f(x), for \ y = +1}_{1-f(x), for \ y = -1} f(x)=P(+1x)[0,1]P(yx)={1f(x),for y=1f(x),for y=+1

理想中的数据是分布在[0,1]之间的具体值,但是实际中的数据只可能是0或1,可以把实际中的数据看成是理想数据加上了噪声的影响。
其 hypothesis 为 sigmoid 函数: h ( x ) = 1 1 + e − w T x h(x) = \frac{1}{1+e^{-w^Tx}} h(x)=1+ewTx1
目标:求出这个预测函数,使它接近目标函数 f ( x ) f(x) f(x)
似然性:若找到一个 hypothesis h(x) 很接近 target function,也就是说,在所有的 hypothesis 中找到一个h(x)与f(x)最接近,能产生同样的数据集D,则称这个h(x)为最大似然性。

假设数据集 D = { ( x 1 , ∘ ) , ( x 2 , × ) , … , ( x N , × ) } D = \{(x_1,\circ),(x_2,\times),\dots,(x_N,\times)\} D={(x1,),(x2,×),,(xN,×)}
probability that f generates D:
P ( x 1 ) f ( x 1 ) × P ( x 2 ) ( 1 − f ( x 2 ) ) × ⋯ × P ( X N ) ( 1 − f ( X N ) ) P(x_1)f(x_1)\times P(x_2)(1-f(x_2))\times \dots \times P(X_N)(1-f(X_N)) P(x1)f(x1)×P(x2)(1f(x2))××P(XN)(1f(XN))
likelihood that h generates D:
P ( x 1 ) f ( x 1 ) × P ( x 2 ) ( 1 − f ( x 2 ) ) × ⋯ × P ( X N ) ( 1 − f ( X N ) ) P(x_1)f(x_1)\times P(x_2)(1-f(x_2))\times \dots \times P(X_N)(1-f(X_N)) P(x1)f(x1)×P(x2)(1f(x2))××P(XN)(1f(XN))
(若 h ≈ f h\approx f hf,则likelihood h的公式如上所示)

logistic function: h ( x ) = θ ( w T x ) h(x) = \theta(w^Tx) h(x)=θ(wTx)满足一个性质: 1 − h ( x ) = h ( − x ) 1-h(x) = h(-x) 1h(x)=h(x).
那么,likelihood h的公式为:
l i k e l i h o o d ( h ) = P ( x 1 ) h ( + x 1 ) × P ( x 2 ) h ( − x 2 ) × … P ( x N ) h ( − x N ) likelihood(h) = P(x_1)h(+x_1)\times P(x_2)h(-x_2)\times \dots P(x_N)h(-x_N) likelihood(h)=P(x1)h(+x1)×P(x2)h(x2)×P(xN)h(xN)

因为 P ( x n ) P(x_n) P(xn)对所有的h来说都是一样的,所以可以忽略。则ikelihood正比于所有的 h ( y n x n ) h(y_nx_n) h(ynxn)的乘积。
目标是使乘积最大化。

m a x h l i k e l i h o o d ( h ) ∝ ∏ n = 1 N h ( y n x n ) max_h likelihood(h) \propto \prod_{n=1}^{N}h(y_nx_n) maxhlikelihood(h)n=1Nh(ynxn)
将w带入:
m a x w l i k e l i h o o d ( w ) ∝ ∏ n = 1 N θ ( y n w T x n ) max_w likelihood(w) \propto \prod_{n=1}^{N}\theta(y_nw^Tx_n) maxwlikelihood(w)n=1Nθ(ynwTxn)
为了简化计算,引入 ln ⁡ \ln ln操作:
m a x w ∑ n = 1 N ln ⁡ θ ( y n w T x n ) max_w \sum_{n=1}^N\ln \theta(y_nw^Tx_n) maxwn=1Nlnθ(ynwTxn)
将maximize问题转化为minimize问题,并引入平均数 1 N \frac{1}{N} N1:
m i n w 1 N ∑ n = 1 N − ln ⁡ θ ( y n w T x n ) min_w\frac{1}{N}\sum_{n=1}^N -\ln\theta(y_nw^Tx_n) minwN1n=1Nlnθ(ynwTxn)
将logistic function θ ( s ) \theta(s) θ(s)的表达式带入,得:
m i n w 1 N ∑ n = 1 N ln ⁡ ( 1 + e x p ( − y n w T x n ) ) min_w\frac{1}{N}\sum_{n=1}^N\ln(1+exp(-y_nw^Tx_n)) minwN1n=1Nln(1+exp(ynwTxn))
⟹ m i n w 1 N e r r ( w , x n , y n ) \Longrightarrow min_w\frac{1}{N}err(w,x_n,y_n) minwN1err(w,xn,yn)
由此得到了logistic function的err function,称之为cross-entropy error 交叉信息熵:
e r r ( w , x , y ) = ln ⁡ ( 1 + e x p ( − y w T x ) ) err(w,x,y)=\ln(1+exp(-yw^Tx)) err(w,x,y)=ln(1+exp(ywTx))
则接下来的目标是:找到合适的向量w,使err(即训练误差 E i n E_{in} Ein)最小。

E i n E_{in} Ein的曲线是凸函数,那么只要计算出 ∇ E i n = 0 \nabla E_{in}=0 Ein=0时的w,即为最优解。
∇ E i n = 1 N ∑ n = 1 N θ ( − y n w T x n ) ( − y n x n ) = 0 \nabla E_{in} = \frac{1}{N}\sum_{n=1}^N\theta(-y_nw^Tx_n)(-y_nx_n) = 0 Ein=N1n=1Nθ(ynwTxn)(ynxn)=0
其中 θ ( − y n w T x n ) \theta(-y_nw^Tx_n) θ(ynwTxn)可看成时 − y n x n -y_nx_n ynxn的线性加权。
要使线性加权和为0,有两种情况:
第一种:若所有的权重 θ ( − y n w T x n ) = 0 \theta(-y_nw^Tx_n)=0 θ(ynwTxn)=0,则 ∇ E i n = 0 \nabla E_{in}=0 Ein=0因为 θ ( − y n w T x n ) \theta(-y_nw^Tx_n) θ(ynwTxn)为sigmoid function,只要 − y n w T x n &lt; &lt; 0 -y_nw^Tx_n&lt;&lt;0 ynwTxn<<0,即 y n w T x n &gt; &gt; 0 y_nw^Tx_n&gt;&gt;0 ynwTxn>>0,就可使结果为0。而 y n w T x n &gt; &gt; 0 y_nw^Tx_n&gt;&gt;0 ynwTxn>>0表示对所有的点 y n y_n yn w T x n w^Tx_n wTxn都是同号的,这表示数据集必须是线性可分的才能成立。
但是,保证线性可分不现实,更多的情况是线性不可分的。
第二种:非线性可分,只能通过使加权和为0来求解w。这种情况只能使用迭代来逐步求解。
E i n E_{in} Ein曲线比作一个山谷,则使 E i n E_{in} Ein最小,即可比作下山的过程。整个下山过程受两个因素影响:下山的单位方向 ν \nu ν和下山的补偿 η \eta η.
利用微分思想和线性近似,根据泰勒一节展开:
E i n ( w t + η ν ) ≈ E i n ( w t ) + η ν T ∇ E i n ( w t ) E_{in}(w_t+\eta\nu) \approx E_{in}(w_t)+\eta\nu^T\nabla E_{in}(w_t) Ein(wt+ην)Ein(wt)+ηνTEin(wt)
要让 E i n ( w t + η ν ) &lt; E i n ( w t ) E_{in}(w_t+\eta\nu)&lt;E_{in}(w_t) Ein(wt+ην)<Ein(wt),则 ν \nu ν方向要与 E i n E_{in} Ein方向相反,
令下降方向 ν \nu ν为:
ν = − ∇ E i n ( w t ) ∣ ∣ ∇ E i n ( w t ) ∣ ∣ \nu = -\frac{\nabla E_{in}(w_t)}{||\nabla E_{in}(w_t)||} ν=Ein(wt)Ein(wt)
ν \nu ν是单位向量, ν \nu ν每次都是沿着梯度的反方向走,这种方法称为梯度下降*(gradient descent)
那么:
w t + 1 ← w t − η ∇ E i n ( w t ) ∣ ∣ ∇ E i n ( w t ) ∣ ∣ w_{t+1} \leftarrow w_{t} - \eta\frac{\nabla E_{in}(w_t)}{||\nabla E_{in}(w_t)||} wt+1wtηEin(wt)Ein(wt)

η ′ = η ∣ ∣ ∇ E i n ( w t ) ∣ ∣ \eta\prime = \frac{\eta}{||\nabla E_{in}(w_t)||} η=Ein(wt)η,则:
w t + 1 ← w t − η ′ ∇ E i n ( w t ) w_{t+1} \leftarrow w_t - \eta\prime\nabla E_{in}(w_t) wt+1wtηEin(wt)
根据该公式不断循环,最终即可求得w

总结一下基于梯度下降的logistic regression算法步骤:
⋅ \cdot 初始化w
⋅ \cdot 计算t梯度 ∇ E i n \nabla E_{in} Ein
⋅ \cdot 迭代 w t + 1 ← w t − η ′ ∇ E i n ( w t ) w_{t+1} \leftarrow w_t - \eta\prime\nabla E_{in}(w_t) wt+1wtηEin(wt)
⋅ \cdot 当满足 ∇ E i n ( w t + 1 ) = 0 \nabla E_{in}(w_{t+1}) = 0 Ein(wt+1)=0或达到迭代次数时,迭代结束。

接下来从另一个角度来说逻辑回归
这种方法也是梯度下降,但是使用的cost function与上面的 E i n E_{in} Ein不一样。
c o s t ( h ( w ) , y ) = { − log ⁡ ( h w ( x ) ) , y = 1 − log ⁡ ( 1 − h w ( x ) ) , y = 0 cost(h(w),y) = \begin{cases} -\log(h_w(x)), &amp;y=1\\ -\log(1-h_w(x)),&amp;y=0 \end{cases} cost(h(w),y)={log(hw(x)),log(1hw(x)),y=1y=0
⟹ \Longrightarrow
c o s t ( h w ( x ) , y ) = − y log ⁡ ( h w ( x ) ) ) − ( 1 − y ) l o g ( 1 − h w ( x ) ) cost(h_w(x),y) = -y\log(h_w(x)))-(1-y)log(1-h_w(x)) cost(hw(x),y)=ylog(hw(x)))(1y)log(1hw(x))
则整个数据集的cost function为:
J ( w ) = 1 N ∑ n = 1 N c o s t ( h w ( x n ) , y n ) J(w) = \frac{1}{N}\sum_{n=1}^Ncost(h_w(x_n),y_n) J(w)=N1n=1Ncost(hw(xn),yn)

推导
已知 P ( 1 ∣ x ) = h w ( x ) , P ( 0 ∣ x ) = 1 − h w ( x ) P(1|x) = h_w(x),P(0|x) = 1-h_w(x) P(1x)=hw(x),P(0x)=1hw(x)
那么 P ( y ∣ x ) = f ( x ) y ( 1 − f ( x ) ) ( 1 − y ) P(y|x) = f(x)^y (1-f(x))^{(1-y)} P(yx)=f(x)y(1f(x))(1y)
,取对数,得:
l g P = y log ⁡ ( h w ( x ) ) + ( 1 − y ) l o g ( 1 − h w ( x ) ) lgP= y\log(h_w(x))+(1-y)log(1-h_w(x)) lgP=ylog(hw(x))+(1y)log(1hw(x)),希望P越大越好。
取负号,变为loos function,希望其越小越好。
即:
L = − y log ⁡ ( h w ( x ) ) ) − ( 1 − y ) l o g ( 1 − h w ( x ) ) L= -y\log(h_w(x)))-(1-y)log(1-h_w(x)) L=ylog(hw(x)))(1y)log(1hw(x))
若有个样本,则公式变为:
J ( w ) = 1 N ∑ n = 1 N − y log ⁡ ( h w ( x ) ) ) − ( 1 − y ) l o g ( 1 − h w ( x ) ) J(w)= \frac{1}{N}\sum_{n=1}^N-y\log(h_w(x)))-(1-y)log(1-h_w(x)) J(w)=N1n=1Nylog(hw(x)))(1y)log(1hw(x))
推导成功。

目的:求出最小的 J ( w ) J(w) J(w)
使用梯度下降法
repeat{
w i = w i − α ∂ J ( w ) ∂ w i w_i = w_i - \alpha \frac{\partial J(w)}{\partial w_i} wi=wiαwiJ(w)
}

其中: ∂ J ( w ) ∂ w i = 1 N ∑ n = 1 N ( h w ( x n ) − y n ) x n j \frac{\partial J(w)}{\partial w_i} = \frac{1}{N}\sum_{n=1}^{N}(h_w(x_n)-y_n)x_{nj} wiJ(w)=N1n=1N(hw(xn)yn)xnj,
w j w_j wj表示第j个特征的权重。

注意:
sigmoid 函数 h(x) 的求导结果:
h ′ ( x ) = h ( x ) ( 1 − h ( x ) ) h&#x27;(x) = h(x)(1-h(x)) h(x)=h(x)(1h(x))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Logistic回归是一种逻辑回归方法。它是一种特殊的回归方法,用于对于分类问题中的因变量建立预测模型。这种方法基于学习一个由输入变量到二元输出变量的条件概率来构建预测模型,用于对一个新的样本进行分类。它对于分类问题中的因变量建立预测模型非常有效。 ### 回答2: 逻辑回归是一种用于解决二分类问题的监督学习算法。它是一种基于概率统计的分类模型,可以用于预测分类结果。逻辑回归的输出结果是一个0到1之间的概率值,其含义是该样本属于某一类别的概率。 逻辑回归模型的基本假设是数据服从伯努利分布,也就是数据只有两种可能的取值,被称为正类和负类。对于给定的训练数据集,逻辑回归模型的目标是最大化似然函数,即最大化样本属于正类(或负类)的概率。利用最大似然估计方法,我们可以求解出逻辑回归模型的参数。在实际应用中,我们通常使用梯度下降等优化算法来求解模型参数。 逻辑回归模型有多种变体,如L1正则化逻辑回归、L2正则化逻辑回归、多项式逻辑回归等。其中,L1正则化逻辑回归可以实现特征选择,可以削减一些不重要的特征,从而简化模型,提高计算速度和模型的泛化能力。 在机器学习领域,逻辑回归是一个常用的模型。它广泛应用于各种领域,如网络广告点击率预测、信用风险评估、医疗诊断等。逻辑回归模型简单易实现,具有较高的解释性,是一个较为理想的分类算法。 ### 回答3: 逻辑回归Logistic Regression)是一种经典的分类算法,在机器学习和统计学领域中得到广泛的应用。它旨在从已有的数据中构建一个能够预测类别的模型,输出结果为概率值,可以用于二分类或多分类问题的解决。 逻辑回归的基本原理是利用一个特定的函数对输入特征进行线性组合,然后将结果输入到一个Sigmoid函数中进行映射,将结果值压缩到0到1的范围内,表示输入属于某一类别的概率。这个Sigmoid函数可以被看作是一个阀门,控制着数据流向最终输出。它将具有很强预测能力的线性组合函数输出转化为概率输出的过程,将出现在中间层的结果值映射到[0,1]范围内,以表达某个样本属于某个类别的概率。 在训练模型时,逻辑回归使用的是最大似然估计的方法来确定模型的参数。在分类训练数据时,需要对样本经过一系列的处理,例如特征提取、特征转换、数据归一化等步骤。训练数据可以通过梯度下降法、牛顿迭代法等优化方法来确定最佳参数。通过此训练过程,模型可以学习到输入特征与输出概率之间的映射关系。 逻辑回归的优点包括了功能简单、速度快、易于实现和修改等等。它是机器学习中最为基本的分类算法之一,在数据挖掘、信用评估、自然语言处理、广告推荐等领域都有广泛的应用。逻辑回归作为一个二分类算法,常被用于解决分类问题。然而,在实际业务中,如何选择不同的逻辑回归模型及参数,对算法的效果和优化有着重要的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值