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]
廣告
© . All rights reserved.