MultiLabelBinarizer#
- class sklearn.preprocessing.MultiLabelBinarizer(*, classes=None, sparse_output=False)[原始碼]#
在可迭代的項目與多標籤格式之間轉換。
雖然集合或元組的列表是多標籤資料非常直觀的格式,但處理起來很笨拙。此轉換器會在這種直觀的格式和受支援的多標籤格式之間轉換:一個 (樣本 x 類別) 的二元矩陣,指出類別標籤的存在。
- 參數:
- classes類陣列 (array-like),形狀為 (n_classes,),預設值為 None
指示類別標籤的順序。所有條目都應該是唯一的(不能包含重複的類別)。
- sparse_output布林值 (bool),預設值為 False
如果希望輸出二元陣列為 CSR 稀疏格式,則設定為 True。
- 屬性:
- classes_ndarray,形狀為 (n_classes,)
當提供時,為
classes
參數的副本。否則,它對應於擬合時找到的類別的排序集合。
另請參閱
OneHotEncoder
使用 one-hot(又稱 one-of-K)方案編碼類別特徵。
範例
>>> from sklearn.preprocessing import MultiLabelBinarizer >>> mlb = MultiLabelBinarizer() >>> mlb.fit_transform([(1, 2), (3,)]) array([[1, 1, 0], [0, 0, 1]]) >>> mlb.classes_ array([1, 2, 3])
>>> mlb.fit_transform([{'sci-fi', 'thriller'}, {'comedy'}]) array([[0, 1, 1], [1, 0, 0]]) >>> list(mlb.classes_) ['comedy', 'sci-fi', 'thriller']
常見的錯誤是傳入一個列表,這會導致以下問題
>>> mlb = MultiLabelBinarizer() >>> mlb.fit(['sci-fi', 'thriller', 'comedy']) MultiLabelBinarizer() >>> mlb.classes_ array(['-', 'c', 'd', 'e', 'f', 'h', 'i', 'l', 'm', 'o', 'r', 's', 't', 'y'], dtype=object)
要更正此問題,應該將標籤列表以以下方式傳入:
>>> mlb = MultiLabelBinarizer() >>> mlb.fit([['sci-fi', 'thriller', 'comedy']]) MultiLabelBinarizer() >>> mlb.classes_ array(['comedy', 'sci-fi', 'thriller'], dtype=object)
- fit(y)[原始碼]#
擬合標籤集合二元化器,儲存 classes_。
- 參數:
- y可迭代的迭代器
每個樣本的一組標籤(任何可排序和可雜湊的物件)。如果設定了
classes
參數,則不會迭代y
。
- 回傳值:
- self物件
已擬合的估算器。
- fit_transform(y)[原始碼]#
擬合標籤集合二元化器並轉換給定的標籤集合。
- 參數:
- y可迭代的迭代器
每個樣本的一組標籤(任何可排序和可雜湊的物件)。如果設定了
classes
參數,則不會迭代y
。
- 回傳值:
- y_indicator{ndarray, 稀疏矩陣},形狀為 (n_samples, n_classes)
一個矩陣,使得當
classes_[j]
在y[i]
中時,y_indicator[i, j] = 1
,否則為 0。稀疏矩陣將為 CSR 格式。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查閱 使用者指南,了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deep布林值 (bool),預設值為 True
如果為 True,將會回傳此估算器和包含的子物件(為估算器)的參數。
- 回傳值:
- params字典 (dict)
參數名稱對應到它們的值。
- inverse_transform(yt)[原始碼]#
將給定的指示矩陣轉換為標籤集合。
- 參數:
- yt{ndarray, 稀疏矩陣},形狀為 (n_samples, n_classes)
一個只包含 1 和 0 的矩陣。
- 回傳值:
- y元組列表
每個樣本的標籤集合,使得對於每個
yt[i, j] == 1
,y[i]
由classes_[j]
組成。
- set_output(*, transform=None)[原始碼]#
設定輸出容器。
請參閱 介紹 set_output API,以了解如何使用該 API 的範例。
- 參數:
- transform{"default", "pandas", "polars"},預設值為 None
配置
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換配置保持不變
在 1.4 版中新增: 加入了
"polars"
選項。
- 回傳值:
- self估算器實例
估算器實例。