Scikit Learn - 伯努利朴素贝叶斯



伯努利朴素贝叶斯是另一个有用的朴素贝叶斯模型。该模型的假设是特征本质上是二元的(0和1)。伯努利朴素贝叶斯分类的一个应用是使用“词袋”模型进行文本分类。Scikit-learn 提供了sklearn.naive_bayes.BernoulliNB 来实现用于分类的高斯朴素贝叶斯算法。

参数

下表列出了sklearn.naive_bayes.BernoulliNB 方法使用的参数:

序号 参数及描述
1

alpha − 浮点数,可选,默认值 = 1.0

它表示附加平滑参数。如果将其值选择为 0,则不会进行平滑。

2

binarize − 浮点数或 None,可选,默认值 = 0.0

使用此参数,我们可以设置样本特征二值化的阈值。这里的二值化意味着映射到布尔值。如果将其值选择为 None,则表示输入由二进制向量组成。

3

fit_prior − 布尔值,可选,默认值 = True

它告诉模型是否学习类先验概率。默认值为 True,但如果设置为 False,则算法将使用均匀先验。

4

class_prior − 类数组,大小 (n_classes,),可选,默认值 = None

此参数表示每个类的先验概率。

属性

下表列出了sklearn.naive_bayes.BernoulliNB 方法使用的属性:

序号 属性及描述
1

class_log_prior_ − 数组,形状 (n_classes,)

它提供每个类的平滑对数概率。

2

class_count_ − 数组,形状 (n_classes,)

它提供为每个类遇到的实际训练样本数量。

3

feature_log_prob_ − 数组,形状 (n_classes, n_features)

它给出给定类别的特征的经验对数概率 $P\left(\begin{array}{c} features\arrowvert Y\end{array}\right)$。

4

feature_count_ − 数组,形状 (n_classes, n_features)

它提供为每个(类,特征)遇到的实际训练样本数量。

sklearn.naive_bayes.BernoulliNB 的方法与我们在sklearn.naive_bayes.GaussianNB 中使用的方法相同。

实现示例

下面的 Python 脚本将使用sklearn.naive_bayes.BernoulliNB 方法从我们的数据集中构建伯努利朴素贝叶斯分类器:

import numpy as np
X = np.random.randint(10, size = (10, 1000))
y = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
from sklearn.naive_bayes import BernoulliNB
BNBclf = BernoulliNB()
BNBclf.fit(X, y)

输出

BernoulliNB(alpha = 1.0, binarize = 0.0, class_prior = None, fit_prior = True)

现在,拟合后,我们可以使用 predict() 方法预测新值,如下所示:

示例

print((BNBclf.predict(X[0:5]))

输出

[1 2 3 4 5]
广告