- Scikit Learn 教程
- Scikit Learn - 首页
- Scikit Learn - 简介
- Scikit Learn - 建模过程
- Scikit Learn - 数据表示
- Scikit Learn - 估计器 API
- Scikit Learn - 约定
- Scikit Learn - 线性建模
- Scikit Learn - 扩展线性建模
- 随机梯度下降
- Scikit Learn - 支持向量机
- Scikit Learn - 异常检测
- Scikit Learn - K 近邻
- Scikit Learn - KNN 学习
- 使用朴素贝叶斯的分类
- Scikit Learn - 决策树
- 随机决策树
- Scikit Learn - 集成方法
- Scikit Learn - 聚类方法
- 聚类性能评估
- 使用 PCA 的降维
- Scikit Learn 有用资源
- Scikit Learn - 快速指南
- Scikit Learn - 有用资源
- Scikit Learn - 讨论
Scikit Learn - 互补朴素贝叶斯
另一种有用的朴素贝叶斯模型,旨在修正多项式贝叶斯分类器做出的严格假设。这种 NB 分类器适用于不平衡的数据集。Scikit-learn 提供了sklearn.naive_bayes.ComplementNB来实现用于分类的高斯朴素贝叶斯算法。
参数
下表包含sklearn.naive_bayes.ComplementNB方法使用的参数 -
序号 | 参数及描述 |
---|---|
1 | alpha - 浮点数,可选,默认值 = 1.0 它表示附加平滑参数。如果您选择 0 作为其值,则不会进行平滑。 |
2 | fit_prior - 布尔值,可选,默认值 = True 它告诉模型是否学习类先验概率。默认值为 True,但如果设置为 False,则算法将使用均匀先验。此参数仅在训练数据集中只有一个类的极端情况下使用。 |
3 | class_prior - 大小 (n_classes,),可选,默认值 = None 此参数表示每个类的先验概率。 |
4 | norm - 布尔值,可选,默认值 = False 它告诉模型是否执行权重的二次归一化。 |
属性
下表包含sklearn.naive_bayes.ComplementNB方法使用的属性 -
序号 | 属性及描述 |
---|---|
1 | class_log_prior_ - 数组,形状 (n_classes,) 它为每个类提供平滑的经验对数概率。此属性仅在训练数据集中只有一个类的极端情况下使用。 |
2 | class_count_ - 数组,形状 (n_classes,) 它提供了每个类遇到的实际训练样本数量。 |
3 | feature_log_prob_ - 数组,形状 (n_classes, n_features) 它给出类组件的经验权重。 |
4 | feature_count_ - 数组,形状 (n_classes, n_features) 它提供了每个 (类,特征) 遇到的实际训练样本数量。 |
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]