Посмотреть сопоставления LabelEncoder - PullRequest
0 голосов
/ 05 ноября 2018

У меня проблема с 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 голосов
/ 05 ноября 2018

Я думаю, что этот простой кусок кода:

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'}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...