Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Codificador Ordinal | Preprocesamiento de Datos con Scikit-learn
Introducción al ML con Scikit-Learn

bookCodificador Ordinal

El siguiente problema que resolveremos es el de los datos categóricos. Recuerde que existen dos tipos de datos categóricos.

Los datos ordinales siguen un orden natural, mientras que los nominales no. Dado que existe un orden natural, podemos codificar las categorías con números en ese orden.

Por ejemplo, codificaríamos la columna 'rate' que contiene los valores 'Terrible', 'Bad', 'OK', 'Good' y 'Great' de la siguiente manera:

  • 'Terrible' – 0;
  • 'Bad' – 1;
  • 'OK' – 2;
  • 'Good' – 3;
  • 'Great' – 4.

Para codificar datos ordinales, se utiliza OrdinalEncoder. Simplemente codifica las categorías como 0, 1, 2, ... .

OrdinalEncoder es fácil de usar como cualquier otro transformador. La única dificultad es especificar correctamente el argumento categories.

Veamos un ejemplo de uso. Tenemos un conjunto de datos (no el conjunto de datos de penguins) con una columna 'education'. Ahora, examinemos sus valores únicos.

12345
import 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())
copy

Es necesario crear una lista de valores categóricos ordenados, en este caso, desde 'HS-grad' hasta 'Doctorate'.

1234567891011121314
import 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'])
copy

Si necesitas transformar múltiples características usando el OrdinalEncoder, es importante especificar las categorías para cada columna. Puedes hacerlo utilizando el argumento categories como se muestra a continuación:

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. Supón que tienes una columna categórica llamada 'Color'. ¿Sería apropiado utilizar el OrdinalEncoder para codificar sus valores?

question mark

¿Cuál afirmación describe mejor el uso de OrdinalEncoder para manejar datos categóricos en un conjunto de datos?

Select the correct answer

question mark

Supón que tienes una columna categórica llamada 'Color'. ¿Sería apropiado utilizar el OrdinalEncoder para codificar sus valores?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.13

bookCodificador Ordinal

Desliza para mostrar el menú

El siguiente problema que resolveremos es el de los datos categóricos. Recuerde que existen dos tipos de datos categóricos.

Los datos ordinales siguen un orden natural, mientras que los nominales no. Dado que existe un orden natural, podemos codificar las categorías con números en ese orden.

Por ejemplo, codificaríamos la columna 'rate' que contiene los valores 'Terrible', 'Bad', 'OK', 'Good' y 'Great' de la siguiente manera:

  • 'Terrible' – 0;
  • 'Bad' – 1;
  • 'OK' – 2;
  • 'Good' – 3;
  • 'Great' – 4.

Para codificar datos ordinales, se utiliza OrdinalEncoder. Simplemente codifica las categorías como 0, 1, 2, ... .

OrdinalEncoder es fácil de usar como cualquier otro transformador. La única dificultad es especificar correctamente el argumento categories.

Veamos un ejemplo de uso. Tenemos un conjunto de datos (no el conjunto de datos de penguins) con una columna 'education'. Ahora, examinemos sus valores únicos.

12345
import 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())
copy

Es necesario crear una lista de valores categóricos ordenados, en este caso, desde 'HS-grad' hasta 'Doctorate'.

1234567891011121314
import 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'])
copy

Si necesitas transformar múltiples características usando el OrdinalEncoder, es importante especificar las categorías para cada columna. Puedes hacerlo utilizando el argumento categories como se muestra a continuación:

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. Supón que tienes una columna categórica llamada 'Color'. ¿Sería apropiado utilizar el OrdinalEncoder para codificar sus valores?

question mark

¿Cuál afirmación describe mejor el uso de OrdinalEncoder para manejar datos categóricos en un conjunto de datos?

Select the correct answer

question mark

Supón que tienes una columna categórica llamada 'Color'. ¿Sería apropiado utilizar el OrdinalEncoder para codificar sus valores?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5
some-alt