Как я могу закодировать каждое категорическое уникальное значение в числовое значение как I wi sh? - PullRequest
0 голосов
/ 13 апреля 2020

Как я могу кодировать каждое категорическое уникальное значение в числовое значение, как I wi sh?

HeatingQ C: Качество и состояние нагрева

   Ex   Excellent
   Gd   Good
   TA   Average/Typical
   Fa   Fair
   Po   Poor

Я пытался закодировать это категориальные данные в числовой. Поэтому я использовал sklearn.processing.LabelEncoder. Я ожидал назначить большее число для Ex и меньшее число для Po. то есть Ex = 4, Gd = 3 и т. д.

from sklearn.preprocessing import LabelEncoder

label_encoder = LabelEncoder()
encoded_data = label_encoder.fit_transform(data)

print(data)
print(encoded_data)

вывод равен

Id
1461    TA
1462    TA
1463    Gd
1464    Ex
1465    Ex
Name: HeatingQC, dtype: object
[2 2 1 0 0]

Как я могу кодировать ex в 4 и Po в 0?

1 Ответ

1 голос
/ 13 апреля 2020

Основным способом c вы можете сделать:

  • инициализировать карту так, как вы хотите
encoding_map = {
  'Ex': 4,
  'Po': 0
}
  • сопоставить каждое значение с минимально возможное соответствующее число
for item in data:
  if not item in encoding_map.keys():
    minimum = min(encoding_map.values())
    while minimum in encoding_map.values():
      minimum += 1
    encoding_map[item] = minimum
  • , кодирование данных
encoded_data = [encoding_map.get(item) for item in data]
...