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 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.

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

Se debe crear una lista ordenada de valores categóricos, que vaya 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

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?

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

Suponga que tiene una columna categórica llamada 'Color'. ¿Sería apropiado utilizar 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 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.

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

Se debe crear una lista ordenada de valores categóricos, que vaya 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

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?

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

Suponga que tiene una columna categórica llamada 'Color'. ¿Sería apropiado utilizar 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