zoukankan      html  css  js  c++  java
  • LR为什么用极大似然估计,损失函数为什么是log损失函数(交叉熵)

    首先,逻辑回归是一个概率模型,不管x取什么值,最后模型的输出也是固定在(0,1)之间,这样就可以代表x取某个值时y是1的概率

    这里边的参数就是θ,我们估计参数的时候常用的就是极大似然估计,为什么呢?可以这么考虑

    比如有n个x,xi对应yi=1的概率是pi,yi=0的概率是1-pi,当参数θ取什么值最合适呢,可以考虑

    n个x中对应k个1,和(n-k)个0(这里k个取1的样本是确定的,这里就假设前k个是1,后边的是0.平时训练模型拿到的样本也是确定的,如果不确定还要排列组合)

    则(p1*p2*...*pk)*(1-pk+1)*(1-pk+2)*...*(1-pn)最大时,θ是最合适的。联合概率最大嘛,就是总体猜的最准,就是尽可能使机器学习中所有样本预测到对应分类得概率整体最大化。

    其实上边的算式就是极大似然估计的算式:

    对应到LR中:

    总之就是因为LR是概率模型,对概率模型估计参数用极大似然,原理上边说了

     

    然后为什么用logloss作为cost function呢

    主要的原因就是因为似然函数的本质和损失函数本质的关系

    对数似然函数:

     可以看到对数似然函数和交叉熵函数在二分类的情况下形式是几乎一样的,可以说最小化交叉熵的本质就是对数似然函数的最大化。

    对数似然函数的本质就是衡量在某个参数下,整体的估计和真实情况一样的概率,越大代表越相近

    而损失函数的本质就是衡量预测值和真实值之间的差距,越大代表越不相近。

    他们两个是相反的一个关系,至于损失函数的惩罚程度,可以用参数修正,我们这里不考虑。

    所以在对数似然前边加一个负号代表相反,这样就把对数似然转化成了一个损失函数,然后把y取0和1的情况分开(写成分段函数),就是:

     

     意义就是:当y=1时,h=1时没有损失,h越趋近0损失越大

    当y=0时,h=0没有损失,h越趋近1损失越大。

  • 相关阅读:
    原生js封装二级城市下拉列表
    jsonp帮助你知道你关注的他或她喜欢什么歌曲
    sql 进制转换,支持93内的进制相互转换
    linux下批量删除文件
    Ubuntu环境下golang环境搭建
    centos6.5 修改网络配置
    elasticsearch(二)
    Redis
    Spring Data JPA
    elasticsearch(一)
  • 原文地址:https://www.cnblogs.com/hum0ro/p/10243115.html
Copyright © 2011-2022 走看看