MultiLabelBinarizer#

class sklearn.preprocessing.MultiLabelBinarizer(*, classes=None, sparse_output=False)[源代码]#

在可迭代项和多标签格式之间转换。

尽管集合或二元组列表对于多标签数据来说是一种非常直观的格式,但处理起来很困难。该Transformer在这种直观格式和支持的多标签格式之间进行转换:一个(样本x类)二进制矩阵,指示类标签的存在。

参数:
classes形状类似数组(n_classes,),默认=无

指示类别标签的顺序。所有条目都应该是唯一的(不能包含重复的类)。

sparse_output布尔,默认=假

如果需要以CSR稀疏格式输出二进制数组,则设置为True。

属性:
classes_形状的nd数组(n_classes,)

的副本 classes 参数(如果提供)。否则,它对应于匹配时找到的排序类集。

参见

OneHotEncoder

使用one-hot aka 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迭代可迭代

A set of labels (any orderable and hashable object) for each sample. If the classes parameter is set, y will not be iterated.

返回:
self对象

拟合估计量。

fit_transform(y)[源代码]#

适应标签集二进制化器并转换给定的标签集。

参数:
y迭代可迭代

A set of labels (any orderable and hashable object) for each sample. If the classes parameter is set, y will not be iterated.

返回:
y_indicator形状(n_samples,n_classes)的{nd数组,稀疏矩阵}

矩阵这样 y_indicator[i, j] = 1 森林论坛 classes_[j] 处于 y[i] ,否则为0。稀疏矩阵将采用CSR格式。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

inverse_transform(yt)[源代码]#

将给定的指标矩阵转换为标签集。

参数:
yt形状(n_samples,n_classes)的{nd数组,稀疏矩阵}

仅包含1和0的矩阵。

返回:
y元组列表

The set of labels for each sample such that y[i] consists of classes_[j] for each yt[i, j] == 1.

set_output(*, transform=None)[源代码]#

设置输出容器。

看到 介绍 set_output API 了解如何使用API的示例。

参数:
transform{“默认”,“pandas”,“polars”},默认=无

配置输出 transformfit_transform .

  • "default" :Transformer的默认输出格式

  • "pandas" :DataFrame输出

  • "polars" :两极输出

  • None :转换配置不变

Added in version 1.4: "polars" 添加了选项。

返回:
self估计器实例

估计实例。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

transform(y)[源代码]#

转换给定的标签集。

参数:
y迭代可迭代

A set of labels (any orderable and hashable object) for each sample. If the classes parameter is set, y will not be iterated.

返回:
y_indicator阵列或CSR矩阵,形状(n_samples,n_classes)

矩阵这样 y_indicator[i, j] = 1 森林论坛 classes_[j] 处于 y[i] ,否则为0。