伯努利貝氏#

class sklearn.naive_bayes.BernoulliNB(*, alpha=1.0, force_alpha=True, binarize=0.0, fit_prior=True, class_prior=None)[來源]#

用於多元伯努利模型的貝氏分類器。

與多項式貝氏類似,此分類器適用於離散資料。不同之處在於,多項式貝氏使用出現次數,而伯努利貝氏則設計用於二元/布林特徵。

請在使用者指南中閱讀更多資訊。

參數:
alpha浮點數或形狀為 (n_features,) 的類陣列,預設值為 1.0

加性(拉普拉斯/利德史東)平滑參數(設定 alpha=0 和 force_alpha=True,表示不進行平滑)。

force_alphabool,預設值為True

若為False且alpha小於1e-10,則會將alpha設定為1e-10。若為True,alpha將保持不變。若alpha太接近0,可能會導致數值錯誤。

在1.2版本中新增。

在 1.4 版本中變更:force_alpha 的預設值變更為 True

binarizefloat 或 None,預設值為0.0

用於二值化(映射到布林值)樣本特徵的閾值。如果為None,則假定輸入已經由二元向量組成。

fit_priorbool,預設值為True

是否學習類別的先驗機率。如果為false,將使用均勻先驗。

class_prior形狀為 (n_classes,) 的類陣列,預設值為None

類別的先驗機率。如果指定,則不會根據資料調整先驗。

屬性:
class_count_形狀為 (n_classes,) 的 ndarray

在擬合期間,每個類別遇到的樣本數。當提供樣本權重時,此值會依權重加權。

class_log_prior_形狀為 (n_classes,) 的 ndarray

每個類別的對數機率(已平滑)。

classes_形狀為 (n_classes,) 的 ndarray

分類器已知的類別標籤

feature_count_形狀為 (n_classes, n_features) 的 ndarray

在擬合期間,每個(類別、特徵)遇到的樣本數。當提供樣本權重時,此值會依權重加權。

feature_log_prob_形狀為 (n_classes, n_features) 的 ndarray

給定類別的特徵的經驗對數機率,P(x_i|y)。

n_features_in_int

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全部為字串的特徵名稱時才定義。

在 1.0 版本中新增。

參見

類別型貝氏

用於類別特徵的朴素貝氏分類器。

互補貝氏

Rennie 等人 (2003) 中描述的互補朴素貝氏分類器。

高斯貝氏

高斯朴素貝氏 (GaussianNB)。

多項式貝氏

用於多項式模型的朴素貝氏分類器。

參考文獻

C.D. Manning, P. Raghavan 和 H. Schuetze (2008)。Introduction to Information Retrieval。Cambridge University Press,pp. 234-265。 https://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html

A. McCallum 和 K. Nigam (1998)。A comparison of event models for naive Bayes text classification。Proc. AAAI/ICML-98 Workshop on Learning for Text Categorization,pp. 41-48。

V. Metsis, I. Androutsopoulos 和 G. Paliouras (2006)。Spam filtering with naive Bayes – Which naive Bayes? 3rd Conf. on Email and Anti-Spam (CEAS)。

範例

