Codificador 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.
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())
Uma lista ordenada de valores categóricos deve ser criada, variando de 'HS-grad'
até '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'])
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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.13
Codificador 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.
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())
Uma lista ordenada de valores categóricos deve ser criada, variando de 'HS-grad'
até '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'])
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?
Obrigado pelo seu feedback!