sklearn.preprocessing.label_binarize¶
sklearn.preprocessing.label_binarize(y, *, classes, neg_label=0, pos_label=1, sparse_output=False)
以一对一的方式对标签进行二值化
scikit-learn中提供了几种回归和二进制分类算法。将这些算法扩展到多类分类的一种简单方法是使用所谓的“一对多”方案。
此功能可以为预先知道的一组固定的类标签计算此转换。
参数 | 说明 |
---|---|
y | array-like 要编码的整数标签或多标签数据的序列。 |
classes | array-like of shape [n_classes] 唯一地保存每个类的标签。 |
neg_label | int (default: 0) 负标签必须编码的值。 |
pos_label | int (default: 1) 必须对正标签进行编码的值。 |
sparse_output | boolean (default: False), 如果需要以CSR稀疏格式输出二进制数组,则设置为true |
属性 | 说明 |
---|---|
Y | numpy array or CSR matrix of shape [n_samples, n_classes] 对于二进制问题,形状将为[n_samples,1]。 |
另见:
用于包装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]])