LabelBinarizer#

class sklearn.preprocessing.LabelBinarizer(*, neg_label=0, pos_label=1, sparse_output=False)#

将标签二值化以进行一对多的分类。

在scikit-learn中提供了几种回归和二分类算法。将这些算法扩展到多类分类的一种简单方法是使用所谓的一对多方案。

在学习时,这仅仅包括为每个类别学习一个回归器或二分类器。在这样做时,需要将多类标签转换为二进制标签(属于或不属于该类)。 LabelBinarizer 通过 transform 方法使这一过程变得容易。

在预测时,将为相应模型给出最大置信度的类别分配给该样本。 LabelBinarizer 通过 inverse_transform 方法使这一过程变得容易。

更多信息请参阅 用户指南

Parameters:
neg_labelint, default=0

用于编码负标签的值。

pos_labelint, default=1

用于编码正标签的值。

sparse_outputbool, default=False

如果希望从 transform 返回的数组是稀疏的 CSR 格式,则为 True。

Attributes:
classes_ndarray of shape (n_classes,)

保存每个类别的标签。

y_type_str

表示目标数据的类型,由 type_of_target 评估。可能的类型有 ‘continuous’, ‘continuous-multioutput’, ‘binary’, ‘multiclass’, ‘multiclass-multioutput’, ‘multilabel-indicator’, 和 ‘unknown’。

sparse_input_bool

如果输入数据到 transform 是以稀疏矩阵形式给出的,则为 True,否则为 False。

See also

label_binarize

使用固定类别执行 LabelBinarizer 的 transform 操作的函数。

OneHotEncoder

使用独热编码方案编码分类特征。

Examples

>>> from sklearn.preprocessing import LabelBinarizer
>>> lb = LabelBinarizer()
>>> lb.fit([1, 2, 6, 4, 2])
LabelBinarizer()
>>> lb.classes_
array([1, 2, 4, 6])
>>> lb.transform([1, 6])
array([[1, 0, 0, 0],
       [0, 0, 0, 1]])

二进制目标转换为列向量

>>> lb = LabelBinarizer()
>>> lb.fit_transform(['yes', 'no', 'no', 'yes'])
array([[1],
       [0],
       [0],
       [1]])

传递二维矩阵进行多标签分类

>>> import numpy as np
>>> lb.fit(np.array([[0, 1, 1], [1, 0, 0]]))
LabelBinarizer()
>>> lb.classes_
array([0, 1, 2])
>>> lb.transform([0, 1, 2, 1])
array([[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1],
       [0, 1, 0]])
fit(y)#

拟合标签二值化器。

Parameters:
yndarray of shape (n_samples,) or (n_samples, n_classes)

目标值。2维矩阵应仅包含0和1, 表示多标签分类。

Returns:
selfobject

返回实例本身。

fit_transform(y)#

拟合标签二值化器/将多类标签转换为二进制标签。

转换的输出有时被称为1-of-K编码方案。

Parameters:
y{ndarray, sparse matrix} 形状为 (n_samples,) 或 (n_samples, n_classes)

目标值。2维矩阵应仅包含0和1,表示多标签分类。稀疏矩阵可以是 CSR、CSC、COO、DOK或LIL。

Returns:
Y{ndarray, sparse matrix} 形状为 (n_samples, n_classes)

对于二元问题,形状将为 (n_samples, 1)。稀疏矩阵 将是CSR格式。

get_metadata_routing()#

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

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

inverse_transform(Y, threshold=None)#

将二进制标签转换回多类标签。

Parameters:
Y{ndarray, sparse matrix},形状为 (n_samples, n_classes)

目标值。所有稀疏矩阵在反向转换之前都会转换为CSR格式。

thresholdfloat, 默认=None

在二进制和多标签情况下使用的阈值。

Y 包含 decision_function 的输出时使用 0(分类器)。 当 Y 包含 predict_proba 的输出时使用 0.5。

如果为 None,则阈值假定为 neg_label 和 pos_label 之间的一半。

Returns:
y{ndarray, sparse matrix},形状为 (n_samples,)

目标值。稀疏矩阵将为CSR格式。

Notes

在二进制标签为分数(概率性)的情况下,inverse_transform 选择值最大的类。通常,这允许直接使用线性模型的 decision_function 方法的输出作为 inverse_transform 的输入。

set_inverse_transform_request(*, threshold: bool | None | str = '$UNCHANGED$') LabelBinarizer#

Request metadata passed to the inverse_transform method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to inverse_transform if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to inverse_transform .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

Parameters:
thresholdstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for threshold parameter in inverse_transform .

Returns:
selfobject

The updated object.

set_output(*, transform=None)#

设置输出容器。

请参阅 介绍 set_output API 以了解如何使用API的示例。

Parameters:
transform{“default”, “pandas”, “polars”}, 默认=None

配置 transformfit_transform 的输出。

  • "default" : 转换器的默认输出格式

  • "pandas" : DataFrame 输出

  • "polars" : Polars 输出

  • None : 转换配置不变

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

Returns:
self估计器实例

估计器实例。

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(y)#

转换多类标签为二进制标签。

转换的输出有时被一些作者称为1-of-K编码方案。

Parameters:
y{array, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)

目标值。2维矩阵应仅包含0和1,表示多标签分类。稀疏矩阵可以是 CSR, CSC, COO, DOK, 或 LIL。

Returns:
Y{ndarray, sparse matrix} of shape (n_samples, n_classes)

形状将为二元问题的(n_samples, 1)。稀疏矩阵将为CSR格式。