Работа с категориальными переменными

Конструирование признаков для машинного обучения в Python

Robert O'Callaghan

Director of Data Science, Ordergroove

Кодирование категориальных признаков

Конструирование признаков для машинного обучения в Python

Кодирование категориальных признаков

Конструирование признаков для машинного обучения в Python

Кодирование категориальных признаков

  • One-hot encoding
  • Dummy encoding
Конструирование признаков для машинного обучения в Python

One-hot encoding

pd.get_dummies(df, columns=['Country'], 
               prefix='C')
    C_France    C_India    C_UK    C_USA
0          0          1       0        0
1          0          0       0        1
2          0          0       1        0
3          0          0       1        0
4          1          0       0        0
Конструирование признаков для машинного обучения в Python

Dummy encoding

pd.get_dummies(df, columns=['Country'],
               drop_first=True, prefix='C')
     C_India    C_UK    C_USA
0          1       0        0
1          0       0        1
2          0       1        0
3          0       1        0
4          0       0        0
Конструирование признаков для машинного обучения в Python

One-hot vs. dummies

  • One-hot encoding: интерпретируемые признаки
  • Dummy encoding: необходимая информация без дублирования
Конструирование признаков для машинного обучения в Python
Индекс Пол
0 Male
1 Female
2 Male
Индекс Male Female
0 1 0
1 0 1
2 1 0
Индекс Male
0 1
1 0
2 1
Конструирование признаков для машинного обучения в Python

Ограничение числа столбцов

counts = df['Country'].value_counts()
print(counts)
'USA'      8
'UK'       6
'India'    2
'France'   1
Name: Country, dtype: object
Конструирование признаков для машинного обучения в Python

Ограничение числа столбцов

mask = df['Country'].isin(counts[counts < 5].index)

df['Country'][mask] = 'Other'
print(pd.value_counts(colors))
'USA'      8
'UK'       6
'Other'    3
Name: Country, dtype: object
Конструирование признаков для машинного обучения в Python

Давайте потренируемся!

Конструирование признаков для машинного обучения в Python

Preparing Video For Download...