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,后面又要乘上概率会越来越小
东北日出西边雨 道是无情却有情