zoukankan      html  css  js  c++  java
  • 逻辑回归原理推导

    逻辑回归(Logistic Regression,LR)是一种线性分类器,通过logistic函数,将特征映射成一个概率值,来判断输入数据的类别。如下图,纵坐标就是概率。当概率大于0.5,判定为类别1,否则判定为类别0。

    logistic函数的表达式如下,其中w是需要训练的权值:

    [ heta(w^Tx)=frac{1}{1+e^{-w^Tx}} ]

    逻辑回归的损失函数叫做交叉熵损失函数(cross-entropy loss),下面给出推导过程。
    假设数据集符合泊松分布,即

    [P(y|x)=egin{cases}p, quad y=1 \ 1-p, quad y=0 end{cases}=p^y(1-p)^{1-y} ]

    其中概率p是根据logistic函数计算出来的:

    [p=frac{1}{1+e^{-w^Tx}} ]

    假设有N个数据点(x_1, x_2, ..., x_N),他们为类别标签分别为(y_1, y_2, ..., y_N)。假设各个数据点之间相互独立,则根据最大似然估计有:

    [egin{split} P(Y|X) &=P(y_1,y_2,...,y_N|x_1,x_2,...,x_N) \&=Pi_{i=1}^NP(y_i|x_i) \ &=Pi_{i=1}^Np_i^{y_i}(1-p_i)^{1-y_i} end{split} ]

    对等式两边取负对数,得到负对数函数为:

    [L(Y|X)=-Sigma_{i=1}^Ny_iln(p_i)+(1-y_i)ln(1-p_i) ]

    其中(y_i)代表数据真实的标签,取值为0或1,(p_i)为数据为类别1的概率,取值范围是0到1。负对数函数对N个样本取平均,便得到交叉熵损失函数如下:

    [loss(w)=-frac{1}{N}Sigma_{i=1}^Ny_iln(p_i)+(1-y_i)ln(1-p_i) ]

    可以看到,当(y_i=1)时,(p_i)越接近1,损失函数越小;当(y_i=0)时,(p_i)越接近0,损失函数越小。因此,通过训练,可以迫使(p_i)趋近于(y_i),从而正确分类。说逻辑回归是线性分类器,这里的线性怎么理解呢?通过Logistic函数可以看到,决定概率值的是(w^Tx)的值。当(w^Tx>0)时,概率值大于0.5,类别为1;当(w^Tx<0)时,概率值小于0.5,类别为0。也就是说,(w^Tx=0)是两类数据的分界面(分类超平面,如下图)。这种用一个超平面将数据进行分类的,就是线性分类器。对应的,如果用一个曲面将数据进行分类,则是非线性分类器了。

  • 相关阅读:
    优酷视频下载,优酷真实地址解析
    vim配置入门,到豪华版vim配置
    python字典实现三级菜单
    python 购物车
    来到博客园的第一天
    python urllib模块使用详解
    ubutun升级命令
    SQL注入笔记
    Ajax_showHint() 函数
    轮播图中遇到的问题
  • 原文地址:https://www.cnblogs.com/jiaxblog/p/9691107.html
Copyright © 2011-2022 走看看