美文网首页
机器学习(2)逻辑回归(LG)推导及公式实现

机器学习(2)逻辑回归(LG)推导及公式实现

作者: happyOne1996 | 来源:发表于2020-07-15 17:47 被阅读0次

转载至:https://zhuanlan.zhihu.com/p/158682254

逻辑回归(Logistic Regression)是一个广泛使用的二分类算法,输出标签为y\in{0,1} ,通过sigmoid函数将线性回归模型z=\boldsymbol{w}^T\boldsymbol{x}+b得到的实值转化到0~1,sigmoid函数如下:

y=\frac{1}{1+e^{-(\boldsymbol{w^T\boldsymbol{x}}+b)}}

其曲线形状如下,当y值大于0.5时,标签输出为1,当y值小于0.5时,标签输出为0。

查阅网上关于逻辑回归模型的推导,一般有两种方法,一种是周志华老师的西瓜书中提到的对率回归模型。

方式一:对率回归模型

P_i=(\frac{1}{1+e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}})^{y_i}(\frac{e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}}{1+e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}})^{(1-y_i)}

该模型不容易求导,所以两边取对数,得到如下模型:

l(\boldsymbol{w},b)=\frac{1}{m}\sum_{m}^{i=1}({y_i}ln(\frac{1}{1+e^{-(\boldsymbol{wx_i}+b)}})+(1-y_i)ln(\frac{e^{-(\boldsymbol{wx_i}+b)}}{1+e^{-(\boldsymbol{wx_i}+b)}})))

m为样本的个数,除以m是为了取平均,防止数据过大导致利用梯度算法时变化过大。

 \frac{1}{1+e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}}                                                   --表示标签为1的概率

 \frac{e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}}{1+e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}}=1-\frac{1}{1+e^{-(\boldsymbol{w}^T\boldsymbol{x_i}+b)}}      --表示标签为0的概率

对率回归模型反应的是每个样本其值属于真实标记的概率,概率越大则模型越好,所以这种模型需要求最大值,使用梯度上升法求解:

\boldsymbol{w}=\boldsymbol{w}+\alpha*\frac{\partial{l(\boldsymbol{w},b)}}{\partial(\boldsymbol{w})}

b=b+\alpha*\frac{\partial{l(\boldsymbol{w},b)}}{\partial(b)}

\alpha --学习率

方式二:损失函数

出现最多的模型推导方式还是取交叉熵求损失函数,交叉熵的公式如下:

-xln(p(x))

x为取值,p(x)为取到x的概率,将y_i1-y_i带入得到:

l_2(\boldsymbol{w},b)=-\frac{1}{m}\sum_{m}^{i=1}({y_i}ln(\frac{1}{1+e^{-(\boldsymbol{wx_i}+b)}})+(1-y_i)ln(\frac{e^{-(\boldsymbol{wx_i}+b)}}{1+e^{-(\boldsymbol{wx_i}+b)}})))

损失函数要求越小越好,所以使用梯度下降法:

\boldsymbol{w}=\boldsymbol{w}-\alpha*\frac{\partial{l_2(\boldsymbol{w},b)}}{\partial(\boldsymbol{w})}

b=b-\alpha*\frac{\partial{l_2(\boldsymbol{w},b)}}{\partial(b)}

事实上,可以看出 l(\boldsymbol{w},b)=-l_2(\boldsymbol{w},b),所以最终两种推导方式得到的梯度模型是一样的。下面给出\frac{\partial{l(\boldsymbol{w},b)}}{\partial(\boldsymbol{w})}\frac{\partial{l(\boldsymbol{w},b)}}{\partial(b)}的推导过程。

公式求导

其中\overline{y}_i=\frac{1}{1+e^{-(wx_i+b)}}为样本i的预测值,w\in{R^{n\times{1}}},n为特征数, x_i\in{R^{n\times{1}}}为单个样本。

