label_binarize#

sklearn.preprocessing.label_binarize(y, *, classes, neg_label=0, pos_label=1, sparse_output=False)[source]#

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

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

此函数可以为一组预先已知的固定类别标签计算此转换。

参数:
y类数组或稀疏矩阵

要编码的整数标签序列或多标签数据。

classes形状为 (n_classes,) 的类数组

唯一地保存每个类别的标签。

neg_label整型, 默认值=0

用于编码负标签的值。

pos_label整型, 默认值=1

用于编码正标签的值。

sparse_output布尔型, 默认值=False,

如果希望输出二进制数组采用 CSR 稀疏格式,则设置为 True。

返回:
Y{ndarray, 稀疏矩阵} 形状为 (n_samples, n_classes)

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

另请参阅

LabelBinarizer

用于封装 label_binarize 功能的类,并允许独立于转换操作拟合类。

示例

>>> from sklearn.preprocessing import label_binarize
>>> label_binarize([1, 6], classes=[1, 2, 4, 6])
array([[1, 0, 0, 0],
       [0, 0, 0, 1]])

类别顺序被保留

>>> label_binarize([1, 6], classes=[1, 6, 4, 2])
array([[1, 0, 0, 0],
       [0, 1, 0, 0]])

二元目标转换为列向量

>>> label_binarize(['yes', 'no', 'no', 'yes'], classes=['no', 'yes'])
array([[1],
       [0],
       [0],
       [1]])