Scikit Learn - 多项朴素贝叶斯

这是另一个实用的朴素贝叶斯分类器。它假设特征服从简单的多项分布。Scikit-learn 提供了 sklearn.naive_bayes.MultinomialNB 来实现多项朴素贝叶斯分类算法。

参数

下表列出了 sklearn.naive_bayes.MultinomialNB 方法 − 使用的参数。

Sr.No 参数及说明
1

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

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

2

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

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

3

class_prior −数组类型,size(n_classes,),可选,默认值为 None

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

属性

下表列出了 sklearn.naive_bayes.MultinomialNB 方法 − 使用的属性。

Sr.No 属性和说明
1

class_log_prior_ −数组,shape(n_classes,)

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

2

class_count_ − 数组,shape(n_classes,)

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

3

intercept_ −数组,形状为 (n_classes,)

这些是 class_log_prior_ 的镜像,用于将 MultinomilaNB 模型解释为线性模型。

4

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

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

5

coef_ −数组,形状为 (n_classes, n_features)

这些是 feature_log_prior_ 的镜像,用于将 MultinomilaNB 模型解释为线性模型。

6

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

它提供了每个 (class,feature) 实际遇到的训练样本数量。

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

实现示例

下面的 Python 脚本将使用 sklearn.naive_bayes.GaussianNB 方法从我们的数据集 − 构建高斯朴素贝叶斯分类器。

示例

import numpy as np
X = np.random.randint(8, size = (8, 100))
y = np.array([1, 2, 3, 4, 5, 6, 7, 8])

from sklearn.naive_bayes import MultinomialNB
MNBclf = MultinomialNB()
MNBclf.fit(X, y)

输出

MultinomialNB(alpha = 1.0, class_prior = None, fit_prior = True)

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

示例

print((MNBclf.predict(X[4:5]))

输出

[5]