机器学习算法5_逻辑回归

机器学习算法第四篇

  1. 本文目内容:逻辑回归算法推导
  2. 本文基于梯度下降法, 多元线性回归
  3. 本文为纯数学向分析
各种预设

 \  
设有数据Data如下(上标为列号,下标为行号),y取值为1或0,用于区分该样本的分类设有数据Data如下( 上标为列号,下标为行号),y取值为1 或 0,用于区分该样本的分类Data(,),y10,
data=[x11x21...xn1y1x12x22...xn2y2x13x23...xn3y3..............x1mx2m...xnmym] data=\begin{bmatrix} x_1^1 & x_2^1 \quad ...&x_n^1& y^1 \\ x_1^2 & x_2^2 \quad...&x_n^2& y^2\\ x_1^3 & x_2^3 \quad...&x_n^3& y^3 \\ . & . \quad...& .& . \\ . & . \quad...& .& . \\ x_1^m & x_2^m \quad...&x_n^m& y^m \\ \end{bmatrix} data=x11x12x13..x1mx21...x22...x23...........x2m...xn1xn2xn3..xnmy1y2y3..ym

(1)令x_data=X=[x11x21...xn1x12x22...xn2x13x23...xn3............x1mx2m...xnm] 令x\_data =X=\begin{bmatrix} x_1^1 & x_2^1 \quad ...&x_n^1\\ x_1^2 & x_2^2 \quad...&x_n^2\\ x_1^3 & x_2^3 \quad...&x_n^3 \\ . & . \quad...& . \\ . & . \quad...& .\\ x_1^m & x_2^m \quad...&x_n^m\\ \end{bmatrix}\tag1 x_data=X=x11x12x13..x1mx21...x22...x23...........x2m...xn1xn2xn3..xnm(1)

(2)令y_data=Y=[y1y2y3..ym],y∈(1,0) 令y\_data =Y=\begin{bmatrix} y^1 \\ y^2\\ y^3 \\ . \\ . \\ y^m \\ \end{bmatrix},y\in(1,0)\tag2 y_data=Y=y1y2y3..ym,y(1,0)(2)

 \  
(3)设决策边界→L:θ1x1+θ2x2+θ3x3+...+θnxn=0 设决策边界\rightarrow L :\theta_1x_1+\theta_2x_2+\theta_3x_3+...+\theta_nx_n=0 \tag 3 L:θ1x1+θ2x2+θ3x3+...+θnxn=0(3)
 \  
(4)设函数→β(x):θ1x1+θ2x2+θ3x3+...+θnxn设函数\rightarrow \beta(x) :\theta_1x_1+\theta_2x_2+\theta_3x_3+...+\theta_nx_n \tag 4 β(x):θ1x1+θ2x2+θ3x3+...+θnxn(4)
(5)则→Θ=[θ1θ2θ3..θm] 则\rightarrow\Theta= \begin{bmatrix} \theta_1 \\ \theta_2\\ \theta_3 \\ . \\ . \\ \theta_m \\ \end{bmatrix}\tag5 Θ=θ1θ2θ3..θm(5)
(6)理论1:样本点P(x1,x2...xn)带入(2)式得到β(x)的函数值d,则d与样本点P到决策边界的距离成正比 理论1:样本点P(x_1,x_2...x_n)带入(2)式得到\beta(x)的函数值d,则d与样本点P到决策边界的距离成正比 \tag 6 1:P(x1,x2...xn)(2)β(x)d,dP(6)
 \  
(7)理论2:设样本点P1,P2,P3,...Pm,分别带入函数β(x)得到d1,d2,d3,...dm,则各点可依据d值得正负分为两部分,我们令d&gt;0的样本点的标签值为1,使d&lt;0的样本点的标签值为0,从而预测并分类这两类样本 理论2:设样本点P_1,P_2,P_3,...P_m,分别带入函数\beta(x)得到d_1,d_2,d_3,...d_m,\\ 则各点可依据d值得正负分为两部分,\\我们令d&gt;0的样本点的标签值为1,使d&lt;0的样本点的标签值为0,\\从而预测并分类这两类样本 \tag7 2:P1,P2,P3,...Pm,β(x)d1,d2,d3,...dm,d,d>01,使d<00,(7)
 \  
