我遇到有关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}
你们是否知道为什么以及如何解决?
答案 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'}
。