如何在LabelBinarizer sklearn中的一个热编码后找到类标签

时间:2018-04-06 18:56:04

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

我正在研究用于图像分类的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] 

这意味着从列表或其他东西出货?如果有任何其他事情可以帮助我上课。

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

2 个答案:

答案 0 :(得分:1)

LabelBinarizer具有inverse_transform函数,可用于从单热编码值返回原始值。 查看documentation here

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

示例:

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

答案 1 :(得分:0)

他们可能不会按您的意愿订购。您可以构建一个映射表(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'])