朴素贝叶斯分类器
根据 特征数据的先验分布不同,scikit-learn库中,提供了5种不同的朴素贝叶斯分类算法(sklearn.naive_bayes: Naive Bayes模块),分别是:
- 高斯朴素贝叶斯(GaussianNB)
- 伯努利朴素贝叶斯(BernoulliNB)
- 类朴素贝叶斯(CategoricalNB)
- 多项式朴素贝叶斯(MultinomialNB)
- 补充朴素贝叶斯(ComplementNB)
高斯朴素贝叶斯(GaussianNB)
特征变量是连续变量,符合高斯分布,比如说人的身高,物体的长度。这种模型假设特征符合高斯分布。
伯努利朴素贝叶斯(BernoulliNB)
模型适用于多元伯努利分布,即每个特征都是二值变量,如果不是二值变量,可以先对变量进行二值化。例如在文档分类中特征是单词是否出现,如果该单词在某文件中出现了即为1,否则为0。
类朴素贝叶斯(CategoricalNB)
对分类分布的数据实施分类朴素贝叶斯算法,专用于离散数据集, 它假定由索引描述的每个特征都有其自己的分类分布。对于训练集中的每个特征 X,CategoricalNB估计以类y为条件的X的每个特征i的分类分布。 样本的索引集定义为J=1,…,m,m作为样本数。
多项式朴素贝叶斯(MultinomialNB)
特征变量是离散变量,符合多项分布,在文档分类中特征变量体现在一个单词出现的次数,或者是单词的 TF-IDF 值等。不支持负数,所以输入变量特征的时候,别用StandardScaler进行标准化数据,可以使用MinMaxScaler进行归一化。
补充朴素贝叶斯(ComplementNB)
是MultinomialNB模型的一个变种,实现了补码朴素贝叶斯(CNB)算法。CNB是标准多项式朴素贝叶斯(MNB)算法的一种改进,比较适用于不平衡的数据集,在文本分类上的结果通常比MultinomialNB模型好,具体来说,CNB使用来自每个类的补数的统计数据来计算模型的权重。CNB的发明者的研究表明,CNB的参数估计比MNB的参数估计更稳定。
后面有时间再来更新代码~
reference:一文搞懂Python库中的5种贝叶斯算法