Codages guidés par la cible

Dans les cahier précédents, nous avons appris comment convertir une étiquette en un nombre, en utilisant un codage à chaud, en remplaçant par un chiffre ou en remplaçant par la fréquence ou le nombre d’observations. Ces méthodes sont simples, ne font (presque) pas d’hypothèses et fonctionnent généralement bien dans différents scénarios.

Il existe cependant des méthodes qui nous permettent de saisir des informations tout en prétraitant les étiquettes des variables catégorielles. Ces méthodes comprennent :

  • Ordonner les étiquettes en fonction de la cible
  • Remplacement des étiquettes par la moyenne cible (codage de la moyenne / codage de la cible)
  • Remplacement des étiquettes par le rapport de probabilité de l’objectif étant 1 ou 0
  • Poids de la preuve.

Toutes les méthodes ci-dessus ont un point commun :

  • l’encodage est guidé par la cible, et
  • ils créent une relation monotone entre la variable et la cible.

Monotonicité

Une relation monotone est une relation qui fait l’une des choses suivantes :

  • (1) lorsque la valeur d’une variable augmente, la valeur de l’autre variable augmente également ; ou
  • (2) à mesure que la valeur d’une variable augmente, la valeur de l’autre variable diminue.

Dans ce cas, plus la valeur de la variable indépendante (prédicteur) augmente, plus la valeur cible augmente, ou inversement, plus la valeur de la variable augmente, plus la valeur cible diminue.

Avantages des codages guidés par la cible

  • Saisir des informations dans la catégorie, ce qui permet de créer des caractéristiques plus prédictives
  • Créer une relation monotone entre la variable et la cible, donc adaptée aux modèles linéaires
  • Ne pas étendre l’espace de la rubrique

Limitations

  • Tendance à provoquer un sur-ajustement
  • Difficile de faire une validation croisée avec les bibliothèques actuelles

Note

Les méthodes abordées dans ce notebook et dans les trois suivants peuvent également être utilisées sur des variables numériques, après discrétisation. Cela crée une relation monotone entre la variable numérique et la cible, et améliore donc les performances des modèles linéaires. Je reviendrai plus en détail sur ce sujet dans la section “Discrétisation”.

===============================================================================

Encodage des entiers ordonnés

Ordonner les catégories en fonction de la cible signifie attribuer un numéro à la catégorie de 1 à k, où k est le nombre de catégories distinctes dans la variable, mais cette numérotation est informée par la moyenne de la cible pour chaque catégorie.

Par exemple, nous avons la variable ville avec les valeurs Londres, Manchester et Bristol ; si le taux par défaut est de 30% à Londres, 20% à Bristol et 10% à Manchester, alors nous remplaçons Londres par 1, Bristol par 2 et Manchester par 3.

Dans cette démo :

Nous allons voir comment effectuer un encodage avec :

  • Feature-Engine
import numpy as np
import pandas as pd

import matplotlib.pyplot as plt

# to split the datasets
from sklearn.model_selection import train_test_split

# for encoding with feature-engine
from feature_engine.categorical_encoders import OrdinalCategoricalEncoder

data = pd.read_csv('../exportfeature.csv',usecols=['place', 'M1', 'M2', 'Hippodrome','idJockey'],sep=";",encoding='ANSI')

data.head()
	place	M1	M2	Hippodrome	idJockey
0	1	3a	3m	Vincennes	18
1	1	3a	9Da	Vincennes	30
2	0	1a	Da	Vincennes	53
3	1	Da	7a	Vincennes	143
4	0	1a	7a	Vincennes	50
# examinons le nombre d'étiquettes de chaque variable

for col in data.columns:
    print(col, ': ', len(data[col].unique()), ' labels')
    
place :  2  labels
M1 :  67  labels
M2 :  71  labels
Hippodrome :  199  labels
idJockey :  1943  labels

data['M1'].unique()
array(['3a', '1a', 'Da', '8a', '2a', '9a', '4a', '5a', '10a', 'Aa', 'Dm',
       '13a', '7a', '6m', '11a', '6a', '2Da', '0a', '1Disqa', '10m', '3m',
       '3Da', '14a', '5m', '4Dista', '1m', '1Dista', '2Dm', '4Da', '15a',
       '1Da', '10Dista', '3Dista', '5Da', '4m', '6Da', '12a', '0m', '2m',
       '7Da', '8m', '2Dista', 'Rpa', '9m', '7m', '4Disqa', 'Dista',
       '7Dista', '4Distm', '2Dpga', '6Dista', '5Dista', '1Dpga', '1Dm',
       'Am', 'Ta', '16a', '17a', '8Dista', '2Disqa', 'Dpga', '12m', '3Dm',
       '11m', '3Dpga', '9Da', '8Dm'], dtype=object)
