CategoricalNB# (類別樸素貝氏#)
- class sklearn.naive_bayes.CategoricalNB(*, alpha=1.0, force_alpha=True, fit_prior=True, class_prior=None, min_categories=None)[原始碼]#
用於類別特徵的樸素貝氏分類器。
類別樸素貝氏分類器適用於具有離散特徵且呈類別分佈的分類。每個特徵的類別皆從類別分佈中抽取。
請參閱使用者指南以獲取更多資訊。
- 參數:
- alphafloat,預設值=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_priorarray-like,形狀為 (n_classes,),預設值=None
類別的先驗機率。若已指定,則不會根據資料調整先驗機率。
- min_categoriesint 或 array-like,形狀為 (n_features,),預設值=None
每個特徵的最小類別數。
整數:將每個特徵的最小類別數設定為每個特徵的
n_categories
。array-like:形狀為 (n_features,),其中
n_categories[i]
保留輸入第 i 列的最小類別數。None(預設值):從訓練資料中自動決定類別數。
0.24 版本新增。
- 屬性:
- category_count_形狀為 (n_features,) 的陣列列表
為每個特徵保存形狀為 (n_classes, 各自特徵的 n_categories) 的陣列。每個陣列提供特定特徵的每個類別和類別所遇到的樣本數。
- class_count_ndarray,形狀為 (n_classes,)
在擬合期間,每個類別所遇到的樣本數。此值會根據提供的樣本權重加權。
- class_log_prior_ndarray,形狀為 (n_classes,)
每個類別的平滑經驗對數機率。
- classes_ndarray,形狀為 (n_classes,)
分類器已知的類別標籤。
- feature_log_prob_形狀為 (n_features,) 的陣列列表
為每個特徵保存形狀為 (n_classes, 各自特徵的 n_categories) 的陣列。每個陣列提供給定各自特徵和類別的類別經驗對數機率,
P(x_i|y)
。- n_features_in_int
在 擬合 期間看到的特徵數量。
0.24 版本新增。
- feature_names_in_ndarray,形狀為 (
n_features_in_
,) 在 擬合 期間看到的特徵名稱。只有當
X
具有全部為字串的特徵名稱時才會定義。1.0 版本新增。
- n_categories_ndarray,形狀為 (n_features,),dtype=np.int64
每個特徵的類別數。此值是從資料推斷或由最小類別數設定。
0.24 版本新增。
另請參閱
BernoulliNB (伯努利樸素貝氏)
用於多元伯努利模型的樸素貝氏分類器。
ComplementNB (補集樸素貝氏)
互補樸素貝氏分類器。
GaussianNB (高斯樸素貝氏)
高斯樸素貝氏。
MultinomialNB (多項式樸素貝氏)
用於多項式模型的樸素貝氏分類器。
範例
>>> 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 CategoricalNB >>> clf = CategoricalNB() >>> clf.fit(X, y) CategoricalNB() >>> print(clf.predict(X[2:3])) [3]
- fit(X, y, sample_weight=None)[原始碼]#
根據 X、y 擬合樸素貝氏分類器。
- 參數:
- X{array-like,稀疏矩陣},形狀為 (n_samples, n_features)
訓練向量,其中
n_samples
是樣本數,n_features
是特徵數。此處,假設 X 的每個特徵來自不同的類別分佈。此外,假設每個特徵的所有類別皆由數字 0, …, n - 1 表示,其中 n 表示給定特徵的類別總數。例如,可以使用 OrdinalEncoder 來實現此目的。- yarray-like,形狀為 (n_samples,)
目標值。
- sample_weightarray-like,形狀為 (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{array-like,稀疏矩陣},形狀為 (n_samples, n_features)
訓練向量,其中
n_samples
是樣本數,n_features
是特徵數。此處,假設 X 的每個特徵來自不同的類別分佈。此外,假設每個特徵的所有類別皆由數字 0, …, n - 1 表示,其中 n 表示給定特徵的類別總數。例如,可以使用 OrdinalEncoder 來實現此目的。- yarray-like,形狀為 (n_samples,)
目標值。
- classes類陣列,形狀為 (n_classes,),預設值為 None
所有可能出現在 y 向量中的類別清單。
必須在第一次呼叫 partial_fit 時提供,在後續呼叫中可以省略。
- sample_weightarray-like,形狀為 (n_samples,),預設值=None
套用至個別樣本的權重(未加權則為 1)。
- 回傳值:
- self物件
回傳實例本身。
- predict(X)[原始碼]#
對測試向量陣列 X 執行分類。
- 參數:
- X類陣列,形狀為 (n_samples, n_features)
輸入樣本。
- 回傳值:
- Cndarray,形狀為 (n_samples,)
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)
輸入樣本。
- 回傳值:
- Cndarray,形狀為 (n_samples, n_classes)
回傳模型中每個類別的樣本聯合對數機率。各列對應於類別,其順序如屬性 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_weightarray-like,形狀為 (n_samples,),預設值=None
樣本權重。
- 回傳值:
- scorefloat
self.predict(X)
相對於y
的平均準確度。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') CategoricalNB [原始碼]#
請求傳遞至
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
fit
中sample_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$') CategoricalNB [原始碼]#
請求傳遞至
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_fit
中classes
參數的中繼資料路由。- sample_weightstr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
partial_fit
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') CategoricalNB [原始碼]#
請求傳遞至
score
方法的中繼資料。請注意,此方法僅在
enable_metadata_routing=True
時相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的使用者指南。每個參數的選項如下:
True
:請求中繼資料,並在提供時傳遞至score
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,且 meta-estimator 不會將其傳遞至score
。None
:不請求中繼資料,且如果使用者提供,元估算器會引發錯誤。str
:中繼資料應以這個給定的別名傳遞給元估算器,而不是原始名稱。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)保留現有的請求。這允許您更改某些參數的請求,而不是其他參數的請求。在 1.3 版本中新增。
注意
此方法僅在將此估算器用作元估算器的子估算器時才相關,例如在
Pipeline
內部使用。否則沒有效果。- 參數:
- sample_weightstr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
用於
score
中的sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。