zoukankan      html  css  js  c++  java
  • 机器学习中的逻辑回归方法

    首先逻辑回归解决的是分类的问题。

    它的线性模型可以表达为

    $$h_{ heta}=g( heta^{T}*x)$$

    其中g函数为sigmod函数,也叫对数函数,主要作用是把一个变量平滑地映射到(0,1)区间,具体的形式为

    $$g(z) = frac{1}{1+e^{-z}}$$

    那么我们把$h_{ heta}$作为,在样本x情况下,y = 1的概率的一个估计,这个是模型的核心。

    为什么做这样的估计是可行的,假设我们的判别是这样的,

    当$h_{ heta}$ >= 0.5时,判别为正类,即y=1,

    当$h_{ heta}$ < 0.5时,判别为负类,即y=0

    这等价于

    当$ heta^{T}*x$ >= 0时,判别为正类,即y=1,

    当$ heta^{T}*x$ < 0时,判别为负类,即y=0

    问题可以看做为线性回归问题,即通过线性回归获得$y= heta^{T}*x$的参数$ heta$。

    我们也可以通过引入代价函数来求解模型, 下面为对于y为1的样本的代价函数

    $-log(h_{ heta}) \, \, \, when \, y = 1$

    这是对数的代价函数,对y为1的样本,如果$h_{ heta}$也为1时,代价为0,如果$h_{ heta}$趋向于0,代价趋向于无穷大。

    对于y为0的样本,代价函数如下

    $-log(1-h_{ heta}) \, \, \, when \, y = 0$

    整合在一起的代价函数为

    $J( heta)=-sum_{i=1}^{m}y^{i}*log(h_{ heta}(x^{i})) +(1-y^{i})*log(1-h_{ heta}(x^{i}))$

    这个代价函数是一个凸函数,用梯度下降法可以求得最小值。简单推导梯度下降过程

    $frac{partial J}{partial { heta}} = - (frac{y}{h_{ heta}}frac{partial h_{ heta}}{partial { heta}} - frac{1-y}{1-h_{ heta}}frac{partial h_{ heta}}{partial { heta}})$

    $frac{partial J}{partial { heta}} = - (frac{partial h_{ heta}}{partial { heta}}(frac{y-h_{ heta}}{h_{ heta}*(1-h_{ heta})})))$

    $h_{ heta}$是sigmod函数,sigmod函数的求导公式为g'(z) = g(z)*(1-g(z)),所以

    $frac{partial J}{partial { heta}} = sum_{i=1}^{m} x*(h_{ heta} - y)$

    于是$ heta$的迭代更新为

    $ heta_{j} := heta_{j} - alphasum_{i=1}^{m}{(h_{ heta}(x^{i}) - y^{i})*x^{i}}$

  • 相关阅读:
    SharePoint网站迁移问题
    使用.NET框架自带的Json序列化类
    IL:Hello World
    Javascript面向对象
    抽象代数学习记录
    关于集成测试
    用QTP脚本操作腾讯QQ好友买卖功能
    关于白盒测试一些资料
    Developer小记
    架构设计
  • 原文地址:https://www.cnblogs.com/learninglife/p/9921781.html
Copyright © 2011-2022 走看看