sklearn.preprocessing.LabelBinarizer

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

[源码]

以一对一的方式对标签进行二值化

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

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

在预测时,分配一个类别,相应的模型为其提供最大的信心。LabelBinarizer使用“逆变换”方法使这一点变得简单。

用户指南中阅读更多内容。

参数 说明
neg_label int (default: 0)
负标签必须编码的值。
pos_label int (default: 1)
必须对正标签进行编码的值。
sparse_output boolean (default: False)
如果希望从转换返回的数组为稀疏CSR格式,则为true。
属性 说明
classes_ array of shape [n_class]
持有每个类别的标签。
y_type_ str,
表示由utils.multiclass.type_of_target评估的目标数据的类型。可能的类型是“连续”,“连续多输出”,“二进制”,“多类”,“多类多输出”,“多标签指示符”和“未知”。
sparse_input_ boolean,
如果要转换的输入数据是稀疏矩阵,则为True,否则为False。

另见:

label_binarize

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

sklearn.preprocessing.OneHotEncoder

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

示例

>>> from sklearn import preprocessing
>>> lb = preprocessing.LabelBinarizer()
>>> lb.fit([12642])
LabelBinarizer()
>>> lb.classes_
array([1246])
>>> lb.transform([16])
array([[1000],
       [0001]])

二元目标转换为列向量

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

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

>>> import numpy as np
>>> lb.fit(np.array([[011], [100]]))
LabelBinarizer()
>>> lb.classes_
array([012])
>>> lb.transform([0121])
array([[100],
       [010],
       [001],
       [010]])

方法

方法 说明
fit(self, y) 将标签调整为二进制
fit_transform(self, y) 安装标签二值化器并将多类标签转换为二进制标签。
get_params(self[, deep]) 获取此估计量的参数。
inverse_transform(self, Y[, threshold]) 将二进制标签转换回多类标签
set_params(self, **params) 设置此估算器的参数。
transform(self, y) 将多类标签转换为二进制标签
__init__(self, *, neg_label=0, pos_label=1, sparse_output=False)

[源码]

初始化self,有关准确的签名,请参见help(type(self))。

fit(self, y)

[源码]

适合标签二值化器

参数 说明
y array of shape [n_samples,] or [n_samples, n_classes]
目标值。二维矩阵只能包含0和1,代表多标签分类。
返回值 说明
self returns an instance of self.
fit_transform(self, y)

[源码]

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

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

参数 说明
y array or sparse matrix of shape [n_samples,] or [n_samples, n_classes]
目标值。二维矩阵只能包含0和1,代表多标签分类。稀疏矩阵可以是CSR,CSC,COO,DOK或LIL。
返回值 说明
Y array or CSR matrix of shape [n_samples, n_classes]
对于二进制问题,形状将为[n_samples,1]。
get_params(self, deep=True)

[源码]

获取此估计量的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算器和作为估算器的所包含子对象的参数。
返回值 说明
params mapping of string to any
参数名称映射到其值。
inverse_transform(self, Y, threshold=None)

[源码]

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

参数 说明
Y numpy array or sparse matrix with shape [n_samples, n_classes]
目标值。在逆变换之前,所有稀疏矩阵都将转换为CSR。
threshold float or None
二进制和多标签情况下使用的阈值。
当Y包含Decision_function(分类器)的输出时,请使用0。当Y包含predict_proba的输出时,使用0.5。
如果为None,则阈值假定为介于neg_label和pos_label之间。
返回值 说明
y numpy array or CSR matrix of shape [n_samples] Target values.

注释

在二进制标签为小数(概率)的情况下,inverse_transform选择具有最大值的类。

通常,这允许将线性模型的Decision_function方法的输出直接用作inverse_transform的输入。

set_params(self, **params)

[源码] 设置此估算器的参数。

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

参数 说明
**params dict
估算器参数。
返回值 说明
self object
估算器实例。
transform(self, y)

[源码]

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

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

参数 说明
y array or sparse matrix of shape [n_samples,] or [n_samples, n_classes]
目标值。二维矩阵只能包含0和1,代表多标签分类。稀疏矩阵可以是CSR,CSC,COO,DOK或LIL。
返回值 说明
Y numpy array or CSR matrix of shape [n_samples, n_classes]
对于二进制问题,形状将为[n_samples,1]。