MultinomialNB#
- class sklearn.naive_bayes.MultinomialNB(*, alpha=1.0, force_alpha=True, fit_prior=True, class_prior=None)[原始碼]#
用於多項式模型的樸素貝氏分類器。
多項式樸素貝氏分類器適用於具有離散特徵的分類(例如,用於文本分類的字數統計)。多項式分佈通常需要整數特徵計數。然而,在實踐中,諸如 tf-idf 之類的小數計數也可能有效。
請在使用者指南中閱讀更多內容。
- 參數:
- alphafloat 或形狀為 (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
。- 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 中新增。
另請參閱
BernoulliNB
用於多元伯努利模型的朴素貝氏分類器。
CategoricalNB
用於類別特徵的朴素貝氏分類器。
ComplementNB
補集朴素貝氏分類器。
GaussianNB
高斯朴素貝氏。
參考文獻
C.D. Manning, P. Raghavan 和 H. Schuetze (2008)。Introduction to Information Retrieval。Cambridge University Press,第 234-265 頁。https://nlp.stanford.edu/IR-book/html/htmledition/naive-bayes-text-classification-1.html
範例
>>> import numpy as np >>> rng = np.random.RandomState(1) >>> X = rng.randint(5, size=(6, 100)) >>> y = np.array([1, 2, 3, 4, 5, 6]) >>> from sklearn.naive_bayes import MultinomialNB >>> clf = MultinomialNB() >>> clf.fit(X, y) MultinomialNB() >>> 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) 的類陣列 (array-like)
返回模型中每個類別的樣本對數機率。這些列對應於類別按排序後的順序,如同它們在屬性 classes_ 中顯示的一樣。
- predict_proba(X)[原始碼]#
返回測試向量 X 的機率估計值。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入樣本。
- 回傳值:
- C形狀為 (n_samples, n_classes) 的類陣列 (array-like)
返回模型中每個類別的樣本機率。這些列對應於類別按排序後的順序,如同它們在屬性 classes_ 中顯示的一樣。
- score(X, y, sample_weight=None)[原始碼]#
返回給定測試資料和標籤的平均準確度。
在多標籤分類中,這是子集準確度,這是一個嚴苛的指標,因為您要求每個樣本的每個標籤集都被正確預測。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
測試樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列 (array-like)
X
的真實標籤。- sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None
樣本權重。
- 回傳值:
- score浮點數 (float)
self.predict(X)
相對於y
的平均準確度。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultinomialNB [原始碼]#
請求傳遞至
fit
方法的中繼資料。請注意,只有當
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱 使用者指南,了解路由機制如何運作。每個參數的選項如下
True
:請求中繼資料,如果提供,則傳遞至fit
。如果未提供中繼資料,則會忽略該請求。False
:不請求中繼資料,並且元估計器不會將其傳遞至fit
。None
:不請求中繼資料,如果使用者提供,則元估計器會引發錯誤。str
:中繼資料應使用此給定的別名而不是原始名稱傳遞給元估計器。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)會保留現有的請求。這讓您可以更改某些參數的請求,而不用更改其他參數。在版本 1.3 中新增。
注意
只有當此估計器用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內使用。否則它沒有任何作用。- 參數:
- sample_weight字串、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
fit
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
已更新的物件。
- set_params(**params)[來源]#
設定此估算器的參數。
此方法適用於簡單的估算器,以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個組件。- 參數:
- **params字典
估算器參數。
- 回傳值:
- self估算器實例
估算器實例。
- set_partial_fit_request(*, classes: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$') MultinomialNB [來源]#
請求傳遞至
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
內使用。否則它沒有任何作用。- 參數:
- classes字串、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
partial_fit
中classes
參數的中繼資料路由。- sample_weight字串、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
partial_fit
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
已更新的物件。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultinomialNB [來源]#
請求傳遞至
score
方法的中繼資料。請注意,只有當
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱 使用者指南,了解路由機制如何運作。每個參數的選項如下
True
:請求中繼資料,如果提供,則將其傳遞至score
。如果未提供中繼資料,則會忽略此請求。False
:不請求中繼資料,且中繼估算器不會將其傳遞至score
。None
:不請求中繼資料,如果使用者提供,則元估計器會引發錯誤。str
:中繼資料應使用此給定的別名而不是原始名稱傳遞給元估計器。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)會保留現有的請求。這讓您可以更改某些參數的請求,而不用更改其他參數。在版本 1.3 中新增。
注意
只有當此估計器用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內使用。否則它沒有任何作用。- 參數:
- sample_weight字串、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
score
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
已更新的物件。