zoukankan      html  css  js  c++  java
  • logistic回归原理和公式

    转自:http://blog.csdn.net/ariessurfer/article/details/41310525

    Logistic回归为概率型非线性回归模型,是研究二分类观察结果与一些影响因素之间关系的一种多

    变量分析方法。通常的问题是,研究某些因素条件下某个结果是否发生,比如医学中根据病人的一些症状来判断它是

    否患有某种病。

    在讲解Logistic回归理论之前,我们先从LR分类器说起。LR分类器,即Logistic Regression Classifier。

    在分类情形下,经过学习后的LR分类器是一组权值,当测试样本的数据输入时,这组权值与测试数据按

    照线性加和得到

               

    这里是每个样本的个特征。

    之后按照sigmoid函数的形式求出

               

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

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

    下面正式地来讲Logistic回归模型。

    考虑具有个独立变量的向量,设条件慨率为根据观测量相对于某事件发生的

    概率。那么Logistic回归模型可以表示为

               

    这里称为Logistic函数。其中

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

               

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

               

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

    对odds取对数得到

               

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

    假设有个观测样本,观测值分别为,设为给定条件下得到的概率,同样地,

    的概率为,所以得到一个观测值的概率为

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

                                             

    然后我们的目标是求出使这一似然函数的值最大的参数估计,最大似然估计就是求出参数,使得

    取得最大值,对函数取对数得到

                

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

                 

    所以得到

                

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

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

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

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

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

    慢,因为梯度上升算法是一阶收敛,而牛顿迭代属于二阶收敛。

    梯度下降。当然求最小值就是梯度下降,而求最大值相对就是梯度上升。

    由于,如果,那么得到

                 

    现在我们要找一组,使得所有的最接近,设

                  

    现在我们要找一组,使得最小。这就是今天要介绍的梯度下降。

    梯度下降的原理是这样的:首先对于向量赋初值,可以赋随机值,也可以全赋为0,然后改变的值,使得

    按梯度下降最快的方向进行,一直迭代下去最终会得到局部最小值。即

                                                 

    表示梯度最陡的那个方向,表示步长,也就是说每次向下降最快的方向走多远。进一步有

                  

    所以

                   

    简化一下就是

                    

  • 相关阅读:
    各种alloc傻傻分不清楚
    嵌入式开发一般流程
    谈谈看门狗在嵌入式中的用法
    基于开发板的二次嵌入式开发
    谈一谈接口电路
    学习ucos和ARM体系结构的路线图
    寻找链表的中位节点(利用快慢指针)
    水箱容积问题
    盛水最多的容器
    数据结构与算法分析C语言描述第二版第79页
  • 原文地址:https://www.cnblogs.com/home123/p/7356523.html
Copyright © 2011-2022 走看看