zoukankan      html  css  js  c++  java
  • 朴素贝叶斯

    常用tricks

    1)平滑技术:拉普拉斯平滑

     

    2)对极大似然式子取对数

    算法理论

    判断一个样本x属于哪个类别y1, y2, y3……, 即是判断max( P(y1|x), P(y2|x), P(y3|x)….),若最大值是P(yi|x), 那么样本x就属于i类别。

    那么该如何求解P(yk|x)?

     

    这里c = yk,

    因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

     

    根据我们的样本,很容易计算出P(a1|yi), P(a2|yi)…….,得到一系列P(x|yi)P(yi)的值后,最大值所对应的i值就是样本x的类别。

    Tip:

    1)实际应用中如果P(ak|yi)为0,那么P(x|yi)P(yi)就为0,我们可以将ak初始化为1,分母初始化为2

    2)下溢问题,如果P(ak|yi)值很小,那么他们的乘积便会非常小,一种办法就是对乘积去对数。

    使用

    1)多项分布朴素贝叶斯

    我们假设各特征属性条件独立,这里假设特征属性服从多项式分布,P(ak|yi)与下式相等

     

    式中 Nyi是训练集T中特征i在类y中出现的次数,Ny是类y中出现所有特征的计数总和。

    先验平滑因子α>=0 应用于在学习样本中没有出现的特征,以防在将来的计算中出现0概率输出。把α = 1 被称为拉普拉斯平滑(Lapalce smoothing),而α < 1 被称为利德斯通(Lidstone smoothing)

    from sklearn.naive_bayes import MultinomialNB

    2)高斯朴素贝叶斯

    我们假设各特征属性条件独立,这里假设特征属性服从多项式分布,P(ak|yi)与下式相等

     

    from sklearn.naive_bayes import GaussianNB

  • 相关阅读:
    rest framework 认证 权限 频率
    rest framework 视图,路由
    rest framework 序列化
    10.3 Vue 路由系统
    10.4 Vue 父子传值
    10.2 Vue 环境安装
    10.1 ES6 的新增特性以及简单语法
    Django 跨域请求处理
    20190827 On Java8 第十四章 流式编程
    20190825 On Java8 第十三章 函数式编程
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10094727.html
Copyright © 2011-2022 走看看