查看LabelEncoder的映射

时间:2018-11-05 06:48:17

标签: python dictionary scikit-learn mapping

我遇到有关LabelEncoder的问题。我将其应用于数据集,如下所示:

data_set1 = data_set.apply(LabelEncoder().fit_transform)

...并且有效。但是,现在我想获取LabelEncoder的映射。因此,我使用了以下内容:

le = preprocessing.LabelEncoder()
le.fit(data_set1['column'])
le_name_mapping = dict(zip(le.classes_, le.transform(le.classes_)))
print(le_name_mapping)

我期待的字典如下:

{apple: 0, banana: 1, kiwi: 2}

,依此类推... 而是输出如下:

{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}

你们是否知道为什么以及如何解决?

1 个答案:

答案 0 :(得分:1)

我认为这段简单的代码:

data = ['apple', 'banana', 'kiwi', 'apple']
le = LabelEncoder()
le.fit(data)
le.classes_

输出您想要的内容:array(['apple', 'banana', 'kiwi'], dtype='<U6')。第一项对应于标签0,第二项对应于标签1,依此类推。

如果您想要相应的字典,则可以使用labels_dict = {index: value for index, value in enumerate(le.classes_)}来获得它,这样labels_dict就是{0: 'apple', 1: 'banana', 2: 'kiwi'}