(8)设sigmoid函数sigmoid(x)=11+e−x该函数有特性:当输入值x大于0时输出(0.5,1)中的某值,并且输入的x越大,输出的值越是接近1,当当输入值x小于0时输出(0,0.5)中的某值,并且输入的x越小,输出的值越是接近0 设sigmoid函数 sigmoid(x)=\frac{1}{1+e^{-x}}\\ 该函数有特性:\\ 当输入值x大于0时输出(0.5,1)中的某值,并且输入的x越大,输出的值越是接近1,\\ 当当输入值x小于0时输出(0,0.5)中的某值,并且输入的x越小,输出的值越是接近0\tag8 sigmoidsigmoid(x)=1+ex1:x0(0.5,1),x,1,x0(0,0.5),x,0(8)
 \  

算法过程:

(8)1.在训练阶段通过不断给(2)中的函数β(x):θ1x1+θ2x2+θ3x3+...+θnxn带入特征数据X,从而得到值d1,d2,d3,...dm2.我们令将d1,d2,d3,...dm带入预测函数sigmoid函数(8)从而得到Y预测=(y1,y2,y3,...ym),预测并分类这两类样本3.构建合适的代价函数J(θ),表达预测与真值差异的大小4.对代价函数用梯度下降法求得最合适的(θ1,θ2,...θn,)5.在测试阶段,将特征数据X测试带入由θ最佳(θ1,θ2,...θn,)所组成的模型(预测函数):hθ(x)得到的最佳预测值Y最佳预测=(y1,y2...ym),6.依据yi的值检测预测准确率,该值越接近1或0,则预测越准确,越接近0.5则预测越无效\begin{aligned} &amp;1.在训练阶段通过不断给(2)中的函数\beta(x) :\theta_1x_1+\theta_2x_2+\theta_3x_3+...+\theta_nx_n\\ &amp;带入特征数据X,从而得到值d_1,d_2,d_3,...d_m\\ &amp;2.我们令将d_1,d_2,d_3,...d_m带入预测函数sigmoid函数(8)\\ &amp;从而得到Y_{预测}=(y^{1},y^{2},y^{3},...y^{m}),预测并分类这两类样本\\ &amp;3.构建合适的代价函数J(\theta),表达预测与真值差异的大小\\ &amp;4.对代价函数用梯度下降法求得最合适的(\theta_1,\theta_2,...\theta_n,)\\ &amp;5.在测试阶段,将特征数据X_{测试}带入由\theta_{最佳}(\theta_1,\theta_2,...\theta_n,) 所组成的模型(预测函数):h_\theta(x)\\ &amp;得到的最佳预测值Y_{最佳预测}=(y_1,y_2...y_m) \tag8,\\ &amp;6.依据y_i的值检测预测准确率,该值越接近1或0,则预测越准确,越接近0.5则预测越无效 \end{aligned}1.(2)β(x):θ1x1+θ2x2+θ3x3+...+θnxnX,d1,d2,d3,...dm2.d1,d2,d3,...dmsigmoid(8)Y=(y1,y2,y3,...ym),3.J(θ),4.(θ1,θ2,...θn,)5.,Xθ(θ1,θ2,...θn,)():hθ(x)Y=(y1,y2...ym),6.yi,10,,0.5(8)

目标:构建的合适的代价函数

ps:线性回归的代价函数直接套用是不合适的,因其在此场景为非凸函数
 \  
