Encodage des Variables Catégorielles
Les variables catégorielles sont des caractéristiques de vos données qui représentent des catégories plutôt que des valeurs numériques. Des exemples incluent des couleurs telles que "red", "green" et "blue", ou des étiquettes telles que "yes" et "no". Les algorithmes d'apprentissage automatique nécessitent des données d'entrée numériques, il est donc nécessaire de convertir ces variables catégorielles en un format numérique avant de les utiliser dans les modèles. Ce processus s'appelle l'encodage, et il garantit que vos algorithmes peuvent interpréter et apprendre efficacement à partir des données.
L'encodage one-hot crée une nouvelle colonne binaire pour chaque catégorie d'une variable catégorielle. Chaque observation reçoit un 1 dans la colonne correspondant à sa catégorie et 0 ailleurs.
12345678910111213import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
L'encodage par étiquette attribue à chaque catégorie unique d'une variable une valeur entière, transformant ainsi les étiquettes textuelles en nombres.
123456789101112import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
L'encodage ordinal attribue des valeurs entières ordonnées aux catégories en fonction de leur classement naturel. Cette méthode préserve l'ordre inhérent des variables catégorielles ordinales, telles que les niveaux d'éducation ("high school", "bachelor", "master", "doctorate").
123456789101112131415161718import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
Faire attention lors de l'encodage des variables catégorielles. L'encodage one-hot peut introduire le piège des variables fictives – une situation où les caractéristiques sont fortement corrélées, ce qui peut perturber certains modèles. Pour éviter cela, il est possible de supprimer l'une des colonnes fictives. L'encodage par étiquette impose une relation ordinale entre les catégories, ce qui peut ne pas être approprié pour des données nominales.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 8.33
Encodage des Variables Catégorielles
Glissez pour afficher le menu
Les variables catégorielles sont des caractéristiques de vos données qui représentent des catégories plutôt que des valeurs numériques. Des exemples incluent des couleurs telles que "red", "green" et "blue", ou des étiquettes telles que "yes" et "no". Les algorithmes d'apprentissage automatique nécessitent des données d'entrée numériques, il est donc nécessaire de convertir ces variables catégorielles en un format numérique avant de les utiliser dans les modèles. Ce processus s'appelle l'encodage, et il garantit que vos algorithmes peuvent interpréter et apprendre efficacement à partir des données.
L'encodage one-hot crée une nouvelle colonne binaire pour chaque catégorie d'une variable catégorielle. Chaque observation reçoit un 1 dans la colonne correspondant à sa catégorie et 0 ailleurs.
12345678910111213import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
L'encodage par étiquette attribue à chaque catégorie unique d'une variable une valeur entière, transformant ainsi les étiquettes textuelles en nombres.
123456789101112import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
L'encodage ordinal attribue des valeurs entières ordonnées aux catégories en fonction de leur classement naturel. Cette méthode préserve l'ordre inhérent des variables catégorielles ordinales, telles que les niveaux d'éducation ("high school", "bachelor", "master", "doctorate").
123456789101112131415161718import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
Faire attention lors de l'encodage des variables catégorielles. L'encodage one-hot peut introduire le piège des variables fictives – une situation où les caractéristiques sont fortement corrélées, ce qui peut perturber certains modèles. Pour éviter cela, il est possible de supprimer l'une des colonnes fictives. L'encodage par étiquette impose une relation ordinale entre les catégories, ce qui peut ne pas être approprié pour des données nominales.
Merci pour vos commentaires !