Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Codificador Ordinal | Pré-Processamento de Dados com Scikit-Learn
Introdução ao ML com Scikit-learn

bookCodificador Ordinal

A próxima questão a ser abordada são os dados categóricos. Existem dois principais tipos de variáveis categóricas.

Dados ordinais possuem uma ordem natural, enquanto dados nominais não possuem. Devido a essa ordem, as categorias podem ser codificadas como números de acordo com seu ranking.

Por exemplo, uma coluna 'rate' com os valores 'Terrible', 'Bad', 'OK', 'Good' e 'Great' pode ser codificada como:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

Para codificar dados ordinais, utiliza-se o OrdinalEncoder. Ele converte categorias em inteiros a partir de 0.

O OrdinalEncoder é aplicado da mesma forma que outros transformadores. O principal desafio está em especificar corretamente o argumento categories.

Por exemplo, considere um conjunto de dados (não o conjunto penguins) que contém uma coluna 'education'. O primeiro passo é verificar seus 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

Uma lista ordenada de valores categóricos deve ser criada, variando de 'HS-grad' até '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

Ao transformar múltiplas variáveis com o OrdinalEncoder, as categorias de cada coluna devem ser especificadas explicitamente. Isso é feito através do argumento categories:

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. Qual afirmação melhor descreve o uso do OrdinalEncoder para tratar dados categóricos em um conjunto de dados?

2. Suponha que você tenha uma coluna categórica chamada 'Color'. Seria apropriado utilizar o OrdinalEncoder para codificar seus valores?

question mark

Qual afirmação melhor descreve o uso do OrdinalEncoder para tratar dados categóricos em um conjunto de dados?

Select the correct answer

question mark

Suponha que você tenha uma coluna categórica chamada 'Color'. Seria apropriado utilizar o OrdinalEncoder para codificar seus valores?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.13

bookCodificador Ordinal

Deslize para mostrar o menu

A próxima questão a ser abordada são os dados categóricos. Existem dois principais tipos de variáveis categóricas.

Dados ordinais possuem uma ordem natural, enquanto dados nominais não possuem. Devido a essa ordem, as categorias podem ser codificadas como números de acordo com seu ranking.

Por exemplo, uma coluna 'rate' com os valores 'Terrible', 'Bad', 'OK', 'Good' e 'Great' pode ser codificada como:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

Para codificar dados ordinais, utiliza-se o OrdinalEncoder. Ele converte categorias em inteiros a partir de 0.

O OrdinalEncoder é aplicado da mesma forma que outros transformadores. O principal desafio está em especificar corretamente o argumento categories.

Por exemplo, considere um conjunto de dados (não o conjunto penguins) que contém uma coluna 'education'. O primeiro passo é verificar seus 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

Uma lista ordenada de valores categóricos deve ser criada, variando de 'HS-grad' até '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

Ao transformar múltiplas variáveis com o OrdinalEncoder, as categorias de cada coluna devem ser especificadas explicitamente. Isso é feito através do argumento categories:

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. Qual afirmação melhor descreve o uso do OrdinalEncoder para tratar dados categóricos em um conjunto de dados?

2. Suponha que você tenha uma coluna categórica chamada 'Color'. Seria apropriado utilizar o OrdinalEncoder para codificar seus valores?

question mark

Qual afirmação melhor descreve o uso do OrdinalEncoder para tratar dados categóricos em um conjunto de dados?

Select the correct answer

question mark

Suponha que você tenha uma coluna categórica chamada 'Color'. Seria apropriado utilizar o OrdinalEncoder para codificar seus valores?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
some-alt