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。