\frac{\partial{l(\boldsymbol{w},b)}}{\partial(b)}=\frac{1}{m}\sum_{i=1}^{m}{\{y_i(1+e^{(-wx_i+b)})}\frac{e^{-(wx_i+b)}}{(1+e^{-(wx_i+b)})^2} +(1-y_i)\frac{1+e^{-(wx_i+b)}}{e^{-(wx_i+b)}}\frac{e^{-(wx_i+b)}(1+e^{-(wx_i+b)})+e^{-2(wx_i+b)}}{(1+e^{-(wx_i+b)})^2}\} \\= \frac{1}{m}\sum_{i=1}^{m}{(\frac{y_ie^{-(wx_i+b)}}{1+e^{-(wx_i+b)}}+\frac{-(1-y_i)}{1+e^{-(wx_i+b)}})} \\= \frac{1}{m}\sum_{i=1}^{m}{(\frac{y_i(1+e^{-(wx_i+b)})-1}{1+e^{-(wx_i+b)}})}  \\=\frac{1}{m}\sum_{i=1}^{m}{(y_i-\frac{1}{1+e^{-(wx_i+b)}})} \\=\frac{1}{m}\sum_{i=1}^{m}{y_i-\overline{y}_i}

上面两个公式的推导均用到了微积分中两个重要的求导法则一个是求复合函数的链式求导法则,一个是除法求导法则[1]

除法定则:设f(x)、g(x) 为关于x的函数,则\frac{f(x)}{g(x)}关于x的导数可表示为:

\frac{d(\frac{f(x)}{g(x)})}{dx}=\frac{f{\prime}(x)g(x)-f(x)g^{\prime}(x)}{g^{2}(x)}

链式法则 g(f(x))^{\prime}=\frac{dg[f(x)]}{dx}=\frac{dg(f)}{df}\frac{df}{dx}

ln(\frac{1}{1+e^{-(\boldsymbol{wx_i}+b)}})w求导为例:

f(w)=\frac{1}{1+e^{-(\boldsymbol{wx_i}+b)}}

g(w)=ln(f(w))

