mars.learn.preprocessing.LabelBinarizer#

class mars.learn.preprocessing.LabelBinarizer(*, neg_label=0, pos_label=1, sparse_output=False)[来源]#

以一对多的方式二值化标签。

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

在学习阶段,这简单地包括为每个类别学习一个回归器或二元分类器。在此过程中,需要将多类标签转换为二元标签(属于该类别或不属于该类别)。LabelBinarizer 使用 transform 方法使这个过程变得简单。

在预测时,会为对应模型给出最大置信度的类别分配标签。LabelBinarizer使用inverse_transform方法使这变得容易。

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

Parameters
  • neg_label (int, default=0) – 需要编码的负标签值。

  • pos_label (int, default=1) – 正标签必须编码的值。

  • sparse_output (bool, default=False) – 如果希望变换返回的数组为稀疏CSR格式,则为True。

classes_#

为每个类别持有标签。

Type

形状为 (n_classes,) 的 ndarray

y_type_#

表示目标数据的类型,该类型由 utils.multiclass.type_of_target 评估。可能的类型有“连续型”、“连续多输出”、“二元”、“多类”、“多类多输出”、“多标签指示器”和“未知”。

Type

str

sparse_input_#

如果输入的数据被作为稀疏矩阵提供,则为 True,否则为 False。

Type

bool

示例

>>> from mars.learn 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]])

另请参阅

label_binarize

函数用于执行具有固定类别的LabelBinarizer的变换操作。

OneHotEncoder

使用一种热编码,也称为一种K方案,对分类特征进行编码。

__init__(*, neg_label=0, pos_label=1, sparse_output=False)[来源]#

方法

__init__(*[, neg_label, pos_label, ...])

fit(y[, session, run_kwargs])

适应标签二元化器。

fit_transform(y[, session, run_kwargs])

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

get_params([deep])

获取该估计器的参数。

inverse_transform(Y[, 阈值])

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

set_params(**params)

设置此估计器的参数。

transform(y[, session, run_kwargs])

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