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版

  • 相关阅读:
    CNN(卷积神经网络)入门
    基于linux vim环境python代码自动补全
    Linux 基本bash命令
    基于pytorch的CNN、LSTM神经网络模型调参小结
    深度学习中Batch size对训练效果的影响
    argparse.ArgumentParser()用法解析
    大数据学习之Hive数据仓库 20
    centOS中安装MySQL超级方便简单的方法
    大数据学习之zookeeper案例节点动态上下线感知19
    大数据学习之zookeeper客户端的命令行及API操作18
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4480357.html
Copyright © 2011-2022 走看看