LabelBinarizer#

class sklearn.preprocessing.LabelBinarizer(*, neg_label=0, pos_label=1, sparse_output=False)[源代码]#

以one-vs-all的方式二进制化标签。

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

在学习时,这只是每个类学习一个回归量或二进制分类器。在此过程中,需要将多类标签转换为二进制标签(属于或不属于该类)。 LabelBinarizer 通过转换方法使此过程变得简单。

在预测时,分配相应模型给出最大置信度的类别。 LabelBinarizer 使这很容易与 inverse_transform

阅读更多的 User Guide .

参数:
neg_labelint,默认=0

必须使用其编码负标签的值。

pos_labelint,默认=1

必须编码正标签的值。

sparse_output布尔,默认=假

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

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

持有每个类别的标签。

y_type_str

计算的目标数据的类型 type_of_target .可能的类型有“连续”、“连续多输出”、“二进制”、“多类-多输出”、“多标签-指示器”和“未知”。

sparse_input_bool
True 如果要变换的输入数据被给出为稀疏矩阵,

False 否则。

参见

label_binarize

函数使用固定类执行LabelBinarizer的转换操作。

OneHotEncoder

使用one-hot aka one-of-K方案编码分类特征。

示例

>>> 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]])

传递2D矩阵进行多标签分类

>>> 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)[源代码]#

安装标签二进制化器。

参数:
y形状的ndarray(n_samples,)或(n_samples,n_classes)

目标值。二维矩阵应该只包含0和1,代表多标签分类。

返回:
self对象

返回实例本身。

fit_transform(y)[源代码]#

Fit label binarizer/将多类标签转换为二进制标签。

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

参数:
y形状(n_samples,)的{ndArray,sparse matrix}或 (n_样本,n_类)

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

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

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

get_metadata_routing()[源代码]#

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

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

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

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

获取此估计器的参数。

参数:
deep布尔,默认=True

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

返回:
paramsdict

参数名称映射到其值。

inverse_transform(Y, threshold=None)[源代码]#

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

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

目标值。所有稀疏矩阵在逆变换之前都被转换为CSR。

thresholdfloat,默认=无

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

Use 0 when Y contains the output of decision_function (classifier). Use 0.5 when Y contains the output of predict_proba.

如果无,则假设阈值在neg_Label和pos_Label之间的一半。

返回:
y形状(n_samples,)的{ndArray,sparse matrix}

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

注意到

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

set_inverse_transform_request(*, threshold: bool | None | str = '$UNCHANGED$') LabelBinarizer[源代码]#

请求元数据传递给 inverse_transform

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 inverse_transform 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 inverse_transform .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
threshold字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 threshold 参数 inverse_transform .

返回:
self对象

更新的对象。

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)[源代码]#

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

一些作者有时将变换的输出称为1/K编码方案。

参数:
y形状(n_samples,)的{数组,稀疏矩阵}或 (n_样本,n_类)

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

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

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