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
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toinverse_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 toinverse_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 ininverse_transform
.
- Returns:
- selfobject
The updated object.
- set_output(*, transform=None)#
设置输出容器。
请参阅 介绍 set_output API 以了解如何使用API的示例。
- Parameters:
- transform{“default”, “pandas”, “polars”}, 默认=None
配置
transform
和fit_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格式。