Tips - Encoding




1. 1. Analyse du dataset


Analyse du Dataset
df = sns.load_dataset('tips')
df.head()
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4
4 colonnes ne sont pas numériques :
- 'sex' : Genre
- 'smoker' : Fumeur ou non fumeur
- 'day' : Jour de la semaine
- 'time' : Horaire du diner

Liste des valeurs de la colonne 'sex'
df['sex'].unique()
['Female', 'Male']
Categories (2, object): ['Male', 'Female']

Liste des valeurs de la colonne 'smoker'
df['smoker'].unique()
['No', 'Yes']
Categories (2, object): ['Yes', 'No']

Liste des valeurs de la colonne 'day'
df['day'].unique()
['Sun', 'Sat', 'Thur', 'Fri']
Categories (4, object): ['Thur', 'Fri', 'Sat', 'Sun']

Liste des valeurs de la colonne 'time'
df['time'].unique()
['Dinner', 'Lunch']
Categories (2, object): ['Lunch', 'Dinner']



2. 2. Encodage

Aucune de ces variables n'est hiérarchique => Encodage nominal OneHot


OneHot Encoder - 'Sex', 'Smoker', 'Day' et 'Time'
from sklearn.preprocessing import OneHotEncoder

# Optionnel pour export Pandas from sklearn import set_config
set_config(transform_output = 'pandas')

encoder = OneHotEncoder(sparse_output=False, drop='first')
encoder.fit(df[['sex', 'smoker', 'day', 'time']])
encoder.transform(df[['sex', 'smoker', 'day', 'time']])
     sex_Male  smoker_Yes  day_Sat  day_Sun  day_Thur  time_Lunch
0         0.0         0.0      0.0      1.0       0.0         0.0
1         1.0         0.0      0.0      1.0       0.0         0.0
2         1.0         0.0      0.0      1.0       0.0         0.0
3         1.0         0.0      0.0      1.0       0.0         0.0
4         0.0         0.0      0.0      1.0       0.0         0.0
..        ...         ...      ...      ...       ...         ...
239       1.0         0.0      1.0      0.0       0.0         0.0
240       0.0         1.0      1.0      0.0       0.0         0.0
241       1.0         1.0      1.0      0.0       0.0         0.0
242       1.0         0.0      1.0      0.0       0.0         0.0
243       0.0         0.0      0.0      0.0       1.0         0.0

[244 rows x 6 columns]