当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn LabelBinarizer用法及代码示例


本文简要介绍python语言中 sklearn.preprocessing.LabelBinarizer 的用法。

用法:

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

以one-vs-all 方式对标签进行二值化。

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

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

在预测时,我们会分配相应模型给出最大置信度的类别。 LabelBinarizer 使用 inverse_transform 方法可以轻松实现这一点。

在用户指南中阅读更多信息。

参数

neg_label整数,默认=0

必须对否定标签进行编码的值。

pos_label整数,默认=1

必须对正标签进行编码的值。

sparse_output布尔,默认=假

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

属性

classes_ndarray 形状 (n_classes,)

保存每个类的标签。

y_type_str

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

sparse_input_bool

如果要转换的输入数据以稀疏矩阵的形式给出,则为 True,否则为 False。

例子

>>> from sklearn import preprocessing
>>> lb = preprocessing.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 = preprocessing.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]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.preprocessing.LabelBinarizer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。