Ana*_*ory 15 python classification bayesian-networks
我正在尝试使用森林(或树)增强贝叶斯分类器(原始介绍,学习)python(最好是python 3,但python 2也可以接受),首先学习它(结构和参数学习)然后使用它用于离散分类并获得具有缺失数据的那些特征的概率.(这就是为什么只有离散分类甚至好的天真分类器对我来说都不是很有用.)
我的数据进入的方式,我喜欢使用不完整数据的增量学习,但我甚至没有在文献中发现任何这两种情况,所以任何进行结构和参数学习和推理的东西都是好的回答.
似乎有一些非常独立且没有维护的python包大致朝着这个方向发展,但是我没有看到任何适度的近期(例如,我希望pandas用于这些计算是合理的,但OpenBayes几乎没有使用numpy)我看到的任何东西似乎完全没有增强分类器.
那么,我应该在哪里寻找一些实现森林增强贝叶斯分类器的工作?在python类中是否有一个很好的Pearl传递消息传递算法的实现,或者不适合增强的贝叶斯分类器?是否有一个可读的面向对象的实现,用于学习和推理其他语言的TAN贝叶斯分类器,可以转换为python?
我知道现有的包,但发现不合适
milk,它确实支持分类,但不支持贝叶斯分类器(我绝对需要分类和未指定功能的概率)pebl,这只是结构学习scikit-learn,它只学习朴素的贝叶斯分类器OpenBayes自从有人将其移植numarray到numpy文档后,它几乎没有变化,文档可以忽略不计.libpgm,声称支持一组甚至不同的东西.根据主要文档,它进行推理,结构和参数学习.除了似乎没有任何方法可以进行精确推理.bayesian信念网络允许建立通用的贝叶斯网络并实现对它们的推断(精确和近似),这意味着它可用于构建TAN,但其中没有学习算法,以及BN的构建方式意味着实现参数学习比假设的不同实现更困难.恐怕没有现成的Random Naive Bayes分类器实现(我不知道),因为它仍然是学术问题。以下论文介绍了结合 RF 和 NB 分类器的方法(在付费墙后面):http : //link.springer.com/chapter/10.1007%2F978-3-540-74469-6_35
我认为您应该坚持使用scikit-learn,它是 Python 中最受欢迎的统计模块之一(以及NLTK),并且有很好的文档记录。
scikit-learn有一个随机森林模块:http : //scikit-learn.org/stable/modules/ensemble.html#forests-of-randomized-trees。有一个子模块可以(我坚持不确定性)用于管道到 NB 分类器:
RandomTreesEmbedding 实现了数据的无监督转换。RandomTreesEmbedding 使用完全随机树的森林,通过数据点最终进入的叶子的索引对数据进行编码。然后以 K 之一的方式对该索引进行编码,从而产生高维稀疏二进制编码。这种编码可以非常有效地计算,然后可以用作其他学习任务的基础。选择树的数量和每棵树的最大深度可以影响代码的大小和稀疏性。对于集成中的每一棵树,编码包含一个条目。编码的大小最多为n_estimators * 2 ** max_depth,森林中的最大叶子数。
由于相邻数据点更有可能位于树的同一片叶子内,因此转换执行隐式的非参数密度估计。
当然还有朴素贝叶斯分类器的核外实现,可以增量使用:http : //scikit-learn.org/stable/modules/naive_bayes.html
离散朴素贝叶斯模型可用于解决完整训练集可能不适合内存的大规模文本分类问题。为了处理这种情况,MultinomialNB 和 BernoulliNB 都公开了一个 partial_fit 方法,该方法可以像其他分类器一样增量使用,如文本文档的核外分类中所示。
| 归档时间: |
|
| 查看次数: |
4242 次 |
| 最近记录: |