【问题标题】:how to find the class labels after the one hot encoding in LabelBinarizer sklearn如何在LabelBinarizer sklearn中找到一个热编码后的类标签
【发布时间】:2018-09-16 20:56:13
【问题描述】:

我正在研究用于图像分类的 cifar 数据集。其中我使用了一种热编码类标签,如下所示:

lists = ['frog',
 'truck',
 'deer',
 'automobile',
 'bird',
 'horse',
 'ship',
 'cat',
 'dog',
 'airplane']

from sklearn.preprocessing import LabelBinarizer 
label_binarizer = LabelBinarizer()
label_binarizer.fit(lists)

def one_hot_encode(x):
     return label_binarizer.transform(x)

//here y_train is list of training labels
y_train = one_hot_encode(y_train)

print(y_train[0])
// output as [0 0 0 0 0 0 1 0 0 0] 

这意味着从列表中发货还是其他什么?如果还有其他事情可以帮助我上课。

据我所知,我在火车标签列表中的第一个元素是青蛙而不是船,谢谢。

【问题讨论】:

    标签: scikit-learn data-mining one-hot-encoding


    【解决方案1】:

    LabelBinarizer 有一个 inverse_transform 函数,可用于从 one-hot 编码值中取回原始值。 检查documentation here

    顺便说一下,这些值将按字母顺序存储在 LabelBinarizer 中。

    例子:

    label_binarizer.inverse_transform([y_train[0]])
    Output:  'frog'
    

    【讨论】:

      【解决方案2】:

      它们可能不会按您的意愿订购。您可以构建一个映射表(dict)以供进一步使用,例如:

      dict={}
      for i in range(len(lists)):
          dict[lists[i]]=y_train[i]
      
      print("your mapping table:\n",dict)
      print("\any value is then  accessable by value:\n",'ship',dict['ship'])
      

      【讨论】:

        猜你喜欢
        • 2020-08-05
        • 1970-01-01
        • 2018-10-29
        • 2020-06-02
        • 2017-06-04
        • 1970-01-01
        • 2019-11-18
        • 2017-03-27
        • 1970-01-01
        相关资源
        最近更新 更多