虛擬分類器#

class sklearn.dummy.DummyClassifier(*, strategy='prior', random_state=None, constant=None)[原始碼]#

DummyClassifier 進行預測時會忽略輸入特徵。

此分類器作為簡單的基準,以便與其他更複雜的分類器進行比較。

基準的特定行為是使用 strategy 參數選擇的。

所有策略進行預測時都會忽略作為 X 引數傳遞給 fitpredict 的輸入特徵值。然而,預測通常取決於傳遞給 fity 參數中觀察到的值。

請注意,“分層”和“均勻”策略會導致非確定性的預測,如果需要,可以通過設定 random_state 參數來使其成為確定性的。其他策略自然是確定性的,並且一旦擬合,對於 X 的任何值,始終會返回相同的常數預測。

請在 使用者指南 中閱讀更多內容。

在 0.13 版本中新增。

參數:
strategy{"most_frequent", "prior", "stratified", "uniform", "constant"}, default="prior"

用於產生預測的策略。

  • “most_frequent”:predict 方法始終返回傳遞給 fit 的觀察到的 y 引數中最頻繁的類別標籤。predict_proba 方法返回匹配的獨熱編碼向量。

  • “prior”:predict 方法始終返回傳遞給 fit 的觀察到的 y 引數中最頻繁的類別標籤(如“most_frequent”)。predict_proba 始終返回 y 的經驗類別分佈,也稱為經驗類別先驗分佈。

  • “stratified”:predict_proba 方法從由經驗類別先驗機率參數化的多項分佈中隨機取樣獨熱向量。predict 方法返回在 predict_proba 的獨熱向量中獲得機率 1 的類別標籤。因此,兩種方法的每個取樣列都是獨立且同分佈的。

  • “uniform”:從 y 中觀察到的唯一類別列表中以均勻隨機的方式產生預測,也就是說,每個類別具有相等的機率。

  • “constant”:始終預測使用者提供的常數標籤。這對於評估非多數類別的指標很有用。

    在 0.24 版本中變更:strategy 的預設值在 0.24 版本中已變更為 “prior”。

random_stateint, RandomState 實例或 None, default=None

strategy='stratified'strategy='uniform' 時,控制產生預測的隨機性。傳遞一個整數以便在多個函數調用之間實現可重現的輸出。請參閱 詞彙表

constantint 或 str 或形狀為 (n_outputs,) 的類陣列, default=None

“常數”策略預測的明確常數。此參數僅對“常數”策略有用。

屬性:
classes_形狀為 (n_classes,) 的 ndarray 或此類陣列的列表

y 中觀察到的唯一類別標籤。對於多輸出分類問題,此屬性是陣列的列表,因為每個輸出都有獨立的一組可能類別。

n_classes_int 或 int 的列表

每個輸出的標籤數。

class_prior_形狀為 (n_classes,) 的 ndarray 或此類陣列的列表

y 中觀察到的每個類別的頻率。對於多輸出分類問題,它是針對每個輸出獨立計算的。

n_features_in_int

擬合期間看到的特徵數。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

n_outputs_int

輸出數。

sparse_output_bool

如果從預測返回的陣列採用稀疏 CSC 格式,則為 True。如果輸入 y 以稀疏格式傳遞,則自動設定為 True。

另請參閱

DummyRegressor

使用簡單規則進行預測的迴歸器。

範例

>>> import numpy as np
>>> from sklearn.dummy import DummyClassifier
>>> X = np.array([-1, 1, 1, 1])
>>> y = np.array([0, 1, 1, 1])
>>> dummy_clf = DummyClassifier(strategy="most_frequent")
>>> dummy_clf.fit(X, y)
DummyClassifier(strategy='most_frequent')
>>> dummy_clf.predict(X)
array([1, 1, 1, 1])
>>> dummy_clf.score(X, y)
0.75
fit(X, y, sample_weight=None)[原始碼]#

擬合基準分類器。

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

訓練資料。

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

目標值。

sample_weight形狀為 (n_samples,) 的類陣列, default=None

樣本權重。

返回:
self物件

返回實例本身。

get_metadata_routing()[原始碼]#

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

請查看使用者指南以了解路由機制如何運作。

返回:
routingMetadataRequest

一個封裝路由資訊的MetadataRequest

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

取得此估計器的參數。

參數:
deepbool, default=True

如果為 True,將會傳回此估計器以及包含的子物件(也是估計器)的參數。

返回:
paramsdict

參數名稱對應到它們的值。

predict(X)[原始碼]#

對測試向量 X 執行分類。

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

測試資料。

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

X 的預測目標值。

predict_log_proba(X)[原始碼]#

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

參數:
X{array-like, object with finite length or shape}

訓練資料。

返回:
P形狀為 (n_samples, n_classes) 的 ndarray 或此類陣列的列表

傳回模型中每個類別的樣本對數機率,其中類別針對每個輸出以算術方式排序。

predict_proba(X)[原始碼]#

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

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

測試資料。

返回:
P形狀為 (n_samples, n_classes) 的 ndarray 或此類陣列的列表

傳回模型中每個類別的樣本機率,其中類別針對每個輸出以算術方式排序。

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

傳回給定測試資料和標籤的平均準確度。

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

參數:
XNone 或形狀為 (n_samples, n_features) 的 array-like 物件

測試樣本。將 None 作為測試樣本傳遞會得到與傳遞真實測試樣本相同的結果,因為 DummyClassifier 的運作與採樣的觀察值無關。

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

X 的真實標籤。

sample_weight形狀為 (n_samples,) 的類陣列, default=None

樣本權重。

返回:
scorefloat

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

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

請求傳遞到 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_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') DummyClassifier[原始碼]#

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

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

每個參數的選項如下

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

  • False:不請求中繼資料,且 meta-estimator 不會將其傳遞給 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物件

更新的物件。