Práce s kategorickými proměnnými

Feature Engineering for Machine Learning in Python

Robert O'Callaghan

Director of Data Science, Ordergroove

Kódování kategorických příznaků

Feature Engineering for Machine Learning in Python

Kódování kategorických příznaků

Feature Engineering for Machine Learning in Python

Kódování kategorických příznaků

  • One-hot kódování
  • Dummy kódování
Feature Engineering for Machine Learning in Python

One-hot kódování

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
Feature Engineering for Machine Learning in Python

Dummy kódování

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
Feature Engineering for Machine Learning in Python

One-hot vs. dummy

  • One-hot kódování: Vysvětlitelné příznaky
  • Dummy kódování: Potřebné informace bez duplikace
Feature Engineering for Machine Learning in Python
Index Pohlaví
0 Muž
1 Žena
2 Muž
Index Muž Žena
0 1 0
1 0 1
2 1 0
Index Muž
0 1
1 0
2 1
Feature Engineering for Machine Learning in Python

Omezení počtu sloupců

counts = df['Country'].value_counts()
print(counts)
'USA'      8
'UK'       6
'India'    2
'France'   1
Name: Country, dtype: object
Feature Engineering for Machine Learning in Python

Omezení počtu sloupců

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
Feature Engineering for Machine Learning in Python

Nyní pracujete s kategorickými proměnnými

Feature Engineering for Machine Learning in Python

Preparing Video For Download...