>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.randint(5, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB()
>>> print(clf.predict(X[2:3]))
[3]
fit(X, y, sample_weight=None)[原始碼]#

根據 X 和 y 擬合朴素貝氏分類器。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練向量,其中 n_samples 是樣本數,n_features 是特徵數。

y形狀為 (n_samples,) 的類陣列

目標值。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為None

套用於個別樣本的權重(未加權時為 1.)。

回傳值:
self物件

回傳實例本身。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看關於路由機制如何運作的 使用者指南

回傳值:
routingMetadataRequest

封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值為True

若為True,將回傳此估算器及其包含的子物件(為估算器)的參數。

回傳值:
paramsdict

參數名稱對應到其值的字典。

partial_fit(X, y, classes=None, sample_weight=None)[原始碼]#

在一個樣本批次上進行增量擬合。

這個方法預期會在一組資料集的不同區塊上連續呼叫多次,以便實作核心外或線上學習。

當整個資料集太大而無法一次放入記憶體時,這特別有用。

這個方法有一些效能上的額外負荷,因此最好在盡可能大的資料區塊上呼叫 partial_fit(只要符合記憶體預算),以隱藏額外負荷。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練向量,其中 n_samples 是樣本數,n_features 是特徵數。

y形狀為 (n_samples,) 的類陣列

目標值。

classes形狀為 (n_classes,) 的類陣列,預設值為None

y 向量中可能出現的所有類別列表。

必須在第一次呼叫 partial_fit 時提供,後續呼叫可以省略。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為None

套用於個別樣本的權重(未加權時為 1.)。

回傳值:
self物件

回傳實例本身。

predict(X)[原始碼]#

對測試向量陣列 X 執行分類。

參數:
X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。

回傳值:
C形狀為 (n_samples,) 的 ndarray

X 的預測目標值。

predict_joint_log_proba(X)[原始碼]#

傳回測試向量 X 的聯合對數機率估計值。

對於 X 的每一列 x 和類別 y,聯合對數機率由 log P(x, y) = log P(y) + log P(x|y) 給出,其中 log P(y) 是類別先驗機率,log P(x|y) 是類別條件機率。

參數:
X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。

回傳值:
C形狀為 (n_samples, n_classes) 的 ndarray

傳回模型中每個類別的樣本聯合對數機率。這些欄位對應於類別按排序順序排列,如屬性 classes_ 中所示。

predict_log_proba(X)[原始碼]#

傳回測試向量 X 的對數機率估計值。

參數:
X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。

回傳值:
C形狀為 (n_samples, n_classes) 的類陣列

傳回模型中每個類別的樣本對數機率。這些欄位對應於類別按排序順序排列,如屬性 classes_ 中所示。

predict_proba(X)[原始碼]#

傳回測試向量 X 的機率估計值。

參數:
X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。

回傳值:
C形狀為 (n_samples, n_classes) 的類陣列

傳回模型中每個類別的樣本機率。這些欄位對應於類別按排序順序排列,如屬性 classes_ 中所示。

score(X, y, sample_weight=None)[原始碼]#

傳回給定測試數據和標籤的平均準確率。

在多標籤分類中,這是子集準確率,這是一個嚴苛的度量標準,因為您需要每個樣本都正確預測每個標籤集。

參數:
X形狀為 (n_samples, n_features) 的類陣列

測試樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列

X 的真實標籤。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為None

樣本權重。

回傳值:
score浮點數

self.predict(X) 相對於 y 的平均準確率。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BernoulliNB[原始碼]#

請求傳遞至 fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。 請參閱 使用者指南,瞭解路由機制如何運作。

每個參數的選項如下

  • True:請求中繼資料,如果提供,則傳遞至 fit。 如果未提供中繼資料,則會忽略請求。

  • False:不請求中繼資料,並且中繼估算器不會將其傳遞至 fit

  • None:不請求中繼資料,如果使用者提供,中繼估算器會引發錯誤。

  • str: 中繼估計器應使用此給定的別名,而不是原始名稱來傳遞元數據。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這允許您更改某些參數的請求,而不更改其他參數的請求。

在 1.3 版本中新增。

注意

只有當此估計器用作中繼估計器的子估計器時,此方法才相關,例如在 Pipeline 內部使用。否則,它沒有任何作用。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

fitsample_weight 參數的元數據路由。

回傳值:
self物件

更新後的物件。

set_params(**params)[來源]#

設定此估計器的參數。

此方法適用於簡單的估計器以及巢狀物件(例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個組件。

參數:
**paramsdict

估計器參數。

回傳值:
self估計器實例

估計器實例。

set_partial_fit_request(*, classes: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$') BernoulliNB[來源]#

請求傳遞給 partial_fit 方法的元數據。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。 請參閱 使用者指南,瞭解路由機制如何運作。

每個參數的選項如下

  • True:請求元數據,如果提供,則傳遞給 partial_fit。如果未提供元數據,則忽略該請求。

  • False:不請求元數據,中繼估計器不會將其傳遞給 partial_fit

  • None:不請求中繼資料,如果使用者提供,中繼估算器會引發錯誤。

  • str: 中繼估計器應使用此給定的別名,而不是原始名稱來傳遞元數據。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這允許您更改某些參數的請求,而不更改其他參數的請求。

在 1.3 版本中新增。

注意

只有當此估計器用作中繼估計器的子估計器時,此方法才相關,例如在 Pipeline 內部使用。否則,它沒有任何作用。

參數:
classesstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

partial_fitclasses 參數的元數據路由。

sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

partial_fitsample_weight 參數的元數據路由。

回傳值:
self物件

更新後的物件。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BernoulliNB[來源]#

請求傳遞給 score 方法的元數據。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。 請參閱 使用者指南,瞭解路由機制如何運作。

每個參數的選項如下

  • True:請求元數據,如果提供,則傳遞給 score。如果未提供元數據,則忽略該請求。

  • False:不請求元數據,中繼估計器不會將其傳遞給 score

  • None:不請求中繼資料,如果使用者提供,中繼估算器會引發錯誤。

  • str: 中繼估計器應使用此給定的別名,而不是原始名稱來傳遞元數據。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這允許您更改某些參數的請求,而不更改其他參數的請求。

在 1.3 版本中新增。

注意

只有當此估計器用作中繼估計器的子估計器時,此方法才相關,例如在 Pipeline 內部使用。否則,它沒有任何作用。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

scoresample_weight 參數的元數據路由。

回傳值:
self物件

更新後的物件。