Python中有简单的贝叶斯分类器吗?
我试过使用Orange框架来做朴素贝叶斯分类。
- 这个框架的方法非常不直观,而且文档也很乱。这里有没有人推荐其他的框架?
- 目前我主要在用
NaiveBayesian
。
我本来想用nltk的
NaiveClassification
,但他们认为这个框架处理连续变量可能不太行。
我还有哪些选择呢?
6 个回答
13
这个链接可能是个不错的起点。里面有一个完整的源代码,包括文本解析器、数据存储和分类器,都是用Python实现的朴素贝叶斯分类器。虽然代码很完整,但也不复杂,适合一次性看完。我觉得代码写得还不错,注释也很清晰。这部分代码是书籍《编程集体智慧》的源代码文件。
要获取源代码,点击链接,下载并解压缩这个压缩包。在主文件夹'PCI_Code'里,找到'chapter 6'文件夹,里面有一个Python源文件'docclass.py'。这就是贝叶斯垃圾邮件过滤器的完整源代码。训练数据(邮件)保存在一个sqlite数据库里,这个数据库也在同一个文件夹里,叫'test.db'。你只需要一个外部库,就是Python对sqlite的绑定(pysqlite);如果你还没安装sqlite本身,也需要安装它。
25
scikit-learn 是一个机器学习库,它里面有一个高斯朴素贝叶斯分类器的实现。总的来说,这个库的目标是提供一种代码既容易阅读和使用,又能高效运行的平衡。希望这个库能帮助你更好地理解算法是如何工作的。