LabelBinarizer#

class sklearn.preprocessing.LabelBinarizer(*, neg_label=0, pos_label=1, sparse_output=False)[source]#

以一對多的方式二元化標籤。

scikit-learn 中提供了多種迴歸和二元分類演算法。將這些演算法擴展到多類別分類情況的一種簡單方法是使用所謂的一對多方案。

在學習時,這僅僅包括學習每個類別的一個迴歸器或二元分類器。這樣做,需要將多類別標籤轉換為二元標籤(屬於或不屬於該類別)。 LabelBinarizer 可以透過 transform 方法輕鬆完成此過程。

在預測時,會將對應模型給出最大信心的類別指定給該樣本。LabelBinarizer 使用 inverse_transform 方法可以輕鬆實現這一點。

請參閱使用者指南以了解更多資訊。

參數:
neg_labelint,預設值 = 0

用於編碼負標籤的值。

pos_labelint,預設值 = 1

用於編碼正標籤的值。

sparse_outputbool,預設值 = False

若希望 transform 方法返回的陣列為稀疏 CSR 格式,則設為 True。

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

保存每個類別的標籤。

y_type_str

表示目標資料的類型,由 type_of_target 評估。可能的類型包括 ‘continuous’、‘continuous-multioutput’、‘binary’、‘multiclass’、‘multiclass-multioutput’、‘multilabel-indicator’ 和 ‘unknown’。

sparse_input_bool
如果 transform 的輸入資料是稀疏矩陣,則為 True

否則為 False

另請參閱

label_binarize

使用固定類別執行 LabelBinarizer 轉換操作的函數。

OneHotEncoder

使用 one-hot (又稱 one-of-K) 方案編碼類別特徵。

範例

>>> from sklearn.preprocessing import LabelBinarizer
>>> lb = LabelBinarizer()
>>> lb.fit([1, 2, 6, 4, 2])
LabelBinarizer()
>>> lb.classes_
array([1, 2, 4, 6])
>>> lb.transform([1, 6])
array([[1, 0, 0, 0],
       [0, 0, 0, 1]])

二元目標轉換為單欄向量

>>> lb = LabelBinarizer()
>>> lb.fit_transform(['yes', 'no', 'no', 'yes'])
array([[1],
       [0],
       [0],
       [1]])

傳遞用於多標籤分類的 2D 矩陣

>>> import numpy as np
>>> lb.fit(np.array([[0, 1, 1], [1, 0, 0]]))
LabelBinarizer()
>>> lb.classes_
array([0, 1, 2])
>>> lb.transform([0, 1, 2, 1])
array([[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1],
       [0, 1, 0]])
fit(y)[原始碼]#

擬合標籤二元化器。

參數:
y形狀為 (n_samples,) 或 (n_samples, n_classes) 的 ndarray

目標值。2-d 矩陣應僅包含 0 和 1,代表多標籤分類。

回傳值:
self物件

回傳實例本身。

fit_transform(y)[原始碼]#

擬合標籤二元化器/將多類別標籤轉換為二元標籤。

transform 的輸出有時被稱為 1-of-K 編碼方案。

參數:
y形狀為 (n_samples,) 或 (n_samples, n_classes) 的 {ndarray, 稀疏矩陣}

目標值。2-d 矩陣應僅包含 0 和 1,代表多標籤分類。稀疏矩陣可以是 CSR、CSC、COO、DOK 或 LIL。

回傳值:
Y形狀為 (n_samples, n_classes) 的 {ndarray, 稀疏矩陣}

對於二元問題,形狀將為 (n_samples, 1)。稀疏矩陣將為 CSR 格式。

get_metadata_routing()[原始碼]#

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

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

回傳值:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

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

取得此估算器的參數。

參數:
deepbool,預設值 = True

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

回傳值:
paramsdict

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

inverse_transform(Y, threshold=None)[原始碼]#

將二元標籤轉換回多類別標籤。

參數:
Y形狀為 (n_samples, n_classes) 的 {ndarray, 稀疏矩陣}

目標值。所有稀疏矩陣在反轉換前都會轉換為 CSR 格式。

thresholdfloat,預設值 = None

用於二元和多標籤案例中的臨界值。

Y 包含 decision_function (分類器) 的輸出時,使用 0。當 Y 包含 predict_proba 的輸出時,使用 0.5。

如果為 None,則假定臨界值在 neg_label 和 pos_label 的中間。

回傳值:
y形狀為 (n_samples,) 的 {ndarray, 稀疏矩陣}

目標值。稀疏矩陣將為 CSR 格式。

註解

在二元標籤為分數(機率)的情況下,inverse_transform 會選擇值最大的類別。通常,這允許直接使用線性模型的 decision_function 方法的輸出作為 inverse_transform 的輸入。

set_inverse_transform_request(*, threshold: bool | None | str = '$UNCHANGED$') LabelBinarizer[原始碼]#

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

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

每個參數的選項如下:

  • True:請求元數據,並在提供時傳遞給 inverse_transform。如果未提供元數據,則會忽略請求。

  • False:不請求元數據,且元估計器不會將其傳遞給 inverse_transform

  • None:不請求元數據,如果使用者提供,元估計器會引發錯誤。

  • str:元數據應以給定的別名(而非原始名稱)傳遞給元估計器。

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

於 1.3 版本新增。

注意

此方法僅在將此估計器用作元估計器的子估計器時相關,例如在 Pipeline 中使用。否則,它不會產生任何作用。

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

針對 inverse_transformthreshold 參數的元數據路由。

回傳值:
self物件

更新後的物件。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

請參閱 「介紹 set_output API」,以取得如何使用 API 的範例。

參數:
transform{“default”, “pandas”, “polars”},預設值=None

設定 transformfit_transform 的輸出。

  • "default":轉換器的預設輸出格式

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定保持不變

於 1.4 版本新增:新增了 "polars" 選項。

回傳值:
self估計器實例

估計器實例。

set_params(**params)[原始碼]#

設定此估計器的參數。

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

參數:
**paramsdict

估計器參數。

回傳值:
self估計器實例

估計器實例。

transform(y)[原始碼]#

將多類別標籤轉換為二元標籤。

轉換的輸出有時會被某些作者稱為 1-of-K 編碼方案。

參數:
y形狀為 (n_samples,) 或 (n_samples, n_classes) 的 {陣列, 稀疏矩陣}

目標值。2-d 矩陣應僅包含 0 和 1,代表多標籤分類。稀疏矩陣可以是 CSR、CSC、COO、DOK 或 LIL。

回傳值:
Y形狀為 (n_samples, n_classes) 的 {ndarray, 稀疏矩陣}

對於二元問題,形狀將為 (n_samples, 1)。稀疏矩陣將為 CSR 格式。