• 贝叶斯决策与参数估计小结


    有监督机器学习的问题都是以这种形式出现的:

    • 给定training set (D): ((x_i, y_i)), (i in {1,2, dots, m}), (y_iin {1, dots, c})
    • 选一个模型进行训练
    • 预测新样本(x)(y)

    贝叶斯决策论采用概率模型, 在(0-1)loss 的情况下, 最佳选择, 也是风险最小的选择, 就是后验概率最大的那个.

    [P(w_k|x) = frac {P(x|w_k)P(w_k)}{P(x)} ]

    先验概率(P(w_k))好计算, 无论特征的值是连续的还是离散的, 求出现过的频率就可以了.
    但其它两个, likelihood (P(x|w_k))与 evidence (P(x))却是不好办, 特别是当特征的值是离散的很厉害, 或者干脆是连续的时候. 所以求它们的时候用频率代替概率是行不通的, 因为大部分时候求出来的都会是0, 除非(x)与某个训练样本(x_i)完全相同.

    于是需要为(x)的分布建立一个概率模型. 在贝叶斯决策论里有一个很重要的假设: 各个类别的(x)分布是相互独立的. 所以可以为每个类别的(x)分布各自建立概率模型(P(x; heta_k|w_k)). 模型里面有未知参数( heta_k). 利用样本集(D)进行参数估计, 得到(hat heta_k)后, (P(x|w_k))就是一个关于(x)的、完全已知的函数了. 然后利用全概率公式(P(x) = sum_{k=1}^c P(x|w_k)P(w_k))就可以计算出(P(x))了.

    于是现在最重要的问题就是利用(D)来估计( heta_k)了. 因为之前已经假设过各个类别的分布是独立的了, 所以(c)个类别的分布模型都可以单独处理. 我们学过的参数估计方法有三种: 矩估计, 最大似然估计与贝叶斯估计. 矩估计用的比较少, 因为特征(x)维数很高时, 它的计算代价很大.

    最大似然估计假设( heta_k)的值原本就是固定而未知的, 同时使用所有正负样本, 把它们的联合分布率看作是一个关于( heta_k)的函数, 即似然函数(L( heta_k)). 让(L( heta_k)) 取得最大值的( heta_k)便是(hat theta_k): $$hat heta_k = argmax_{ heta_k} L( heta_k)$$.

    贝叶斯估计认为( heta_k)也是一个随机变量, 服从一个确定且已知的分布(P( heta_k)), 这个分布凝聚了估计者对( heta_k)的全部先验知识. ( heta_k)就像薛定谔猫, 箱子关闭时或生或死不确定, 箱子打开时是生是死就确定了. 取样就是一个开箱子的过程. 取样前( heta_k)是随机的, 但取样一旦开始, 它的值就确定下来了, 因为有了观察者, 呵呵. 这个确定但未知的值就是我们要根据样本集(D_k = {(x_i, y_i)|y_i = k})估计的对象了.

    [P( heta_k|D_k) = frac {P(D| heta_k)P( heta_k)}{int P(D| heta_k)P( heta_k)d heta_k} ]

    (P( heta_k|D_k))是一个关于( heta_k)的函数

    [hat heta_k = int P( heta_k|D_k) heta_k d heta_k ]

  • 相关阅读:
    Java常考面试题整理(一)
    TLPI读书笔记第29章:线程介绍
    TLPI读书笔记第57章-SOCKET:UNIX DOMAIN
    TLPI读书笔记第23章:定时器与休眠1
    java中线程安全的集合
    在springboot中使用jdbcTemplate
    springboot设置定时任务(转)
    springboot中使用swagger
    springboot中的@RequestMapping和@GetMapping(转)
    springboot在controller中传递参数
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/5530167.html
Copyright © 2020-2023  润新知