c++ - OpenCV 随机决策森林 : How to get posterior probability

标签 c++ opencv machine-learning classification random-forest

我在多个网站上进行了研究,但找不到任何解决方案。 问题是:

我正在使用 OpenCV 中的 RTrees 实现像素级分类。我需要每个类别的后验概率。我试图通过 cv::ml::StatModel::predict() 获取它,但输出矩阵只包含预测值。有没有其他方法可以从 RTree 中获取后验概率?

PS:我对机器学习还是很陌生,所以请原谅我的知识不足^^”

最佳答案

而不是使用 cv::ml::StatModel::predict , 你可以引用 cv::ml::RTrees::getVotes成员函数。这样,在分类的情况下,您可以获得为给定样本的每个类投票的树的数量。通过将这些票数除以森林大小,您可以获得后验概率的近似值。

getVotes 函数应该这样调用而不是 predict:

cv::Mat samples = [one or multiple samples (their feature vectors)]
cv::Mat votes;
classifier.getVotes(sample, votes, 0);
// provide 0 here unless you would like to manipulate with RTrees flags

您应该注意的是,votes 矩阵将比样本数多一行。第一行列出了您的类(如果我从 OpenCV 源代码中记得清楚的话,按升序排列)。

答案是最新的 OpenCV 3.4.1 版本。

关于c++ - OpenCV 随机决策森林 : How to get posterior probability,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46151886/

相关文章:

c++ - OpenGL 纹理未正确显示 - 奇怪的行为

machine-learning - 仅根据同一比赛的过往数据预测足球比赛获胜者

scala - Spark 加载决策树数据 - 更改 LabelledPoint 中的标签

c++ - 在 C++ 中使用均匀实数分布生成的随机数并不是真正均匀分布的

c++ - 管理 C 套接字中客户端突然断开连接的好方法

c++ - std::this_thread::sleep_until 时序完全偏离约 2 倍,莫名其妙

machine-learning - 如何防止 weka 中的雪球词干分析器将 "awful"词干提取到 "aw"?

c++ - 三元运算符的动态指针引用数组返回值异常

python - 图片类型错误 : OpenCV Python

c++ - OpenCV 皮肤检测