bayes-M估计

推荐:https://blog.csdn.net/cyningsun/article/details/8671975

inline double p(CatValue y)//const double M = 1.0;  typedef unsigned int CatValue;
{
      return (classCounts[y] + M / metaData_->getNoClasses()) / (count + M); 
}

     在petal系统中,使用M估计来计算各种概率

  metaData_->getNoClasses() 返回的是 class 类标签的取值, count 返回的是测试实例的数量, M 的值取 1.0

      这个就是贝叶斯分类器 M 估计,[某一个类标签取值出现的频率+等效样本大小m(我们这里取的是M=1)*p(要估计的概率的先验概率,也就是p(C=y)的先验概率,就是1/class可能的取值总数)]/{实例总数+等效样本大小(M=1)}  

为什么要采用M估计?

       用M估计是为了防止直接用 某一个类标签取值出现的频率/实例总数 会太小接近于0,后面又要乘上概率会越来越小  

东北日出西边雨 道是无情却有情
原文地址:https://www.cnblogs.com/ccut-ry/p/13735005.html