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]
scikit_learn_classification_with_naive_bayes.htm
廣告

© . All rights reserved.