zoukankan      html  css  js  c++  java
  • 机器学习之逻辑回归

    逻辑回归是一种回归的方法,可以说是线性回归映射到(0, 1)之间的线性回归,适合两类分类,以及在给出分类的时候能够一同给出分到该类别的概率大小。

    线性回归模型如下:

    用sigmoid函数映射到(0, 1)区间如下:

    那么可以得到以下条件概率:

    那么给定一个样本x,它的似然函数为

    对数似然函数为

    接下来对w求导,结果如下:

    如果用cost function 来定义,那么得到的方程正好与上式相差一个负号,如下:

    那么接下来就是用来求解参数w了,如果使用似然函数,那么最优化问题可以转化为梯度上升算法,如果使用cost function,那么可以转化为梯度下降算法,二者是等价的。

    ——————————————————————————————————————————————————————————————————

    上面是求解w的公式推导,但是在实际问题中使用梯度下降(或者梯度上升,下文使用梯度下降)会存在问题,

    这里在提一下梯度下降算法,这个再线性回归中也会用到,最后的优化方程跟上面逻辑回归得到的是一样的。迭代公式如下:

    每次朝着w最优的方向调整,上面已经得到w的偏导,那么初始化一个w,接下来进行迭代就没问题了。此外我们注意到,w的偏导,是对所有的数据点进行一个表达式的求和,所以在每次迭代的时候,都要遍历所有数据点,样本数量少尚可,样本量大了,那么复杂度就太高了,一个改进的方法就是使用随机梯度下降,每次用一个样本更新w,所有的样本随机取,并且迭代多次。

    可能会有一个问题,为什么要用随机迭代呢,这里因为数据可能会有周期性,那么在w的求解过程中,可能会有震荡产生。随机取样可以避免这种现象的发生。

    参考资料:

    [1] 李航等, 统计学习方法, 2012年3月第1版

    [2] Peter Harrington,机器学习实战,2013年第1版

  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    微信小程序TodoList
    C语言88案例-找出数列中的最大值和最小值
    C语言88案例-使用指针的指针输出字符串
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4480357.html
Copyright © 2011-2022 走看看