当前位置: 代码迷 >> 综合 >> sklearn中的MultiLabelBinarizer函数详解--构造多标签数据的Label
  详细解决方案

sklearn中的MultiLabelBinarizer函数详解--构造多标签数据的Label

热度:27   发布时间:2024-02-21 16:35:41.0

摘要:多标签分类任务中,总要构造模型输入数据-多标签的Label,MultiLabelBinarizer函数提供了许多的方便,轮子不造也是要学一学的。

 

 
In [3]: from sklearn.preprocessing import MultiLabelBinarizer...: mlb = MultiLabelBinarizer(classes = [2,3,4,5,6,1]) # 注意这里加了classes参数...: mlb.fit_transform([(1, 2), (3,4),(5,)])...:
Out[3]:
array([[1, 0, 0, 0, 0, 1],[0, 1, 1, 0, 0, 0],[0, 0, 0, 1, 0, 0]])In [4]: mlb.classes_
Out[4]: array([2, 3, 4, 5, 6, 1])

classes参数,能指定标签的index,默认是从0开始按顺序给标签编码。

若如上代码,若添加了classes参数,则标签2的编码为[1,0,0,0,0,0], 体会一下

若以中文作为Label,fit函数能直接统计labellist中的label种类,很方便

 
In [3]: from sklearn.preprocessing import MultiLabelBinarizer...: labellist = [['红色'],['绿色'],['红色','绿色']]...: mlb = MultiLabelBinarizer()...: mlb.fit(labellist) # 直接用fit函数,统计label种类,十分好用...: y = []...: for label in labellisr:...:     label_matrix = mlb.fit_transform([label])...:     y.append(label_matrix[0])...:y
Out[3]:
array([[1, 0],[0, 1],[1, 1]])In [4]: mlb.classes_
Out[4]: array(['红色','绿色'])

 

  相关解决方案