Codificador Ordinal
El siguiente aspecto a tratar son los datos categóricos. Existen dos tipos principales de variables categóricas.
Los datos ordinales 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 (que no es el conjunto de datos penguins) que contiene una columna 'education'
. El primer paso es comprobar 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
Codificador Ordinal
Desliza para mostrar el menú
El siguiente aspecto a tratar son los datos categóricos. Existen dos tipos principales de variables categóricas.
Los datos ordinales 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 (que no es el conjunto de datos penguins) que contiene una columna 'education'
. El primer paso es comprobar 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!