高斯樸素貝葉斯#

class sklearn.naive_bayes.GaussianNB(*, priors=None, var_smoothing=1e-09)[原始碼]#

高斯朴素貝氏 (GaussianNB)。

可以透過 partial_fit 執行模型參數的線上更新。有關用於線上更新特徵均值和變異數的演算法詳細資訊,請參閱 Chan、Golub 和 LeVeque 的 Stanford CS 技術報告 STAN-CS-79-773

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

參數:
priors形狀為 (n_classes,) 的類陣列,預設值為 None

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

var_smoothingfloat,預設值為 1e-9

為了計算穩定性,加入到變異數中的所有特徵最大變異數的比例。

於 0.20 版本新增。

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

每個類別中觀察到的訓練樣本數量。

class_prior_形狀為 (n_classes,) 的 ndarray

每個類別的機率。

classes_形狀為 (n_classes,) 的 ndarray

分類器已知的類別標籤。

epsilon_float

變異數的絕對附加值。

n_features_in_int

fit 期間看到的特徵數量。

於 0.24 版本新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

於 1.0 版本新增。

var_形狀為 (n_classes, n_features) 的 ndarray

每個類別中每個特徵的變異數。

於 1.0 版本新增。

theta_形狀為 (n_classes, n_features) 的 ndarray

每個類別中每個特徵的平均值。

另請參閱

伯努利樸素貝葉斯 (BernoulliNB)

多變數 Bernoulli 模型朴素貝氏分類器。

類別樸素貝葉斯 (CategoricalNB)

類別特徵朴素貝氏分類器。

補集樸素貝葉斯 (ComplementNB)

互補朴素貝氏分類器。

多項式樸素貝葉斯 (MultinomialNB)

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

範例

>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> Y = np.array([1, 1, 1, 2, 2, 2])
>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB()
>>> clf.fit(X, Y)
GaussianNB()
>>> print(clf.predict([[-0.8, -1]]))
[1]
>>> clf_pf = GaussianNB()
>>> clf_pf.partial_fit(X, Y, np.unique(Y))
GaussianNB()
>>> print(clf_pf.predict([[-0.8, -1]]))
[1]
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)。

於 0.17 版本新增: 高斯朴素貝氏支援使用 *sample_weight* 進行擬合。

返回:
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)。

於 0.17 版本新增。

返回:
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$') GaussianNB[原始碼]#

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

請注意,此方法僅在 enable_metadata_routing=True 時才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項為

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

  • False:不請求中繼資料,且 meta-estimator 不會將其傳遞給 fit

  • None:不請求中繼資料,如果使用者提供,則 meta-estimator 會引發錯誤。

  • str:中繼資料應以給定的別名(而不是原始名稱)傳遞給 meta-estimator。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這讓您可以變更某些參數的請求,而其他參數則不變。

在 1.3 版本中新增。

注意

此方法僅在此估算器用作 meta-estimator 的子估算器時才相關,例如在 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$') GaussianNB[原始碼]#

請求傳遞給 partial_fit 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項為

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

  • False:不請求中繼資料,且元估算器不會將其傳遞給 partial_fit

  • None:不請求中繼資料,如果使用者提供,則 meta-estimator 會引發錯誤。

  • str:中繼資料應以給定的別名(而不是原始名稱)傳遞給 meta-estimator。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這讓您可以變更某些參數的請求,而其他參數則不變。

在 1.3 版本中新增。

注意

此方法僅在此估算器用作 meta-estimator 的子估算器時才相關,例如在 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$') GaussianNB[原始碼]#

請求傳遞給 score 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項為

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

  • False:不請求中繼資料,且元估算器不會將其傳遞給 score

  • None:不請求中繼資料,如果使用者提供,則 meta-estimator 會引發錯誤。

  • str:中繼資料應以給定的別名(而不是原始名稱)傳遞給 meta-estimator。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這讓您可以變更某些參數的請求,而其他參數則不變。

在 1.3 版本中新增。

注意

此方法僅在此估算器用作 meta-estimator 的子估算器時才相關,例如在 Pipeline 內使用時。否則,它沒有任何作用。

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

scoresample_weight 參數的中繼資料路由。

返回:
self物件

更新後的物件。