zoukankan      html  css  js  c++  java
  • 【机器学习】分类算法——Logistic回归

    一、LR分类器(Logistic Regression Classifier)

            在分类情形下,经过学习后的LR分类器是一组权值w0,w1, …, wn,当测试样本的数据输入时,这组权值与测试数据按照线性加和得到x = w0+w1x1+w2x2+… wnxn,这里x1,x2, …xn是样本的n个特征。

             之后按照sigmoid函数的形式求出f(x) = 1/(1+e^(-x))

            由于sigmoid函数的定义域为(-INF, INF),值域为(0, 1),因此最基本的LR分类器适合对两类目标进行分类。

            所以Logistic回归最关键的问题就是研究如何求得w0,w1, …, wn这组权值。这个问题是用极大似然估计来做的。

    二、logistic回归模型

    考虑具有n个独立变量的向量x = (x1,x2, …, xn),设条件慨率P(y=1|x) = p为根据观测量相对于某事件x发生的概率。那么Logistic回归模型可以表示为


    这里

    称为Logistic函数。其中g(x) =w0+w1x1+w2x2+…+wnxn。

    那么在x条件下y不发生的概率为 

    所以事件发生与不发生的概率之比为


     这个比值称为事件的发生比(the oddsof experiencing an event),简记为odds。 

    对odds取对数得到 

            可以看出Logistic回归都是围绕一个Logistic函数来展开的。接下来就讲如何用极大似然估计求分类器的参数。

            假设有m个观测样本,观测值分别为y1,y2, …, ym,设pi = P(yi=1|xi)为给定条件下得到yi=1的概率,同样地,yi=0的概率为P(yi=0|xi) = 1-p,所以得到一个观测值的概率为P(yi) = pi^(yi)*(1-p)^(1-yi)。 

            因为各个观测样本之间相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数为 

             然后我们的目标是求出使这一似然函数的值最大的参数估计,最大似然估计就是求出参数w0, w1, …, wn,使得L(w)取得最大值,对函数L(w)取对数得到

     继续对这n+1个wi分别求偏导,得到n+1个方程,比如现在对参数wk求偏导,由于

    所以得到 


             这样的方程一共有n+1个,所以现在的问题转化为解这n+1个方程形成的方程组。 

            上述方程比较复杂,一般方法似乎不能解之,所以我们引用了牛顿-拉菲森迭代方法求解。 

            利用牛顿迭代求多元函数的最值问题以后再讲。 

            简单牛顿迭代法:http://zh.m.wikipedia.org/wiki/%E7%89%9B%E9%A1%BF%E6%B3%95 

            实际上在上述似然函数求最大值时,可以用梯度上升算法,一直迭代下去。梯度上升算法和牛顿迭代相比,收敛速度慢,因为梯度上升算法是一阶收敛,而牛顿迭代属于二阶收敛。


    三、总结

    Logistic是用来分类的,是一种线性分类器,需要注意的地方有:

      1. logistic函数表达式(sigmoid函数):


    其导数形式为:


    2. logsitc回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为:


      得到整个样本的后验概率:


    其中:


     通过对数进一步化简为:


     3. 其实它的loss function为-l(θ),因此我们需使loss function最小,可采用梯度下降法得到。梯度下降法公式为:



    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    四、要点

    1. 二值型输出(0、1),也被看做是一种概率估计,是一种线性分类器。基本函数(线性回归)z = w0+ w1x1 + w2x2 + … + wnxn,求出z值后带入sigmoid函数判断01值分类。

    2. 在每个特征上都乘上一个回归系数,然后把所有结果相加,将此总和带入sigmoid函数,进而得到一个范围为0~1之间的数值,再用二值映射判定0或1.

    3.分类:(sigmoid函数输出)

             大于0.5:结果为1

             小于0.5:结果为0

    4.关键:回归系数的求解  →→   梯度上升法随机梯度上升法(在线算法)

               (采用最优化算法)

    5.处理缺失数据:依实际情况而定

    核心:

    1.是一种线性分类器,sigmoid函数表达式h(x) = 1/(1+e^(-x))求回归系数x(最大似然估计)

    2.回归系数求解是用最大似然估计来学习的,由单个样本后验概率p(y|xjo)求得整个样本后验概率L(o) = ∏(…),然后对L(o)进行对数化简得到l(o) = logL(o) = ∑(…)

    3.其他loss function为 -I(o),因此需使lossfunction最小。可采用梯度下降法得到,梯度下降法公式:L(o)对o求偏导……

    优点:

    1.实现简单;

    2.分类时计算量很小,速度很快,存储资源低

    缺点:

    1.容易欠拟合,准确度不高

    2.只能处理二分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分。

    数据类型:数值型、标称型


  • 相关阅读:
    qemu-kvm 基础
    QEMU、KVM、libvirt三者间的关系
    QEMU和KVM的关系
    生死乃世间常事,若真爱,请许我出家
    净土大经科注(第四回)第28集文字稿
    净土大经科注 第18集(部分,文字不全)
    二零一四净土大经科注  (第十二集文字稿)
    净土大经科注(第四回)第14集文字稿
    陈静瑜老师系列讲座汇编
    陈静瑜老师:人这个烦恼习气真的是很难改,如果没有坚定的决心,像《了凡四训》上说的那种勇猛心,那种畏惧心、羞耻心,很难回头改过。
  • 原文地址:https://www.cnblogs.com/DianaCody/p/5425635.html
Copyright © 2011-2022 走看看