朴素贝叶斯分类器的思路比较简单,核心就是“属性之间互不影响”这一个假设,算后验概率的时候快,适合你手头数据不太大,特征又不少的情况。嗯,代码写起来也不复杂,像用在文本分类、垃圾邮件过滤这些场景,效果还不错。

TAN 分类器是在朴素贝叶斯上做了点优化,不再强求特征之间完全独立,它引入了一种“树形结构”的方式,稍微麻烦点,但可以捕捉到特征间的依赖关系,分类准确率会更高一点。尤其数据稍微复杂时,TAN 更靠谱。

贝叶斯网络分类器就更高级了,整一个图形结构来表示特征间的依赖关系,灵活性蛮强,就是建图的时候稍微有点费劲,需要先做结构学习,再做参数学习。适合你要的数据比较复杂、噪声比较多的场景,比如医疗诊断或者故障预测。

论文里拿这三种分类器在 UCI 的五个数据集上做了测试,数据类型也挺有代表性。整体来看,朴素贝叶斯轻便实用,TAN 折中好用,贝叶斯网络适合搞复杂活。你根据需求选就行。

哦对了,如果你想进一步理解朴素贝叶斯,可以看看条件独立性假设那篇文章;要是想实操实现,也有朴素贝叶斯实现详解

如果你平时做分类任务多,想要一个思路清晰、好上手又有深度的参考资源,这篇论文蛮值得一读的。