赞
踩
predict_proba
的概率输出。
参考文献:
GaussianNB
实现了高斯朴素贝叶斯分类算法。假设特征的概率为高斯分布。
>>> from sklearn.datasets import load_iris>>> from sklearn.model_selection import train_test_split>>> from sklearn.naive_bayes import GaussianNB>>> X, y = load_iris(return_X_y=True)>>> X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=0)>>> gnb = GaussianNB()>>> y_pred = gnb.fit(X_train, y_train).predict(X_test)>>> print("Number of mislabeled points out of a total %d points : %d"... % (X_test.shape[0], (y_test != y_pred).sum()))Number of mislabeled points out of a total 75 points : 4
MultinomialNB
实现了服从多项式分布数据的朴素Bayes算法,是文本分类中使用的两个经典朴素Bayes变体之一(数据通常表示为词向量,尽管tf-idf向量在实践中也很有效)。对于每个类y,分布由向量
ComplementNB
实现了补充朴素Bayes(CNB)算法。CNB是标准多项式朴素Bayes(MNB)算法的一种改进,它特别适合于不平衡数据集。具体来说,CNB使用来自每个类的 complement 中的统计信息来计算模型的权重。CNB的发明者从经验上证明了CNB的参数估计比MNB的参数估计更稳定。此外,CNB在文本分类任务上经常优于MNB(通常有相当大的幅度)。计算权重的步骤如下:
BernoulliNB
实现了用于多元Bernoulli分布数据的朴素Bayes训练和分类算法,即有多个特征,但每个特征都假定为二值(Bernoulli,boolean)变量。因此,此类算法要求样本以二值特征向量表示。如果传递任何其他类型的数据,
BernoulliNB
实例可以对其输入进行二值化(取决于
binarize
参数)。
伯努利朴素贝叶斯的决策规则基于
BernoulliNB
可能在一些数据集上表现得更好,尤其是那些短文档的数据集。如果时间允许,最好对两种模型进行评估。
参考文献:
CategoricalNB
实现了用于分类分布数据的分类朴素贝叶斯算法。它假设每个由索引i描述的特征都有自己的分类分布。
对于训练集X中的每个特征i,
CategoricalNB
在类y的条件下,估计X的每个特征i的分类分布。样本的索引集定义为
=
{
1
,
…
,
m
}
,其中m是样本数。
给定类c的特征i中类别t的概率估计为:
CategoricalNB
假设对样本矩阵X进行了编码(例如在
OrdinalEncoder
的帮助下),因此每个特征i的所有类别都用数字(,,)表示,其中表示特征i的类别数。
MultinomialNB
,
BernoulliNB
, 和
GaussianNB
实现了一个
partial_fit
方法,该方法可以像在Out-of-core classification of text documents中描述的那样,与其他分类器一起增量使用。所有朴素贝叶斯分类器都支持样本加权。
与
fit
方法相反,在第一次调用
partial_fit
的时候需要传递所有类标签列表。
有关scikit-learn中可用方案的概述,请参见 out-of-core learning文档https://urlify.cn/ymUJBn。
注意
朴素贝叶斯模型的
partial_fit
方法在调用时引入了一些计算开销。建议使用尽可能大的数据块大小,即可用RAM允许的大小。
本文由“壹伴编辑器”提供技术支持
☆☆☆为方便大家查阅,小编已将scikit-learn学习路线专栏 文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“系列文章”,如图:
欢迎大家和我一起沿着scikit-learn文档这条路线,一起巩固机器学习算法基础。(添加微信:mthler,备注:sklearn学习,一起进【sklearn机器学习进步群】开启打怪升级的学习之旅。)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。