sklearn LabelBinarizer如何指定自定义正类别标签?
sklearn 0.24.1中LabelBinarizer指定自定义正类的解决方案
在sklearn 0.24.1版本中,LabelBinarizer处理字符串类标签时,会先对标签值进行排序,默认将排序后的最后一个值标记为正类别(对应输出1)。
示例代码如下:
from sklearn import preprocessing lb = preprocessing.LabelBinarizer() # 输出为 [[0] [1] [1] [0]],'d'被设为正类(1) print(lb.fit_transform(['a', 'd', 'd', 'a'])) lb = preprocessing.LabelBinarizer() # 输出为 [[1] [0] [0] [1]],'e'被设为正类(1) print(lb.fit_transform(['e', 'd', 'd', 'e']))
当前版本的LabelBinarizer没有提供直接指定某一字符串为正类的参数,可通过以下方法实现自定义正类的需求:
lb = preprocessing.LabelBinarizer() # 反转默认输出的0和1,将'd'设为正类(1) print(-1 * (lb.fit_transform(['e', 'd', 'd', 'e']) - 1)) # 输出结果为 [[0] [1] [1] [0]]
该方法通过对fit_transform的结果做数学转换:先将结果减1(1变0,0变-1),再乘以-1,实现0和1的反转,从而将原本的负类转换为正类。
内容的提问来源于stack exchange,提问作者hlfernandez
相关产品推荐
相关产品推荐

