ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

手推Logistic Regression及matlab的底层实现

2021-11-08 21:59:51  阅读:180  来源: 互联网

标签:frac ln wi matlab Logistic partial lnf sigma Regression


前言

Logistic Regression,也称为LR,逻辑斯蒂回归。虽然名称中有回归二字,但实际上是一种二分类算法。注意,适用范围仅仅是二分类。

公式推导

假设数据集 x 1 , x 2 , . . . , x n x^{1},x^{2},...,x^{n} x1,x2,...,xn,分别属于类别 C 1 , C 2 {C_{1},C_{2}} C1​,C2​,将类别C1对应标签1,类别C2对应标签0。

f w , b ( x ) = P w , b ( C 1 ∣ x ) f_{w,b}(x)=P_{w,b}(C_{1}|x) fw,b​(x)=Pw,b​(C1​∣x)表示给定w,b时,x属于类别 C 1 C_{1} C1​的概率。

σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+e−z1​为sigmoid函数。则 f w , b ( x ) = σ ( ∑ i w i x i + b ) f_{w,b} (x)=\sigma(\sum_{i}w_{i}x_{i}+b) fw,b​(x)=σ(∑i​wi​xi​+b)为所用的LR模型,其值介于0-1之间。

对数据集适用最大似然估计,假设 L ( w , b ) L(w,b) L(w,b)为最大似然函数, w ∗ , b ∗ w^{*},b^{*} w∗,b∗为模型所求参数。则求解目标为
w , b a r g m a x L ( w , b ) = a r g m i n ( − L ( w , b ) ) = w ∗ , b ∗ \overset{arg maxL(w,b)}{w,b}=arg min (-L(w,b))=w^{*},b^{*} w,bargmaxL(w,b)​=argmin(−L(w,b))=w∗,b∗
最优化问题一般都转化为最小值问题求解。
− l n L ( w , b ) = − l n [ ( y 1 f ( x 1 ) + ( 1 − y 1 ) ( 1 − f ( x 1 ) ) . . . ( y n f ( x n ) + ( 1 − y n ) ( 1 − f ( x n ) ) ] = ∑ n − [ y n l n f ( x n ) + ( 1 − y n ) l n ( 1 − f ( x n ) ) ] -ln L(w,b)=-ln[(y^{1}f(x^{1})+(1-y^{1})(1-f(x^{1}))...(y^{n}f(x^{n})+(1-y^{n})(1-f(x^{n}))]\\ =\sum_{n}-[y^{n}lnf(x^{n})+(1-y^{n})ln(1-f(x^{n}))] −lnL(w,b)=−ln[(y1f(x1)+(1−y1)(1−f(x1))...(ynf(xn)+(1−yn)(1−f(xn))]=n∑​−[ynlnf(xn)+(1−yn)ln(1−f(xn))]

这里的公式如何来的呢?我们可以想下我们适用LR进行分类的目的是什么,希望分类过程中,标签为1的样本预测概率f(x)越接近1越好,标签为0的样本预测概率f(x)越接近0越好。

公式求解

求解 w ∗ 与 b ∗ w^{*}与b^{*} w∗与b∗时,我们可以将目标函数对 w i w_{i} wi​进行求导。
我们先计算:
∂ l n f ( x ) ∂ w i = ∂ l n f ( x ) ∂ z ∂ z ∂ w i \frac{\partial lnf(x)}{\partial w_{i}}=\frac{\partial lnf(x)}{\partial z} \frac{\partial z}{\partial w_{i}} ∂wi​∂lnf(x)​=∂z∂lnf(x)​∂wi​∂z​
由于 z = ∑ w i x i + b z=\sum w_{i}x_{i}+b z=∑wi​xi​+b,可以得到 ∂ z ∂ w i = x i \frac{\partial z}{\partial w_{i}}=x_{i} ∂wi​∂z​=xi​

∂ l n σ ( z ) ∂ z = 1 σ ( z ) ∂ σ ( z ) ∂ z = 1 σ ( z ) σ ( z ) ( 1 − σ ( z ) ) = 1 − σ ( z ) \frac{\partial ln \sigma(z)}{\partial z}=\frac{1}{\sigma (z)}\frac{\partial \sigma(z)}{\partial z}=\frac{1}{\sigma (z)}{\sigma (z)}(1-{\sigma (z)})=1-{\sigma (z)} ∂z∂lnσ(z)​=σ(z)1​∂z∂σ(z)​=σ(z)1​σ(z)(1−σ(z))=1−σ(z)
因此可以得到,
∂ l n f ( x ) ∂ w i = ( 1 − σ ( z ) ) x i \frac{\partial lnf(x)}{\partial w_{i}}=(1-{\sigma (z)})x_{i} ∂wi​∂lnf(x)​=(1−σ(z))xi​

标签:frac,ln,wi,matlab,Logistic,partial,lnf,sigma,Regression
来源: https://blog.csdn.net/weixin_43249038/article/details/121212711

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有