- Scikit Learn 教程
- Scikit Learn - 首頁
- Scikit Learn - 簡介
- Scikit Learn - 建模過程
- Scikit Learn - 資料表示
- Scikit Learn - 估計器API
- Scikit Learn - 約定
- Scikit Learn - 線性建模
- Scikit Learn - 擴充套件線性建模
- 隨機梯度下降
- Scikit Learn - 支援向量機
- Scikit Learn - 異常檢測
- Scikit Learn - K近鄰演算法
- Scikit Learn - KNN學習
- 使用樸素貝葉斯進行分類
- Scikit Learn - 決策樹
- 隨機決策樹
- Scikit Learn - 整合方法
- Scikit Learn - 聚類方法
- 聚類效能評估
- 使用PCA進行降維
- Scikit Learn 有用資源
- Scikit Learn - 快速指南
- Scikit Learn - 有用資源
- Scikit Learn - 討論
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]