Tips - Encoding
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
- '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. Choix du type d'encodage
Aucune de ces variables n'est hiérarchique => Encodage nominal OneHot
Documentation OneHot Encoder
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
OneHot Encoder - 'Sex', 'Smoker', 'Day' et 'Time'
encoder = OneHotEncoder(sparse_output=False)
encoder.fit(df[['sex', 'smoker', 'day', 'time']])
encoder.transform(df[['sex', 'smoker', 'day', 'time']])
[[1. 0. 1. ... 0. 1. 0.] [0. 1. 1. ... 0. 1. 0.] [0. 1. 1. ... 0. 1. 0.] ... [0. 1. 0. ... 0. 1. 0.] [0. 1. 1. ... 0. 1. 0.] [1. 0. 1. ... 1. 1. 0.]]