Scikit Learn - 补充朴素贝叶斯
另一个实用的朴素贝叶斯模型,旨在纠正多项式贝叶斯分类器所做的严格假设。这种朴素贝叶斯分类器适用于不平衡数据集。Scikit-learn 提供了 sklearn.naive_bayes.ComplementNB 来实现高斯朴素贝叶斯分类算法。
参数
下表列出了 sklearn.naive_bayes.ComplementNB 方法 − 使用的参数。
| Sr.No | 参数 &说明 |
|---|---|
| 1 | alpha − 浮点型,可选,默认值 = 1.0 它表示加法平滑参数。如果选择 0 作为其值,则不会进行平滑。 |
| 2 | fit_prior − 布尔型,可选,默认值 = true 它告诉模型是否学习类先验概率。默认值为 True,但如果设置为 False,算法将使用均匀先验。此参数仅用于训练数据集中只有一个类的极端情况。 |
| 3 | class_prior − size(n_classes,),可选,默认值 = None 此参数表示每个类的先验概率。 |
| 4 | norm −布尔值,可选,默认值 = False 它告诉模型是否对权重进行二次归一化。 |
属性
下表列出了 sklearn.naive_bayes.ComplementNB 方法 − 使用的属性。
| Sr.No | 属性和说明 |
|---|---|
| 1 | class_log_prior_ − 数组,shape(n_classes,) 它为每个类提供平滑的经验对数概率。此属性仅在训练数据集中只有一个类的极端情况下使用。 |
| 2 | class_count_ − 数组,shape(n_classes,) 它提供每个类别实际遇到的训练样本数量。 |
| 3 | feature_log_prob_ −数组,形状为 (n_classes, n_features) 它给出了类别成分的经验权重。 |
| 4 | feature_count_ − 数组,形状为 (n_classes, n_features) 它提供了每个 (class,feature) 实际遇到的训练样本数量。 |
| 5 | feature_all_ −数组,形状为(n_features,) 它提供了每个特征实际遇到的训练样本数量。 |
sklearn.naive_bayes.ComplementNB 的方法与我们在 sklearn.naive_bayes.GaussianNB 中使用的方法相同。
实现示例
下面的 Python 脚本将使用 sklearn.naive_bayes.BernoulliNB 方法从我们的数据集 ∠ 构建伯努利朴素贝叶斯分类器。
示例
import numpy as np X = np.random.randint(15, size = (15, 1000)) y = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) from sklearn.naive_bayes import ComplementNB CNBclf = ComplementNB() CNBclf.fit(X, y)
输出
ComplementNB(alpha = 1.0, class_prior = None, fit_prior = True, norm = False)
现在,拟合完成后,我们可以使用 predict() 方法预测新的值,如下所示 −
示例
print((CNBclf.predict(X[10:15]))
输出
[11 12 13 14 15]
scikit_learn_classification_with_naive_bayes.html

