處理類別變數

Feature Engineering for Machine Learning in Python

Robert O'Callaghan

Director of Data Science, Ordergroove

編碼類別特徵

Feature Engineering for Machine Learning in Python

編碼類別特徵

Feature Engineering for Machine Learning in Python

編碼類別特徵

  • One-hot encoding
  • Dummy encoding
Feature Engineering for Machine Learning in 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
Feature Engineering for Machine Learning in 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
Feature Engineering for Machine Learning in Python

One-hot 與 Dummy 比較

  • One-hot encoding:特徵可解釋。
  • Dummy encoding:保留必要資訊,避免重複。
Feature Engineering for Machine Learning in Python
Index Sex
0 Male
1 Female
2 Male
Index Male Female
0 1 0
1 0 1
2 1 0
Index Male
0 1
1 0
2 1
Feature Engineering for Machine Learning in Python

限制欄位數

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

限制欄位數

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

現在由你來處理類別變數

Feature Engineering for Machine Learning in Python

Preparing Video For Download...