sklearn.preprocessing.MultiLabelBinarizer?

class sklearn.preprocessing.MultiLabelBinarizer(*, classes=None, sparse_output=False)

[源碼]

在可迭代的可迭代對象和多標簽格式之間進行轉換

盡管集或元組的列表對于多標簽數據來說是非常直觀的格式,但處理起來很麻煩。該轉換器在這種直觀格式和支持的多標簽格式之間進行轉換:一個(樣本x類)二進制矩陣,指示類標簽的存在。

參數 說明
classes array-like of shape [n_classes] (optional)
指示類標簽的順序。所有條目都應該是唯一的(不能包含重復的類)。
sparse_output boolean (default: False),
如果需要以CSR稀疏格式輸出二進制數組,則設置為true
屬性 說明
classes_ array of labels
提供classes參數的副本,或者提供適合時找到的分類的排序集。

另見:

sklearn.preprocessing.OneHotEncoder

分類特征使用one hot aka-of-K方案進行編碼。

示例

>>> from sklearn.preprocessing import MultiLabelBinarizer
>>> mlb = MultiLabelBinarizer()
>>> mlb.fit_transform([(12), (3,)])
array([[110],
       [001]])
>>> mlb.classes_
array([123])
>>> mlb.fit_transform([{'sci-fi''thriller'}, {'comedy'}])
array([[011],
       [100]])
>>> 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(self, y) 適合標簽集二值化器,存儲 classes_
fit_transform(self, y) 適合標簽集二值化器并轉換給定標簽集
get_params(self[, deep]) 獲取此估計量的參數。
inverse_transform(self, yt) 將給定的指標矩陣轉換為標簽集
set_params(self, **params) 設置此估算器的參數。
transform(self, y) 轉換給定的標簽集
__init__(self, *, classes=None, sparse_output=False)

[源碼]

初始化self,有關準確的簽名,請參見help(type(self))。

fit(self, y)

[源碼]

適合標簽集二值化器,存儲classes_

參數 說明
y iterable of iterables
每個樣本的一組標簽(任何可排序和可哈希的對象)。如果設置了classes參數,則不會迭代y。
返回值 說明
self returns this MultiLabelBinarizer instance
fit_transform(self, y)

[源碼]

適合標簽集二值化器并轉換給定標簽集

參數 說明
y iterable of iterables
每個樣本的一組標簽(任何可排序和可哈希的對象)。如果設置了classes參數,則不會迭代y。
返回值 說明
y_indicator array or CSR matrix, shape (n_samples, n_classes)
當y [i]中的y_indicator [i,j] = 1且y [i]中的矩陣,否則為0。
get_params(self, deep=True)

[源碼]

獲取此估計量的參數。

參數 說明
deep bool, default=True
如果為True,則將返回此估算器和作為估算器的所包含子對象的參數。
返回值 說明
params mapping of string to any
參數名稱映射到其值。
inverse_transform(self, yt)

[源碼]

將給定的指標矩陣轉換為標簽集

參數 說明
yt array or sparse matrix of shape (n_samples, n_classes)
僅包含1和0的矩陣。
返回值 說明
y list of tuples
每個樣本的標簽集,使得y [i]由每個yt [i,j] == 1的classes_ [j]組成。
set_params(self, **params)

[源碼]

設置此估算器的參數。

該方法適用于簡單的估計器以及嵌套對象(例如管道)。

他后者具有以下形式的參數 <component>__<parameter>這樣就可以更新嵌套對象的每個組件。

參數 說明
**params dict
估算器參數。
返回值 說明
self object
估算器實例。
transform(self, y)

[源碼]

轉換給定的標簽集

參數 說明
y iterable of iterables
每個樣本的一組標簽(任何可排序和可哈希的對象)。如果設置了classes參數,則不會迭代y。
返回值 說明
y_indicator array or CSR matrix, shape (n_samples, n_classes)
當y [i]中的y_indicator [i,j] = 1且y [i]中的矩陣,否則為0。