Scikit Learn - 多項式樸素貝葉斯



這是另一個有用的樸素貝葉斯分類器。它假設特徵是從簡單的多項式分佈中提取的。Scikit-learn 提供了sklearn.naive_bayes.MultinomialNB 來實現用於分類的多項式樸素貝葉斯演算法。

引數

下表包含sklearn.naive_bayes.MultinomialNB 方法使用的引數 -

序號 引數及描述
1

alpha - 浮點數,可選,預設 = 1.0

它表示加性平滑引數。如果您選擇 0 作為其值,則不會進行平滑。

2

fit_prior - 布林值,可選,預設 = True

它告訴模型是否學習類先驗機率。預設值為 True,但如果設定為 False,則演算法將使用均勻先驗。

3

class_prior - 類陣列,大小 (n_classes,),可選,預設 = None

此引數表示每個類的先驗機率。

屬性

下表包含sklearn.naive_bayes.MultinomialNB 方法使用的屬性 -

序號 屬性及描述
1

class_log_prior_ - 陣列,形狀 (n_classes,)

它提供了每個類的平滑對數機率。

2

class_count_ - 陣列,形狀 (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}\right)$。

5

coef_ - 陣列,形狀 (n_classes, n_features)

這些是 feature_log_prior_ 的映象,用於將 MultinomilaNB 模型解釋為線性模型。

6

feature_count_ - 陣列,形狀 (n_classes, n_features)

它提供了每個 (類,特徵) 遇到的實際訓練樣本數量。

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]
廣告

© . All rights reserved.