data['idJockey'].unique()
array([   18,    30,    53, ...,  1556, 18318, 20962], dtype=int64)
data['Hippodrome'].unique()
array(['Vincennes', 'Wolvega', 'Argentan', 'Toulouse', 'Cagnes-sur-Mer',
       'Mons', 'Cagnes', 'Cordemais', 'Marseille', 'Geelong',
       'Marseille-Vivaux', 'Gelsenkirchen', 'Son Pardo  Majorque',
       'Nantes', 'Lyon', 'Lyon-La Soie', 'Son Pardo', 'Agen',
       'Vienne Krieau', 'Saint', 'Saint-Galmier', 'Bordeaux',
       'Bordeaux  Le Bouscat', 'Mauquenchy', 'Châteaubriant', 'Kuurne',
       'Angers', 'Grenade-sur-Garonne', 'Graignes', 'Laval', 'Vire',
       'Enghien', 'Le Croisé-Laroche', 'Berlin-Mariendorf', 'Avenches',
       'Le Croisé', 'Pontchâteau', 'Chartres', 'Caen', 'Amiens',
       'Munich-Daglfing', 'Machecoul', 'Lyon-Parilly', 'Lisieux',
       'Hyères', 'Fougères', 'Reims', 'Castillonnès', 'Cherbourg',
       'Marseille-Borély', 'Maure', 'Maure-de-Bretagne',
       'Ebreichsdorf (Magna Racino)', 'La Capelle', 'Beaumont', 'Tours',
       'Beaumont-de-Lomagne', 'Tours-Chambray', 'Nort-sur-Erdre',
       'Le Mans', 'Tongres', 'Chatillon', 'Strasbourg',
       'Chatillon-sur-Chalaronne', 'Challans', 'Meslay',
       'Meslay-du-Maine', 'Cavaillon', 'Saint-Malo', 'Rambouillet',
       'Oraison', 'Aby', 'Alençon', 'Cholet', 'Montluçon', 'Nîmes',
       'Vitré', 'Avignon', 'Charlottenlund', 'Paray-le-Monial',
       'Montauban', 'Vichy', 'Laon', 'Villeneuve-sur-Lot', 'Solvalla',
       'Vannes', 'Nancy', 'La Roche', 'La Roche-Posay', 'Frauenfeld',
       'Lignières', 'Saint-Brieuc', 'Chatelaillon',
       'Chatelaillon-La Rochelle', 'Feurs', 'Ostersund', 'Erbray',
       'Marsa', 'Bjerke', 'Kouvola', 'Boden', 'Arras', 'Segré',
       'Duindigt', 'La Gacilly', 'Agon-Coutainville', 'Sablé-sur-Sarthe',
       'Cabourg', 'Pornichet', 'Biarritz', 'Jarlsberg', 'Eauze', 'Arjang',
       'Royan-la Palmyre', 'Mikkeli', 'Clairefontaine',
       'Les Sables-d&#039Olonne', 'Bernay', 'L&#039Isle-sur-La Sorgue',
       'Jägersro', 'Le Touquet', 'Aix-les-Bains', 'Saint-Jean-de-Monts',
       'Carpentras', 'Bréhal', 'Vittel', 'Auch', 'Dieppe',
       'Langon-Libourne', 'Villeréal', 'Zonza', 'Le Mont-Saint-Michel',
       'Craon', 'Montier-en-Der', 'Divonne-les-Bains', 'Bergsaker',
       'Carentan', 'Waregem', 'Ajaccio', 'Baden', 'Ecommoy', 'Angoulême',
       'Salon-de-Provence', 'Castera-Verduzan', 'Eskilstuna', 'Ballarat',
       'Melton', 'Loudéac', 'Vermo', 'Hambourg Bahrenfeld', 'Niort',
       'Dundalk', 'Saint-Omer', 'Montluçon-Néris-les-Bains', 'Straubing',
       'Ostende', 'Dielsdorf', 'Landivisiau', 'Prunelli-di-Fiumorbo',
       'Dinslaken', 'Yonkers-New York', 'Kilmore', 'Saint-Moritz',
       'Hambourg Horn', '(Q+ du mardi 25', 'Moenchengladbach', '<br',
       'lundi 02', '(R1C5) lundi 14', 'Singapour', 'Farjestad',
       'Halmstad', 'Axevalla', 'Gavle', 'Hagmyren', 'Mantorp', 'Orebro',
       'Bollnas', 'Romme', 'Umaker', 'Dannero', 'Rattvik', 'Vaggeryd',
       'Aalborg', 'Leangen', 'Biri', 'Skive', 'Bergen', 'Momarken',
       'Amal', 'Forus', 'Odense', 'Harstad', 'Visby', 'Skelleftea',
       'Kalmar', 'Meadowlands', '(Gr.II) jeudi 12', '(R1C1)  Vendredi 04'],
      dtype=object)

Encodage important

Nous sélectionnons le chiffre à attribuer à chaque catégorie à l’aide de l’ensemble d’entraînement, puis nous utilisons ces mappings dans l’ensemble de test.

Notez que pour réaliser cette technique avec pandas, nous devons conserver la cible dans l’ensemble d’entraînement.

data['idJockey'] = data['idJockey'].astype(object)

X_train, X_test, y_train, y_test = train_test_split(
    data[['M1', 'M2', 'Hippodrome','idJockey','place']], 
    data['place'],  
    test_size=0.3,
    random_state=0)  

Explorer la relation originale entre les variables catégorielles et la cible

# explorons la relation des catégories avec la cible

for var in ['M1', 'M2', 'Hippodrome','idJockey']:
    
    fig = plt.figure()
    fig = X_train.groupby([var])['place'].mean().plot()
    fig.set_title('Relation entre {} and la place'.format(var))
    fig.set_ylabel('-')
    plt.show()
