朴素贝斯分类器是类似线性模型的一种分类器,通过单独查看每个特征来学习参数,并从每个特征中搜集简单的类别统计数据。训练速度更快,泛化能力略差一些。
scikit-learn中的朴素贝叶斯分类器:
GaussianNB | BernoulliNB | MultinomialNB | |
---|---|---|---|
输入数据 | 任意连续数据 | 假定为二分类数据(只有0/1) | 计数数据(比如单词在句子中出现的次数) |
计算结果 | 每个类别中每个特征的平均值和标准差 | 每个特征(列)中不为0的元素个数 | 每个特征的平均值 |
应用 | 高维数据 | 稀疏计数数据(文本) | 稀疏计数数据(大型文档) |
做出预测是,需要将数据点与每个类别的统计数据进行比较,并将最匹配的类别作为预测结果。
参数
MultinomialNB和BernolliNB预测形式与线性模型完全相同,只有一个参数alpha,用于控制模型复杂度。算法向数据中添加alpha个数据点,这些点对所有特征去正值。
alpha越大,图像越平滑,模型复杂度越低。
算法性能对alpha值的鲁棒性(稳定性)较好,alpha值对模型性能不重要,调整参数可以是精度略有提高。
优缺点
朴素贝叶斯模型的优缺点与线性模型相同:
优:训练和预测速度都很快;训练过程容易理解;模型对高维稀疏数据的效果很好;对参数的鲁棒性相对较好。
常用于非常大的数据集。