zoukankan      html  css  js  c++  java
  • 逻辑回归模型

    逻辑回归模型(Logistic Regression)是一种分类模型,属于广义的线性回归模型,它也是一种判别模型,由条件概率(P(Y|X))表示。二项逻辑回归中,随机变量(X)取实数,(Y)的取值为1或者0。逻辑回归模型简单高校,在实际应用中非常广泛,如预测一个用户是否点击广告,判断用户性别等。

    sigmoid函数

    介绍逻辑回归模型前,首先引入sigmoid函数,它的定义如下

    [sigma(z)=frac{1}{1+e^{-z}} ]

    sigmoid函数将取值在((-R,R))的变量映射到((0,1))之间,该函数在(z=0)附近增长较快,在两端增长较慢,这个性质可以让我们以概率的方式来解释模型。并且(sigma(z))光滑可导

    [sigma(z)'=sigma(z)(1-sigma(z)) ]

    即它的导数可以用自己表示。

    模型

    二项逻辑回归模型是如下条件概率分布

    [P(Y=1|x)=frac{exp(w cdot x+b)}{1+exp(w cdot x+b)} \ P(Y=0|x)=frac{1}{1+exp(w cdot x+b)} ]

    上式中,(xin R^n)是输入,(Y in {0,1})是输出,(b)是偏置量。它表示在特征(x)下样本分布属于类别0和1的概率。一般情况下,模型将样本分到概率大的那个类别。为了表示方便,将输入向量和权重向量进行扩充

    [x=[x_1,x_2,...,x_n,1]^T \ w=[w_1,w_2,...,w_n,b]^T ]

    这样模型就可以简写为

    [P(Y=1|x)=frac{exp(w cdot x)}{1+exp(w cdot x)} \ P(Y=0|x)=frac{1}{1+exp(w cdot x)} ]

    下面考察逻辑回归模型的特点。一个事件的几率(odds)是指该事件发生的概率与不发生的概率的比值,设该时间发生概率为(p),不发生概率为(1-p),则该时间的对数几率或者logit函数表示为

    [logit(p)=ln{frac{p}{1-p}} ]

    对于逻辑回归函数而言

    [ln{frac{P(Y=1|x)}{1-P(Y=1|x)}}=w cdot x ]

    即输出(Y=1)的几率是输入(x)的线性函数表示的模型。

    决策函数

    逻辑回归模型所做的假设是

    [P(Y=1|x)=frac{exp(w cdot x)}{1+exp(w cdot x)} ]

    它的决策函数是

    [y^*=1 quad extrm{if} quad P(Y=1|x)>0.5 ]

    0.5只是一种常用的阈值,实际中可以选择不同的阈值,如果对正例的选择的判别准确率要求高,可以选择大一点的阈值,如果对正例的召回率要求高,可以选择小一点的阈值。

    模型参数求解

    逻辑回归模型输入的数据集为

    [T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)} ]

    其中(x_i in R^n,y_i in {0,1}).我们采用极大似然估计方法来求解模型中的参数向量(w),即找到一组参数,在这组参数条件下,模型的似然度最大。
    为了推导方便,这里令(P(Y=1|x)=pi(x)),则(P(Y=0|x)=1-pi(x)),似然函数表示为

    [L(w)=prod_{i=1}^N[pi(x_i)]^{y_i}[1-pi(x_i)]^{1-y_i} ]

    于是对数似然函数表示为

    [ln{L(w)}=sum_{i=1}^N [y_i ln{pi(x_i)}+(1-y_i)ln{(1-pi(x_i))}] \ =sum_{i=1}^N[y_iln{frac{pi(x_i)}{1-pi(x_i)}}+ln{(1-pi(x_i))}] \ =sum_{i=1}^N[y_i(w cdot x_i)-ln{(1+exp(w cdot x_i))}] ]

    于是

    [w^*= arg ; max_{w} ; ln{L(w)} quadquadquadquadquadquadquadquadquad ]

    上述最优化问题没有解析解,需要通过牛顿法或者梯度上升来学习模型中的参数。

    梯度上升法

    梯度上升法它是一种通过平面来逼近局部的方法,通过每一步选择目标函数变化最快的方向来调整参数值逼近最优值。步骤如下:

    • 选择上升降方向,即为梯度方向( abla ln{L(w)})
    • 选择步长,更新参数。
    • 重复上述两步,直到找到极小值为止。

    求解的目标函数为

    [w^*= arg ; max_{w} ; ln{L(w)} quadquadquadquadquadquadquadquadquad ]

    求目标函数偏导数

    [dfrac{partial ln{L(w)}}{partial w^{(j)}}=sum_{i=1}^N[y_i-pi(x_i)]x_i^{(j)} ]

    其中(x_i^{(j)})表示特征向量(x_i)的第(j)个分量,(w^{(j)})表示(w)的第(j)个分量。(w)更新方式表示为

    [w^{(j)}:=w^{(j)}+alphasum_{i=1}^N[y_i-pi(x_i)]x_i^{(j)} quadquadquadquadquad ]

    上式中,(alpha)是学习率。

  • 相关阅读:
    Python学习笔记(10):异常
    SharePoint中RichTextBox的Required验证
    Python学习笔记(6):模块
    Python学习笔记(4):控制流
    Python学习笔记(5):函数
    解决SharePoint中GridView导出Excel按钮的问题
    Python学习笔记(8):面向对象
    如何在SharePoint中创建Custom Master Page
    main cannot be resolved or is not a field
    c# 格式化输出字符串
  • 原文地址:https://www.cnblogs.com/td15980891505/p/7705156.html
Copyright © 2011-2022 走看看