跳转到主要内容

用于分类器比较的贝叶斯测试

项目描述

baycomp

Baycomp是一个用于贝叶斯比较分类器的库。

函数可以在一个或多个数据集上比较两个分类器。它们计算三个概率:第一个分类器得分高于第二个分类器的概率,差异在实用等效区域(rope)内的概率,或者第二个分类器得分更高的概率。我们将这些概率称为 p_leftp_ropep_right。如果省略了 rope 参数(或设置为0),则函数仅返回 p_leftp_right

实用等效区域(rope)由调用者指定,并应与实践中“等效”的含义相对应;例如,分类准确度差异小于0.5的可以称为等效。

同样,更高的分数是更好还是更差取决于分数的类型。

该库还可以绘制后验分布。

该库可以以三种方式使用。

  1. 可以使用两个快捷函数对单数据和多数据集进行比较。如果 nbcj48 包含一个列表,其中包含在数据集集合上的朴素贝叶斯分类器和J48的平均分类准确率,我们可以调用

     >>> two_on_multiple(nbc, j48, rope=1)
     (0.23124, 0.00666, 0.7621)
    

    (由于蒙特卡洛采样,实际结果可能有所不同。)

    通过一些额外的参数,该函数还可以从这些概率绘制出后验分布。

  2. 测试被封装在测试类中。上面的调用相当于

     >>> 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)
    
  3. 最后,我们可以构建和查询样本后验分布。

     >>> 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 (15.9 kB 查看哈希值)

上传时间

支持