ln(f(w))^{

其中 \frac{d(lnf(w))}{f(w)}=\frac{1}{f(w)}=1+e^{-(\boldsymbol{wx_i}+b)}

\frac{df(w)}{w}=(\frac{1}{1+e^{-(\boldsymbol{wx_i}+b)}})^{\prime}=\frac{1^{\prime}\ast (1+e^{-(\boldsymbol{wx_i}+b)})-(1+e^{-(\boldsymbol{wx_i}+b)})^{prime}\ast 1}{(1+e^{-(\boldsymbol{wx_i}+b)})^2} \\=\frac{\boldsymbol{x_i}e^{-(\boldsymbol{wx_i}+b)}}{(1+e^{-(\boldsymbol{wx_i}+b)})^2}

g^{\prime}(w)=(1+e^{-(\boldsymbol{wx_i}+b)})\frac{\boldsymbol{x_i}e^{-(\boldsymbol{wx_i}+b)}}{(1+e^{-(\boldsymbol{wx_i}+b)})^2}=\frac{\boldsymbol{x_i}e^{-(\boldsymbol{wx_i}+b)}}{(1+e^{-(\boldsymbol{wx_i}+b)})}

将上面公式转化为矩阵形式:

\frac{\partial{l(\boldsymbol{w},b)}}{\partial(\boldsymbol{w})}=X^T(Y-\overline{Y})

\frac{\partial{l(\boldsymbol{w},b)}}{\partial(b)}=\frac{1}{m}\sum_{i=1}^{m}{y_i-\overline{y}_i}  (求和)

X\in{R^{m\times{n}}}Y,\overline{Y} \in{R^{m\times{1}}}

代入梯度公式:

\boldsymbol{w}=\boldsymbol{w}+\alpha*X^T(Y-\overline{Y})

b=b+\alpha*\frac{1}{m}\sum_{i=1}^{m}{y_i-\overline{y}_i}

matlab代码:

```

load fisheriris %加载数据

%fisheriris的数据包含150*4的样本数据meas以及150*1的标签species,包含三种类别,

%均以字符给出,我们选取两种并将其转化为0,1。特征也是从4个里面选取最后两个。%sigmoid函数

function y=sigmoid(x)

y=zeros(length(x),1);

for i=1:length(x) 

 y(i)=1.0/(1+exp(-x(i)));

end

end

function [label,w,a,b]=logistic(meas,species) 

      meas1=meas(51:150,3:4);

      meas1(:,1)=meas1(:,1)/max(meas1(:,1));

        meas1(:,2)=meas1(:,2)/max(meas1(:,2));

      species=species(51:150);

      label=ones(100,1); 

     for i=1:length(meas1)

%            if species(i)=="setosa"

%                plot(meas1(i,1),meas1(i,2),"r*")

%                hold on            

if species(i)=="versicolor"

              plot(meas1(i,1),meas1(i,2),"bx")

              label(i)=0;              hold on

            elseif species(i)=="virginica"

                plot(meas1(i,1),meas1(i,2),"g+") 

               hold on

          end

      end

      [m,n]=size(meas1); 

     w = ones(n,1); 

     b=1; 

     alpha=0.0001; 

     maxCycle=5000000;

      for k =1:maxCycle

          h=sigmoid(meas1*w+b); 

         error=label-h;

          w=w+alpha*meas1.'*error/m; 

         b=b+alpha*sum(error)/m;

      end

      x=0:0.01:1;

      y=(-w(1)*x-b)/w(2);

      plot(x,y)     

      for i=1:100 

         a=sigmoid(meas1*w+b); 

     end

end

```

相关文章

  • 机器学习(2)逻辑回归(LG)推导及公式实现

    转载至:https://zhuanlan.zhihu.com/p/158682254 逻辑回归(Logistic ...

  • 机器学习实战-逻辑回归算法

    关于逻辑回归的理解以及公式推导,可以看前面的文章逻辑回归公式推导 逻辑回归 sigomoid function: ...

  • 逻辑回归模型

    1.逻辑回归介绍2.机器学习中的逻辑回归3.逻辑回归面试总结4.逻辑回归算法原理推导5.逻辑回归(logistic...

  • 理论-线性回归

    2018.04.25更新: 最小二乘法公式推导 谷歌关键词:机器学习 最小二乘法 线性回归 公式推导 参考链接: ...

  • 逻辑回归公式推导及代码实现

    写在前面,本人是机器学习初学者,写下这篇博客的主要目的是给那些对公式推导有疑惑的朋友一点点思路。顺便记录自己的点滴...

  • 2018-04-23

    周末,学习了2天机器学习的课程,整片的公式推导让我有些发蒙,今天就请假一天来整理下逻辑回归中的一些知识点。以备以后...

  • 逻辑回归 logistics regression

    逻辑回归 logistics regression 公式推导 逻辑回归虽然名字里面有回归,但是主要用来解决分类问题...

  • 逻辑回归理解及公式推导

    逻辑回归(logistic-regression) 逻辑回归:个人理解就是一个线性回归经过阶跃函数的处理,变成一个...

  • 机器学习-逻辑回归推导

    逻辑回归在机器学习中属于比较常见的模型,它由感知机模型发展而来。刚学习机器学习的时候,看到感知机这个名字好奇怪,为...

  • 2 逻辑回归

    逻辑回归是线性回归的变形,看了很多机器学习书籍,吴恩达的课程对线性回归和逻辑回归的讲解非常清晰,原理性和推导都很好...

网友评论

      本文标题:机器学习(2)逻辑回归(LG)推导及公式实现

      本文链接:https://www.haomeiwen.com/subject/cyrjhktx.html