CodificadorOrdinal
El siguiente aspecto a tratar es el de los datos categóricos. Existen dos tipos principales de variables categóricas.
Ordinal se refiere a datos que tienen un orden natural, mientras que los datos nominales no lo tienen. Debido a este orden, las categorías pueden codificarse como números según su jerarquía.
Por ejemplo, una columna 'rate' con los valores 'Terrible', 'Bad', 'OK', 'Good' y 'Great' puede codificarse como:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
Para codificar datos ordinales, se utiliza OrdinalEncoder. Este convierte las categorías en enteros comenzando desde 0.
OrdinalEncoder se aplica de la misma manera que otros transformadores. El principal desafío consiste en especificar correctamente el argumento categories.
Por ejemplo, considere un conjunto de datos (no el conjunto penguins) que contiene una columna 'education'. El primer paso es revisar sus valores únicos.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())
Se debe crear una lista ordenada de valores categóricos, que vaya desde 'HS-grad' hasta 'Doctorate'.
1234567891011121314import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])
Al transformar múltiples características con OrdinalEncoder, las categorías para cada columna deben especificarse explícitamente. Esto se realiza mediante el argumento categories:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. ¿Cuál afirmación describe mejor el uso de OrdinalEncoder para manejar datos categóricos en un conjunto de datos?
2. Suponga que tiene una columna categórica llamada 'Color'. ¿Sería apropiado utilizar OrdinalEncoder para codificar sus valores?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.13
CodificadorOrdinal
Desliza para mostrar el menú
El siguiente aspecto a tratar es el de los datos categóricos. Existen dos tipos principales de variables categóricas.
Ordinal se refiere a datos que tienen un orden natural, mientras que los datos nominales no lo tienen. Debido a este orden, las categorías pueden codificarse como números según su jerarquía.
Por ejemplo, una columna 'rate' con los valores 'Terrible', 'Bad', 'OK', 'Good' y 'Great' puede codificarse como:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
Para codificar datos ordinales, se utiliza OrdinalEncoder. Este convierte las categorías en enteros comenzando desde 0.
OrdinalEncoder se aplica de la misma manera que otros transformadores. El principal desafío consiste en especificar correctamente el argumento categories.
Por ejemplo, considere un conjunto de datos (no el conjunto penguins) que contiene una columna 'education'. El primer paso es revisar sus valores únicos.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())
Se debe crear una lista ordenada de valores categóricos, que vaya desde 'HS-grad' hasta 'Doctorate'.
1234567891011121314import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])
Al transformar múltiples características con OrdinalEncoder, las categorías para cada columna deben especificarse explícitamente. Esto se realiza mediante el argumento categories:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. ¿Cuál afirmación describe mejor el uso de OrdinalEncoder para manejar datos categóricos en un conjunto de datos?
2. Suponga que tiene una columna categórica llamada 'Color'. ¿Sería apropiado utilizar OrdinalEncoder para codificar sus valores?
¡Gracias por tus comentarios!