用于分类器比较的贝叶斯测试
项目描述
baycomp
Baycomp是一个用于贝叶斯比较分类器的库。
函数可以在一个或多个数据集上比较两个分类器。它们计算三个概率:第一个分类器得分高于第二个分类器的概率,差异在实用等效区域(rope)内的概率,或者第二个分类器得分更高的概率。我们将这些概率称为 p_left
、p_rope
和 p_right
。如果省略了 rope
参数(或设置为0),则函数仅返回 p_left
和 p_right
。
实用等效区域(rope)由调用者指定,并应与实践中“等效”的含义相对应;例如,分类准确度差异小于0.5的可以称为等效。
同样,更高的分数是更好还是更差取决于分数的类型。
该库还可以绘制后验分布。
该库可以以三种方式使用。
-
可以使用两个快捷函数对单数据和多数据集进行比较。如果
nbc
和j48
包含一个列表,其中包含在数据集集合上的朴素贝叶斯分类器和J48的平均分类准确率,我们可以调用>>> two_on_multiple(nbc, j48, rope=1) (0.23124, 0.00666, 0.7621)
(由于蒙特卡洛采样,实际结果可能有所不同。)
通过一些额外的参数,该函数还可以从这些概率绘制出后验分布。
-
测试被封装在测试类中。上面的调用相当于
>>> SignedRankTest.probs(nbc, j48, rope=1) (0.23124, 0.00666, 0.7621)
要获取图表,我们调用
>>> SignedRankTest.plot(nbc, j48, rope=1, names=("nbc", "j48"))
要切换到另一个测试,请使用另一个类:
>>> SignTest.probs(nbc, j48, rope=1) (0.26508, 0.13274, 0.60218)
-
最后,我们可以构建和查询样本后验分布。
>>> posterior = SignedRankTest(nbc, j48, rope=0.5) >>> posterior.probs() (0.23124, 0.00666, 0.7621) >>> posterior.plot(names=("nbc", "j48"))
安装
从 PyPI 安装
pip install baycomp
文档
用户文档可在 https://baycomp.readthedocs.io/ 查找。
关于实现方法的详细描述可在 Time for a Change: a Tutorial for Comparing Multiple Classifiers Through Bayesian Analysis 一文中找到,作者为Alessio Benavoli, Giorgio Corani, Janez Demšar, Marco Zaffalon。发表于《Journal of Machine Learning Research》,第18卷(2017年),第1-36页。
项目详情
baycomp-1.0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 32b25ad7b16d5b251ddb9f6110a32d7b3953b987096da1d25ef277935d25daec |
|
MD5 | c04465db79898ef124ea6aded6b7b163 |
|
BLAKE2b-256 | e95fc9ae9b86de6681401a2a57510eb581fd593d0897e7e43b4b1c1eede87b20 |