(9)因上述算法过程我们知道当∑i=1m∣di∣的值越大,求得的决策边界越合适,越泾渭分明,越居中因此我们可以构建函数的目标:求合适的(θ1,θ2,...θn,)使函数∑i=1m∣di∣的值趋向于0或1因上述算法过程我们知道当\sum_{i=1}^m \vert d_i\vert 的值越大,求得的决策边界越合适,越泾渭分明,越居中\\ 因此我们可以构建函数的目标:求合适的(\theta_1,\theta_2,...\theta_n,)使函数\sum_{i=1}^m \vert d_i\vert 的值趋向于0或1\tag 9 i=1mdi,,,:(θ1,θ2,...θn,)使i=1mdi01(9)
 \  
构建预测函数反应传入样本点的预测值hθ(x)=sigmoid[(β(xi)]=11−eβ(xi)根据(8)式所述,该hθ(x)函数将原β(x)函数的值域映射成(0,1)区间并继承(8)式的特性&MediumSpace;当输入值x大于0时输出(0.5,1)中的某值,并且输入的x越大,输出的值越是接近1,当当输入值x小于0时输出(0,0.5)中的某值,并且输入的x越小,输出的值越是接近0 构建预测函数反应传入样本点的预测值\\ h_\theta(x)= sigmoid[(\beta(x^{i})]=\frac{1}{1-e^{\beta(x^{i})}}\\ 根据(8)式所述,该h_\theta(x)函数将原\beta(x)函数的值域映射成(0,1)区间\\ 并继承(8)式的特性\:\\ 当输入值x大于0时输出(0.5,1)中的某值,并且输入的x越大,输出的值越是接近1,\\ 当当输入值x小于0时输出(0,0.5)中的某值,并且输入的x越小,输出的值越是接近0 hθ(x)=sigmoid[(β(xi)]=1eβ(xi)1(8),hθ(x)β(x)(0,1)(8)x0(0.5,1),x,1,x0(0,0.5),x,0
 \  
(10)故(9)式的目标可等价于:求合适的(θ1,θ2,...θn)使函数hθ(x(i))的值趋向于0或1 故(9)式的目标可等价于:求合适的(\theta_1,\theta_2,...\theta_n)使函数h_\theta(x^{(i)})的值趋向于0或1\tag{10} (9):(θ1,θ2,...θn)使hθ(x(i))01(10)
 \  
(11)构建函数Cost(θ,y)={−log(hθ(x(i)),if yi is 1−log(1−hθ(x(i)),if yi is 0 构建函数Cost(\theta,y) = \begin{cases} -log(h_\theta(x^{(i)}), &amp; \text{if $y^i$ is 1} \\ -log(1-h_\theta(x^{(i)}), &amp; \text{if $y^i$ is 0} \end{cases}\tag{11} Cost(θ,y)={log(hθ(x(i)),log(1hθ(x(i)),if yi is 1if yi is 0(11)

(12)合并得Cost(θ,y)=−yilog[hθ(x(i)]−(1−yi)log[1−hθ(x(i))] 合并得Cost(\theta,y) =-y^ilog[h_\theta(x^{(i)}]-(1-y^i)log[1-h_\theta(x^{(i)})]\tag{12} Cost(θ,y)=yilog[hθ(x(i)](1yi)log[1hθ(x(i))](12)
 \  
(8)式的上式函数为在定义域(0,1)的单调减函数,具有随函数值趋向0,输入值趋向于1的特性,(8)该式的下式函数为在定义域(0,1)的单调增函数,具有随函数值趋向0,输入值趋向于0的特性因此(12)式具有特性:,当值域趋向于0的时候输入值趋向于0或1即(10)式的目标可等价于:合适的(θ1,θ2,...θn)使函数J(θ,y)的值趋向于0又同时因为该式为凸函数所以(12)式非常适合做为代价函数 (8)式的上式函数为在定义域(0,1)的单调减函数,具有随函数值趋向0,输入值趋向于1的特性,\\ (8)该式的下式函数为在定义域(0,1)的单调增函数,具有随函数值趋向0,输入值趋向于0的特性\\ 因此(12)式具有特性:,当值域趋向于0的时候输入值趋向于0或1\\ 即(10)式的目标可等价于:合适的(\theta_1,\theta_2,...\theta_n)使函数J(\theta,y)的值趋向于0\\ 又同时因为该式为凸函数所以(12)式非常适合做为代价函数 (8)(0,1),0,1,(8)(0,1),0,0(12):,001(10):(θ1,θ2,...θn)使J(θ,y)0(12)

 \  
(12)于是我们定义代价函数Cost(θ,y)=−∑i=1m{yilog[hθ(x(i))]+(1−yi)log[1−hθ(x(i))]}于是我们定义代价函数\\ Cost(\theta,y) =-\sum_{i=1}^m\left\{y^ilog[h_\theta(x^{(i)})]+(1-y^i)log[1-h_\theta(x^{(i)})]\tag{12}\right\} Cost(θ,y)=i=1m{yilog[hθ(x(i))]+(1yi)log[1hθ(x(i))]}(12)

梯度下降

 \  
(13)由于代价函数(12)式为复合函数,复合了下面两条式子hθ(x)=sigmoid[(β(xi)]=11−eβ(xi)由于代价函数(12)式为复合函数,复合了下面两条式子\\ h_\theta(x)= sigmoid[(\beta(x^{i})]=\frac{1}{1-e^{\beta(x^{i})}}\\ \tag{13}12hθ(x)=sigmoid[(β(xi)]=1eβ(xi)1(13)
(14)β(x):θ1x1+θ2x2+θ3x3+...+θnxn\beta(x) :\theta_1x_1+\theta_2x_2+\theta_3x_3+...+\theta_nx_n\tag{14}β(x):θ1x1+θ2x2+θ3x3+...+θnxn(14)
 \  
(15)所以结合(13)(14)对复合函数(12)求导得:∂f∂θ1=−∑i=1m{yihθ(x(i))+(1−yi)1−hθ(x(i))}∂hθ(x(i))∂θ1所以结合(13)(14)对复合函数(12)求导得:\\ \frac{\partial f}{\partial\theta_1}= -\sum_{i=1}^m\left\{\frac{y^{i}}{h_\theta(x^{(i)})}+\frac{(1-y^{i})}{1-h_\theta(x^{(i)})} \tag{15}\right\}\frac{\partial h_\theta(x^{(i)}) }{\partial\theta_1} 131412θ1f=i=1m{hθ(x(i))yi+1hθ(x(i))(1yi)}θ1hθ(x(i))(15)
=−∑i=1m{yihθ(x(i))−(1−yi)1−hθ(x(i))}hθ‘(x(i))x1i= -\sum_{i=1}^m\left\{\frac{y^{i}}{h_\theta(x^{(i)})}-\frac{(1-y^{i})}{1-h_\theta(x^{(i)})} \right\}h_\theta^`(x^{(i)})x_1^{i} =i=1m{hθ(x(i))yi1hθ(x(i))(1yi)}hθ(x(i))x1i

=−∑i=1m{yi−hθ(x(i))hθ(x(i))[1−hθ(x(i))]}hθ‘(x(i))x1i= -\sum_{i=1}^m\left\{\frac{y^{i}-h_\theta(x^{(i)})}{h_\theta(x^{(i)})[1-h_\theta(x^{(i)})]} \right\}h_\theta^`(x^{(i)})x_1^{i} =i=1m{hθ(x(i))[1hθ(x(i))]yihθ(x(i))}hθ(x(i))x1i
又hθ‘(x(i))=hθ(x(i))[1−hθ(x(i))]求导过程略又h_\theta^`(x^{(i)})=h_\theta(x^{(i)})[1-h_\theta(x^{(i)})]求导过程略 hθ(x(i))=hθ(x(i))[1hθ(x(i))]

(16)所以∂f∂θ1=−∑i=1m{x1i[yi−hθ(x(i))]} 所以\frac{\partial f}{\partial\theta_1}=-\sum_{i=1}^m\left\{x_1^{i} [y^{i}-h_\theta(x^{(i)})]\right\}\tag{16} θ1f=i=1m{x1i[yihθ(x(i))]}(16)

 \  

(17)同理可得到∂f∂θ1=−∑i=1m{x1i[yi−hθ(x(i))]}∂f∂θ2=−∑i=1m{x2i[yi−hθ(x(i))]}∂f∂θ3=−∑i=1m{x3i[yi−hθ(x(i))]}...∂f∂θn=−∑i=1m{xni[yi−hθ(x(i))]}同理可得到\\ \frac{\partial f}{\partial\theta_1}=-\sum_{i=1}^m\left\{x_1^{i} [y^{i}-h_\theta(x^{(i)})]\right\}\\ \frac{\partial f}{\partial\theta_2}=-\sum_{i=1}^m\left\{x_2^{i} [y^{i}-h_\theta(x^{(i)})]\right\}\\ \frac{\partial f}{\partial\theta_3}=-\sum_{i=1}^m\left\{x_3^{i} [y^{i}-h_\theta(x^{(i)})]\right\}\\ ...\\ \frac{\partial f}{\partial\theta_n}=-\sum_{i=1}^m\left\{x_n^{i} [y^{i}-h_\theta(x^{(i)})]\right\}\tag{17} θ1f=i=1m{x1i[yihθ(x(i))]}θ2f=i=1m{x2i[yihθ(x(i))]}θ3f=i=1m{x3i[yihθ(x(i))]}...θnf=i=1m{xni[yihθ(x(i))]}(17)

 \  

各θ用其偏导数乘以合适的学习率lr后更新自己各\theta用其偏导数乘以合适的学习率lr后更新自己 θlr

 \  

(18)θ1=θ1−lr∂f∂θ1θ2=θ2−lr∂f∂θ2θ3=θ3−lr∂f∂θ3...θn=θn−lr∂f∂θn \theta_1= \theta_1-lr\frac{\partial f}{\partial\theta_1}\\ \theta_2= \theta_2-lr\frac{\partial f}{\partial\theta_2}\\ \theta_3= \theta_3-lr\frac{\partial f}{\partial\theta_3}\\ ...\\ \theta_n= \theta_n-lr\frac{\partial f}{\partial\theta_n}\tag{18} θ1=θ1lrθ1fθ2=θ2lrθ2fθ3=θ3lrθ3f...θn=θnlrθnf(18)

 \  

重复(17)−(18)步足够的次数即可得到最优的(θ1,θ2,...θn)使得代价函数(12)取最小值重复(17)-(18)步足够的次数即可得到最优的(\theta_1,\theta_2,...\theta_n)使得代价函数(12)取最小值(17)(18)(θ1,θ2,...θn)使(12)

 \  

矩阵化

由于常规做法计算复杂,我们一般用矩阵的方式做梯度下降,以减少计算量与复杂度

  • 首先把(17)式中用到的子式矩阵化

 \  
β⇒[β(x1)β(x2)β(x3)..β(xm)]=[θ1x11+θ2x21+...+θnxn1θ1x12+θ2x22+...+θnxn2θ1x13+θ2x23+...+θnxn3........θ1x1m+θ2x2m+...+θnxnm]=X⋅θ\beta\Rightarrow \begin{bmatrix} \beta (x^1) \\ \beta (x^2) \\ \beta(x^3 ) \\ . \\ . \\ \beta (x^m) \\ \end{bmatrix}=\begin{bmatrix} \theta_1x_1^1+\theta_2x_2^1 +...+\theta_nx_n^1\\ \theta_1x_1^2+\theta_2x_2 ^2+...+\theta_nx_n^2\\ \theta_1x_1^3+\theta_2x_2 ^3+...+\theta_nx_n^3\\ \quad... . \\ \quad... .\\ \theta_1x_1^m+\theta_2x_2^m +...+\theta_nx_n^m\\ \end{bmatrix}=X \cdot \theta ββ(x1)β(x2)β(x3)..β(xm)=θ1x11+θ2x21+...+θnxn1θ1x12+θ2x22+...+θnxn2θ1x13+θ2x23+...+θnxn3........θ1x1m+θ2x2m+...+θnxnm=Xθ

 \  
H=[hθ(x1)hθ(x2)hθ(x3)..hθ(xm)]=sigmoid(β)上式中H中元素hθ(x(i))为β中元素β(x(i))逐个带入sigmoid函数得到H=\begin{bmatrix} h_\theta (x^1) \\ h_\theta (x^2) \\ h_\theta(x^3 ) \\ . \\ . \\ h_\theta (x^m) \\ \end{bmatrix}= sigmoid(\beta)\\ 上式中H中元素h_\theta(x^{(i)})为\beta中元素\beta (x^{(i)})逐个带入sigmoid函数得到 H=hθ(x1)hθ(x2)hθ(x3)..hθ(xm)=sigmoid(β)Hhθ(x(i))ββ(x(i))sigmoid
 \  

  • 将(17)式子变化并同时带入上述矩阵化后的子式
     \  

(19)∇f=[∂f∂θ1∂f∂θ2∂f∂θ3..∂f∂θn]=[x11[y1−hθ(x1)]+x12[y2−hθ(x2)]+...+x12[yn−hθ(xn)]x21[y1−hθ(x1)]+x22[y2−hθ(x2)]+...+x22[yn−hθ(xn)]x31[y1−hθ(x1)]+x32[y2−hθ(x2)]+...+x32[yn−hθ(xn)]..xn1[y1−hθ(x1)]+xn2[y2−hθ(x2)]+...+xn2[yn−hθ(xn)]]=XT(Y−H) ∇f=\begin{bmatrix} \frac{\partial f}{\partial\theta_1} \\ \frac{\partial f}{\partial\theta_2}\\ \frac{\partial f}{\partial\theta_3} \\ . \\ . \\ \frac{\partial f}{\partial\theta_n} \\ \end{bmatrix}= \begin{bmatrix} x_1^1[y^1-h_\theta(x^1)]+x_1^2[y^2-h_\theta(x^2)]+...+x_1^2[y^n-h_\theta(x^n)] \\ x_2^1[y^1-h_\theta(x^1)]+x_2^2[y^2-h_\theta(x^2)]+...+x_2^2[y^n-h_\theta(x^n)] \\ x_3^1[y^1-h_\theta(x^1)]+x_3^2[y^2-h_\theta(x^2)]+...+x_3^2[y^n-h_\theta(x^n)] \\ . \\ . \\ x_n^1[y^1-h_\theta(x^1)]+x_n^2[y^2-h_\theta(x^2)]+...+x_n^2[y^n-h_\theta(x^n)] \\ \end{bmatrix}=\\ X^T(Y-H)\tag{19} f=θ1fθ2fθ3f..θnf=x11[y1hθ(x1)]+x12[y2hθ(x2)]+...+x12[ynhθ(xn)]x21[y1hθ(x1)]+x22[y2hθ(x2)]+...+x22[ynhθ(xn)]x31[y1hθ(x1)]+x32[y2hθ(x2)]+...+x32[ynhθ(xn)]..xn1[y1hθ(x1)]+xn2[y2hθ(x2)]+...+xn2[ynhθ(xn)]=XT(YH)(19)

 \  
 \  

最后(18)可以写成这样子最后(18)可以写成这样子(18)

(20)Θ=Θ−∇f\Theta=\Theta-∇f\tag{20}Θ=Θf(20)

重复(19)−(20)步足够的次数即可得到最优的(θ1,θ2,...θn)使得代价函数(12)取最小值重复(19)-(20)步足够的次数即可得到最优的(\theta_1,\theta_2,...\theta_n)使得代价函数(12)取最小值(19)(20)(θ1,θ2,...θn)使(12)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值