- 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 - 互補樸素貝葉斯
另一種有用的樸素貝葉斯模型,旨在修正多項式貝葉斯分類器做出的嚴格假設。這種 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]