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([(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 (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。 |