relation 1
relation 2
relation 3
relation 4

Vous pouvez voir que la relation entre la cible et les catégories des variables catégorielles va de haut en bas, selon la catégorie.

 

Encodage des nombres entiers avec le Feature-Engine

Si nous utilisons le Feature-Engine, nous n’avons pas besoin de garder la variable cible dans l’ensemble de données de formation.

data['idJockey'] = data['idJockey'].astype(object)

X_train, X_test, y_train, y_test = train_test_split(
    data[['M1', 'M2', 'Hippodrome','idJockey']], 
    data['place'],  
    test_size=0.3,
    random_state=0)  
    
ordinal_enc = OrdinalCategoricalEncoder(
    # Notez que nous indiquons ordonné dans encoding_method, sinon il assigne les nombres arbitrairement
    encoding_method='ordered',
    variables=['M1', 'M2', 'Hippodrome','idJockey'])    
    
ordinal_enc.fit(X_train, y_train)    

OrdinalCategoricalEncoder(variables=['M1', 'M2', 'Hippodrome', 'idJockey'])

# dans l'encodeur, on peut observer chacune des catégories supérieures
# sélectionné pour chacune des variables

ordinal_enc.encoder_dict_
{'M1': {'Ta': 0,
  '2Dm': 1,
  '1Dm': 2,
  '3Dm': 3,
  '16a': 4,
  '4Distm': 5,
  '6Dista': 6,
  '2Disqa': 7,
  '8m': 8,
  'Am': 9,
  '7Da': 10,
  '7m': 11,
  '1Disqa': 12,
  'Dista': 13,
  '1m': 14,
  '4m': 15,
  '9m': 16,
  '2Dista': 17,
  '4Da': 18,
  '13a': 19,
  '2m': 20,
  'Dm': 21,
  '0a': 22,
  '11a': 23,
  '8a': 24,
  'Da': 25,
  '9a': 26,
  '10a': 27,
  '5a': 28,
  '6Da': 29,
  '11m': 30,
  '4Dista': 31,
  '12m': 32,
  '5m': 33,
  'Rpa': 34,
  '0m': 35,
  '1Dpga': 36,
  '3m': 37,
  '4a': 38,
  '6a': 39,
  '2Da': 40,
  '7a': 41,
  '14a': 42,
  '3a': 43,
  '2a': 44,
  '12a': 45,
  '1a': 46,
  '1Da': 47,
  '3Da': 48,
  '6m': 49,
  '7Dista': 50,
  '5Da': 51,
  '10m': 52,
  'Aa': 53,
  '1Dista': 54,
  '15a': 55,
  '3Dista': 56,
  '5Dista': 57,
  '17a': 58,
  '2Dpga': 59,
  '8Dista': 60,
  '10Dista': 61,
  '3Dpga': 62},
 'M2': {'8Dm': 0,
  '0m': 1,
  '4Dista': 2,
  '3Distm': 3,
  '5Dm': 4,
  '8Dista': 5,
  '8Da': 6,
  '17a': 7,
  '7m': 8,
  '1m': 9,
  '6Da': 10,
  '2Dpga': 11,
  '4m': 12,
  '15a': 13,
  'Dista': 14,
  '1Dista': 15,
  '14a': 16,
  '0a': 17,
  '8m': 18,
  '3m': 19,
  '7a': 20,
  '2m': 21,
  '11a': 22,
  '8a': 23,
  '10a': 24,
  '12m': 25,
  '6Dista': 26,
  '10m': 27,
  '5Da': 28,
  '16a': 29,
  '4Da': 30,
  'Da': 31,
  '12a': 32,
  'Dm': 33,
  '9a': 34,
  '6a': 35,
  '5a': 36,
  '13a': 37,
  '4a': 38,
  '3a': 39,
  '2a': 40,
  '1Da': 41,
  '5m': 42,
  '1a': 43,
  '2Dista': 44,
  'Aa': 45,
  '9m': 46,
  '3Da': 47,
  '5Dista': 48,
  '4Dm': 49,
  '2Da': 50,
  '6m': 51,
  'Dpga': 52,
  '13m': 53,
  '12Dist.a': 54,
  '11m': 55,
  'Am': 56,
  '14m': 57,
  '1Dpga': 58,
  '1Disqa': 59,
  '1Dm': 60,
  '7Da': 61,
  '2Dm': 62,
  '3Disqa': 63,
  '3Dista': 64,
  '9Da': 65,
  'Ta': 66},
 'Hippodrome': {'Ostende': 0,
  'La Roche': 1,
  'Ballarat': 2,
  'Landivisiau': 3,
  'Montluçon': 4,
  'Laon': 5,
  'Geelong': 6,
  'Loudéac': 7,
  'Machecoul': 8,
  '(R1C5) lundi 14': 9,
  'Chatillon': 10,
  'Chatelaillon': 11,
  'Skive': 12,
  'Castillonnès': 13,
  'Marsa': 14,
  'Angoulême': 15,
  'Niort': 16,
  'Villeréal': 17,
  'Chatillon-sur-Chalaronne': 18,
  'Oraison': 19,
  'Zonza': 20,
  'Beaumont': 21,
  'Challans': 22,
  'Aalborg': 23,
  'Saint-Omer': 24,
  'Carpentras': 25,
  'Biri': 26,
  'Maure': 27,
  'Segré': 28,
  'Bernay': 29,
  'Ecommoy': 30,
  'Dundalk': 31,
  'Vannes': 32,
  'Montauban': 33,
  'Visby': 34,
  'Vitré': 35,
  'Biarritz': 36,
  'Villeneuve-sur-Lot': 37,
  'Ajaccio': 38,
  'Montluçon-Néris-les-Bains': 39,
  'Hagmyren': 40,
  'Vire': 41,
  'Vaggeryd': 42,
  'Aix-les-Bains': 43,
  'Arras': 44,
  'Agon-Coutainville': 45,
  'Dannero': 46,
  'Odense': 47,
  'Avignon': 48,
  'Halmstad': 49,
  'Royan-la Palmyre': 50,
  'Meslay-du-Maine': 51,
  'L&#039Isle-sur-La Sorgue': 52,
  'Castera-Verduzan': 53,
  'Cherbourg': 54,
  'Orebro': 55,
  'Rambouillet': 56,
  'Aby': 57,
  'Sablé-sur-Sarthe': 58,
  'Craon': 59,
  'Graignes': 60,
  'Lisieux': 61,
  'Bréhal': 62,
  'Boden': 63,
  'Cabourg': 64,
  'Marseille-Vivaux': 65,
  'Saint-Brieuc': 66,
  'Mauquenchy': 67,
  'Salon-de-Provence': 68,
  'Caen': 69,
  'Le Mont-Saint-Michel': 70,
  'Cordemais': 71,
  'Le Croisé-Laroche': 72,
  'Grenade-sur-Garonne': 73,
  'Vermo': 74,
  'Maure-de-Bretagne': 75,
  'Meadowlands': 76,
  'Kuurne': 77,
  'La Roche-Posay': 78,
  'Montier-en-Der': 79,
  'Bergen': 80,
  'Bjerke': 81,
  'Forus': 82,
  'Tours-Chambray': 83,
  'Arjang': 84,
  'Chartres': 85,
  'Charlottenlund': 86,
  'Dieppe': 87,
  'Vittel': 88,
  'Nort-sur-Erdre': 89,
  'Ebreichsdorf (Magna Racino)': 90,
  'Alençon': 91,
  'Nîmes': 92,
  'Pornichet': 93,
  'Amiens': 94,
  'Laval': 95,
  'Axevalla': 96,
  'Toulouse': 97,
  'Le Mans': 98,
  'Saint-Galmier': 99,
  'Duindigt': 100,
  'Beaumont-de-Lomagne': 101,
  'Solvalla': 102,
  'Enghien': 103,
  'Saint-Malo': 104,
  'Vichy': 105,
  'Angers': 106,
  'Lyon-La Soie': 107,
  'Mantorp': 108,
  'Nantes': 109,
  'Feurs': 110,
  'Cagnes': 111,
  'Les Sables-d&#039Olonne': 112,
  'Agen': 113,
  'Vincennes': 114,
  'Berlin-Mariendorf': 115,
  'Le Croisé': 116,
  'Lyon-Parilly': 117,
  'Chatelaillon-La Rochelle': 118,
  'Reims': 119,
  'Divonne-les-Bains': 120,
  'Le Touquet': 121,
  'Strasbourg': 122,
  'Cagnes-sur-Mer': 123,
  'Bordeaux': 124,
  'Argentan': 125,
  'Eskilstuna': 126,
  'Cholet': 127,
  'La Capelle': 128,
  'Hyères': 129,
  'Lignières': 130,
  'Munich-Daglfing': 131,
  'Bollnas': 132,
  'Saint-Jean-de-Monts': 133,
  'La Gacilly': 134,
  'Bordeaux  Le Bouscat': 135,
  'Châteaubriant': 136,
  'Romme': 137,
  'Marseille-Borély': 138,
  'Singapour': 139,
  'Tongres': 140,
  'Mons': 141,
  'Farjestad': 142,
  'Straubing': 143,
  'Cavaillon': 144,
  'Marseille': 145,
  'Rattvik': 146,
  'Avenches': 147,
  'Langon-Libourne': 148,
  'Pontchâteau': 149,
  'Momarken': 150,
  'Amal': 151,
  'Auch': 152,
  'Skelleftea': 153,
  'Leangen': 154,
  'Eauze': 155,
  'Paray-le-Monial': 156,
  'Prunelli-di-Fiumorbo': 157,
  'Ostersund': 158,
  'Gelsenkirchen': 159,
  'Wolvega': 160,
  'Umaker': 161,
  'Gavle': 162,
  'Clairefontaine': 163,
  'Waregem': 164,
  'Jägersro': 165,
  'Fougères': 166,
  'Carentan': 167,
  'Hambourg Bahrenfeld': 168,
  'Jarlsberg': 169,
  'Harstad': 170,
  'Nancy': 171,
  'Lyon': 172,
  'Son Pardo  Majorque': 173,
  'Bergsaker': 174,
  'Kalmar': 175,
  'Son Pardo': 176,
  'Frauenfeld': 177,
  'Melton': 178,
  'Saint': 179,
  'Yonkers-New York': 180,
  'Vienne Krieau': 181,
  '(Q+ du mardi 25': 182,
  'Saint-Moritz': 183,
  'Mikkeli': 184,
  'Meslay': 185,
  'Kouvola': 186,
  'Hambourg Horn': 187,
  'Erbray': 188,
  'Dinslaken': 189,
  'Dielsdorf': 190,
  'Baden': 191,
  '(R1C1)  Vendredi 04': 192,
  'Tours': 193,
  'lundi 02': 194},
 'idJockey': {3290: 0,
  751: 1,
  749: 2,
  8152: 3,
  1956: 4,
  14908: 5,
  1961: 6,
  8027: 7,
  8026: 8,
  2033: 9,
  2065: 10,
  2066: 11,
  1928: 12,
  7939: 13,
  15391: 14,
  2075: 15,
  15426: 16,
  724: 17,
  2113: 18,
  15441: 19,
  15477: 20,
  15567: 21,
  2114: 22,
  7853: 23,
  2122: 24,
  2073: 25,
  2152: 26,
  8177: 27,
  1921: 28,
  1791: 29,
  13161: 30,
  1792: 31,
  8449: 32,
  8395: 33,
  1819: 34,
  1838: 35,
  1856: 36,
  823: 37,
  13705: 38,
  14031: 39,
  776: 40,
  14032: 41,
  1868: 42,
  8207: 43,
  14118: 44,
  1896: 45,
  14149: 46,
  14361: 47,
  8204: 48,
  1908: 49,
  1910: 50,
  14518: 51,
  14656: 52,
  1862: 53,
  13015: 54,
  7831: 55,
  2165: 56,
  2250: 57,
  2251: 58,
  2253: 59,
  2259: 60,
  7589: 61,
  565: 62,
  17513: 63,
  7447: 64,
  2304: 65,
  2305: 66,
  7376: 67,
  2248: 68,
  17561: 69,
  17587: 70,
  2315: 71,
  17590: 72,
  2316: 73,
  2347: 74,
  2349: 75,
  7284: 76,
  17712: 77,
  17810: 78,
  7279: 79,
  7230: 80,
  17579: 81,
  2163: 82,
  17375: 83,
  17370: 84,
  15815: 85,
  7830: 86,
  674: 87,
  2174: 88,
  15930: 89,
  661: 90,
  16385: 91,
  2183: 92,
  16718: 93,
  16865: 94,
  7827: 95,
  595: 96,
  16891: 97,
  17218: 98,
  7789: 99,
  629: 100,
  7776: 101,
  7775: 102,
  621: 103,
  7703: 104,
  7693: 105,
  7677: 106,
  7635: 107,
  2245: 108,
  642: 109,
  7175: 110,
  1786: 111,
  8523: 112,
  9174: 113,
  9692: 114,
  4349: 115,
  1358: 116,
  9848: 117,
  1070: 118,
  9170: 119,
  1063: 120,
  1362: 121,
  9974: 122,
  1410: 123,
  1080: 124,
  1056: 125,
  9144: 126,
  1425: 127,
  10076: 128,
  9113: 129,
  1442: 130,
  9111: 131,
  9095: 132,
  10085: 133,
  1534: 134,
  1032: 135,
  9094: 136,
  1415: 137,
  10307: 138,
  1082: 139,
  9676: 140,
  9467: 141,
  9471: 142,
  9343: 143,
  1275: 144,
  1280: 145,
  1197: 146,
  9541: 147,
  1195: 148,
  1289: 149,
  1296: 150,
  9341: 151,
  9190: 152,
  9589: 153,
  9229: 154,
  9218: 155,
  9593: 156,
  9196: 157,
  9609: 158,
  9629: 159,
  1129: 160,
  1339: 161,
  1341: 162,
  9636: 163,
  1344: 164,
  1318: 165,
  888: 166,
  10394: 167,
  10428: 168,
  8790: 169,
  945: 170,
  8785: 171,
  12338: 172,
  1713: 173,
  8769: 174,
  12592: 175,
  8723: 176,
  926: 177,
  8707: 178,
  8638: 179,
  1703: 180,
  922: 181,
  1751: 182,
  917: 183,
  909: 184,
  1753: 185,
  1755: 186,
  1757: 187,
  902: 188,
  900: 189,
  12928: 190,
  8566: 191,
  1771: 192,
  921: 193,
  1022: 194,
  11937: 195,
  8821: 196,
  10565: 197,
  1536: 198,
  10572: 199,
  10627: 200,
  8970: 201,
  1556: 202,
  8941: 203,
  999: 204,
  998: 205,
  997: 206,
  1569: 207,
  8791: 208,
  994: 209,
  11158: 210,
  987: 211,
  986: 212,
  1577: 213,
  8897: 214,
  8869: 215,
  973: 216,
  8850: 217,
  1634: 218,
  1636: 219,
  11200: 220,
  1571: 221,
  1242: 222,
  17890: 223,
  7160: 224,
  3463: 225,
  20747: 226,
  3464: 227,
  3481: 228,
  155: 229,
  3502: 230,
  3503: 231,
  5318: 232,
  20751: 233,
  20785: 234,
  5296: 235,
  3459: 236,
  20902: 237,
  3561: 238,
  5005: 239,
  4968: 240,
  3632: 241,
  141: 242,
  4914: 243,
  21061: 244,
  75: 245,
  4859: 246,
  21131: 247,
  3657: 248,
  21036: 249,
  4833: 250,
  20642: 251,
  5349: 252,
  20117: 253,
  242: 254,
  20171: 255,
  5474: 256,
  3234: 257,
  5435: 258,
  5400: 259,
  231: 260,
  23240: 261,
  3305: 262,
  222: 263,
  5332: 264,
  3306: 265,
  179: 266,
  3328: 267,
  3351: 268,
  20262: 269,
  3355: 270,
  20282: 271,
  3365: 272,
  3366: 273,
  20380: 274,
  3375: 275,
  20483: 276,
  3320: 277,
  20074: 278,
  4828: 279,
  21190: 280,
  4072: 281,
  4542: 282,
  25: 283,
  4518: 284,
  21910: 285,
  22022: 286,
  22081: 287,
  4148: 288,
  4180: 289,
  4190: 290,
  4220: 291,
  4595: 292,
  22228: 293,
  4246: 294,
  4380: 295,
  4320: 296,
  22336: 297,
  4339: 298,
  22791: 299,
  22857: 300,
  23129: 301,
  23169: 302,
  4340: 303,
  23227: 304,
  4425: 305,
  3729: 306,
  21736: 307,
  4042: 308,
  4714: 309,
  3756: 310,
  62: 311,
  3773: 312,
  60: 313,
  3775: 314,
  21337: 315,
  21421: 316,
  3778: 317,
  3829: 318,
  3899: 319,
  4059: 320,
  51: 321,
  3969: 322,
  4681: 323,
  4677: 324,
  46: 325,
  3989: 326,
  4009: 327,
  21633: 328,
  4630: 329,
  4020: 330,
  4023: 331,
  21687: 332,
  4702: 333,
  533: 334,
  3212: 335,
  248: 336,
  18293: 337,
  18312: 338,
  2691: 339,
  6555: 340,
  2729: 341,
  18345: 342,
  2743: 343,
  18354: 344,
  18438: 345,
  18446: 346,
  2745: 347,
  6521: 348,
  6484: 349,
  6434: 350,
  18526: 351,
  433: 352,
  18680: 353,
  6404: 354,
  18760: 355,
  18904: 356,
  2805: 357,
  18948: 358,
  18991: 359,
  6577: 360,
  489: 361,
  2660: 362,
  18234: 363,
  17896: 364,
  2400: 365,
  526: 366,
  2408: 367,
  17964: 368,
  521: 369,
  7016: 370,
  2485: 371,
  17972: 372,
  17993: 373,
  2497: 374,
  3211: 375,
  7013: 376,
  7006: 377,
  2535: 378,
  2543: 379,
  2544: 380,
  2545: 381,
  6944: 382,
  2581: 383,
  6756: 384,
  2647: 385,
  495: 386,
  6663: 387,
  2506: 388,
  18996: 389,
  420: 390,
  2840: 391,
  6399: 392,
  19698: 393,
  302: 394,
  3087: 395,
  5722: 396,
  5679: 397,
  291: 398,
  19882: 399,
  19927: 400,
  286: 401,
  19616: 402,
  3136: 403,
  19940: 404,
  272: 405,
  5619: 406,
  269: 407,
  5609: 408,
  19983: 409,
  264: 410,
  20047: 411,
  3171: 412,
  3194: 413,
  3138: 414,
  3054: 415,
  3083: 416,
  5850: 417,
  2843: 418,
  6356: 419,
  2865: 420,
  408: 421,
  2868: 422,
  19203: 423,
  2885: 424,
  2889: 425,
  6306: 426,
  6028: 427,
  19579: 428,
  5961: 429,
  5963: 430,
  2986: 431,
  5875: 432,
  19487: 433,
  5940: 434,
  5880: 435,
  3027: 436,
  19434: 437,
  5891: 438,
  19325: 439,
  382: 440,
  19412: 441,
  1239: 442,
  2380: 443,
  20: 444,
  260: 445,
  7109: 446,
  1916: 447,
  4362: 448,
  26: 449,
  1079: 450,
  11019: 451,
  1031: 452,
  3225: 453,
  245: 454,
  1576: 455,
  1433: 456,
  4269: 457,
  5654: 458,
  1057: 459,
  3418: 460,
  6402: 461,
  3316: 462,
  3025: 463,
  296: 464,
  753: 465,
  4443: 466,
  7329: 467,
  4211: 468,
  721: 469,
  1565: 470,
  410: 471,
  6009: 472,
  8295: 473,
  383: 474,
  1033: 475,
  918: 476,
  5755: 477,
  2830: 478,
  1764: 479,
  1008: 480,
  268: 481,
  3137: 482,
  892: 483,
  3124: 484,
  8369: 485,
  955: 486,
  2108: 487,
  925: 488,
  2240: 489,
  1897: 490,
  8180: 491,
  620: 492,
  14718: 493,
  1951: 494,
  4747: 495,
  66: 496,
  1266: 497,
  7536: 498,
  36: 499,
  14507: 500,
  652: 501,
  7790: 502,
  498: 503,
  2576: 504,
  1922: 505,
  525: 506,
  4126: 507,
  373: 508,
  1529: 509,
  145: 510,
  8622: 511,
  2144: 512,
  12886: 513,
  234: 514,
  890: 515,
  924: 516,
  8151: 517,
  716: 518,
  6964: 519,
  6858: 520,
  2155: 521,
  8142: 522,
  710: 523,
  2629: 524,
  1781: 525,
  672: 526,
  2293: 527,
  7095: 528,
  18002: 529,
  8265: 530,
  563: 531,
  1866: 532,
  817: 533,
  560: 534,
  2261: 535,
  7324: 536,
  537: 537,
  1893: 538,
  13035: 539,
  17957: 540,
  8270: 541,
  17367: 542,
  619: 543,
  826: 544,
  1909: 545,
  2210: 546,
  14683: 547,
  2442: 548,
  754: 549,
  2404: 550,
  17856: 551,
  1237: 552,
  425: 553,
  3435: 554,
  162: 555,
  152: 556,
  1424: 557,
  5008: 558,
  3639: 559,
  70: 560,
  1061: 561,
  9960: 562,
  21449: 563,
  3911: 564,
  3985: 565,
  1331: 566,
  21642: 567,
  9197: 568,
  4024: 569,
  4097: 570,
  4486: 571,
  9315: 572,
  4174: 573,
  1189: 574,
  4204: 575,
  13: 576,
  1228: 577,
  11: 578,
  10079: 579,
  1038: 580,
  1049: 581,
  20288: 582,
  2828: 583,
  2829: 584,
  1701: 585,
  19018: 586,
  1639: 587,
  19076: 588,
  402: 589,
  378: 590,
  2991: 591,
  1598: 592,
  385: 593,
  177: 594,
  172: 595,
  1528: 596,
  5846: 597,
  3118: 598,
  293: 599,
  5392: 600,
  3190: 601,
  1561: 602,
  3376: 603,
  9189: 604,
  16: 605,
  38: 606,
  4673: 607,
  142: 608,
  903: 609,
  953: 610,
  4496: 611,
  8156: 612,
  418: 613,
  450: 614,
  2924: 615,
  494: 616,
  709: 617,
  4724: 618,
  6643: 619,
  361: 620,
  4317: 621,
  17512: 622,
  2444: 623,
  9301: 624,
  9478: 625,
  1311: 626,
  805: 627,
  157: 628,
  7940: 629,
  48: 630,
  1963: 631,
  1496: 632,
  3288: 633,
  517: 634,
  797: 635,
  13311: 636,
  906: 637,
  795: 638,
  1186: 639,
  1898: 640,
  553: 641,
  398: 642,
  17475: 643,
  729: 644,
  4364: 645,
  271: 646,
  363: 647,
  55: 648,
  3769: 649,
  5578: 650,
  2028: 651,
  8834: 652,
  144: 653,
  30: 654,
  442: 655,
  819: 656,
  970: 657,
  151: 658,
  618: 659,
  558: 660,
  1036: 661,
  4207: 662,
  279: 663,
  220: 664,
  734: 665,
  7370: 666,
  6789: 667,
  566: 668,
  3625: 669,
  3413: 670,
  169: 671,
  1192: 672,
  1596: 673,
  497: 674,
  837: 675,
  501: 676,
  1310: 677,
  1918: 678,
  891: 679,
  4855: 680,
  17353: 681,
  9150: 682,
  1019: 683,
  1820: 684,
  9157: 685,
  160: 686,
  1181: 687,
  24: 688,
  1840: 689,
  623: 690,
  731: 691,
  1599: 692,
  4022: 693,
  5361: 694,
  7997: 695,
  12: 696,
  8269: 697,
  500: 698,
  4316: 699,
  238: 700,
  979: 701,
  1555: 702,
  983: 703,
  9143: 704,
  736: 705,
  1269: 706,
  1281: 707,
  4708: 708,
  1537: 709,
  237: 710,
  3233: 711,
  3286: 712,
  236: 713,
  5379: 714,
  227: 715,
  1287: 716,
  20228: 717,
  4483: 718,
  1531: 719,
  20259: 720,
  178: 721,
  3344: 722,
  1530: 723,
  4484: 724,
  4480: 725,
  3226: 726,
  5462: 727,
  9053: 728,
  1557: 729,
  280: 730,
  1002: 731,
  8: 732,
  5653: 733,
  3142: 734,
  1230: 735,
  3148: 736,
  5586: 737,
  5584: 738,
  256: 739,
  1552: 740,
  9444: 741,
  252: 742,
  4417: 743,
  5540: 744,
  9049: 745,
  22189: 746,
  5458: 747,
  9497: 748,
  4500: 749,
  3382: 750,
  1087: 751,
  1107: 752,
  1412: 753,
  49: 754,
  21144: 755,
  67: 756,
  19815: 757,
  3960: 758,
  3674: 759,
  3700: 760,
  3708: 761,
  74: 762,
  3931: 763,
  9804: 764,
  9710: 765,
  63: 766,
  1103: 767,
  61: 768,
  52: 769,
  21223: 770,
  3896: 771,
  3830: 772,
  4711: 773,
  3718: 774,
  1054: 775,
  47: 776,
  3622: 777,
  20600: 778,
  164: 779,
  9232: 780,
  9100: 781,
  5330: 782,
  1046: 783,
  9135: 784,
  21902: 785,
  1178: 786,
  1172: 787,
  4610: 788,
  1153: 789,
  9191: 790,
  3558: 791,
  42: 792,
  148: 793,
  3560: 794,
  1426: 795,
  5113: 796,
  5075: 797,
  4634: 798,
  10057: 799,
  9630: 800,
  4117: 801,
  8968: 802,
  3061: 803,
  1000: 804,
  2359: 805,
  544: 806,
  538: 807,
  13564: 808,
  7187: 809,
  1855: 810,
  531: 811,
  17917: 812,
  2399: 813,
  7123: 814,
  17959: 815,
  13380: 816,
  828: 817,
  519: 818,
  2484: 819,
  17998: 820,
  2500: 821,
  512: 822,
  507: 823,
  18022: 824,
  2537: 825,
  7001: 826,
  5690: 827,
  502: 828,
  2549: 829,
  1790: 830,
  2556: 831,
  6962: 832,
  2558: 833,
  549: 834,
  2578: 835,
  550: 836,
  2312: 837,
  735: 838,
  2077: 839,
  7877: 840,
  15032: 841,
  717: 842,
  2143: 843,
  1985: 844,
  712: 845,
  14949: 846,
  8052: 847,
  658: 848,
  747: 849,
  7811: 850,
  787: 851,
  640: 852,
  2216: 853,
  7770: 854,
  1902: 855,
  17368: 856,
  17391: 857,
  17415: 858,
  578: 859,
  2284: 860,
  2289: 861,
  1880: 862,
  1879: 863,
  818: 864,
  17537: 865,
  1863: 866,
  2335: 867,
  1785: 868,
  18144: 869,
  6926: 870,
  938: 871,
  939: 872,
  942: 873,
  12036: 874,
  6929: 875,
  11411: 876,
  19019: 877,
  2862: 878,
  8826: 879,
  8832: 880,
  403: 881,
  6324: 882,
  19245: 883,
  6079: 884,
  8728: 885,
  971: 886,
  386: 887,
  972: 888,
  1603: 889,
  376: 890,
  1595: 891,
  1594: 892,
  982: 893,
  8023: 894,
  308: 895,
  5831: 896,
  1573: 897,
  3117: 898,
  10900: 899,
  3121: 900,
  5987: 901,
  2778: 902,
  417: 903,
  436: 904,
  6862: 905,
  1760: 906,
  2638: 907,
  496: 908,
  1748: 909,
  490: 910,
  428: 911,
  2665: 912,
  6634: 913,
  488: 914,
  455: 915,
  18328: 916,
  2701: 917,
  2710: 918,
  9173: 919,
  2728: 920,
  452: 921,
  931: 922,
  437: 923,
  18480: 924,
  18: 925,
  15: 926,
  143: 927,
  31: 928,
  6934: 929,
  1241: 930,
  726: 931,
  28: 932,
  1702: 933,
  5010: 934,
  50: 935,
  140: 936,
  4230: 937,
  3: 938,
  551: 939,
  44: 940,
  3620: 941,
  8205: 942,
  2345: 943,
  388: 944,
  246: 945,
  708: 946,
  2301: 947,
  713: 948,
  706: 949,
  743: 950,
  64: 951,
  153: 952,
  3120: 953,
  4119: 954,
  10: 955,
  1511: 956,
  359: 957,
  175: 958,
  825: 959,
  5325: 960,
  156: 961,
  1: 962,
  2215: 963,
  149: 964,
  4: 965,
  1975: 966,
  1822: 967,
  71: 968,
  8535: 969,
  6291: 970,
  176: 971,
  6761: 972,
  6501: 973,
  27: 974,
  524: 975,
  424: 976,
  406: 977,
  3282: 978,
  5876: 979,
  2233: 980,
  219: 981,
  2291: 982,
  504: 983,
  360: 984,
  1931: 985,
  4705: 986,
  3637: 987,
  1696: 988,
  2299: 989,
  7366: 990,
  1262: 991,
  3982: 992,
  5862: 993,
  4659: 994,
  2120: 995,
  5958: 996,
  1446: 997,
  21: 998,
  427: 999,
  ...}}
# Liste des variables
# Liste des variables

ordinal_enc.variables

['M1', 'M2', 'Hippodrome', 'idJockey']
X_train = ordinal_enc.transform(X_train)
X_test = ordinal_enc.transform(X_test)

# 
X_train.head()
	M1	M2	Hippodrome	idJockey
2540	28	36	64	607
19008	46	39	136	965
7624	41	31	114	1034
2575	44	17	64	664
852	39	36	113	921

**Note

Si la variable argument est laissée à None, le codeur identifiera automatiquement toutes les variables catégorielles.

Le codeur ne codera pas les variables numériques. Donc, si certaines de vos variables numériques sont en fait des catégories, vous devrez les reformuler en tant qu’objet avant d’utiliser le codeur.

Enfin, s’il y a une étiquette dans le jeu de test qui n’était pas présente dans la rame, le codeur passera et se trompera, pour vous alerter de ce comportement.

GCH anime

Je télécharge mon guide gratuit

.

Vous recevrez votre guide par email sans aucun engagement de votre part.

Si vous voulez découvrir comment fonctionne la librairie pandas ou bien l’environnement Jupyter, n’hésitez pas à consulter les cours ci-dessous.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.