Conteúdo do Curso
ML Introduction with scikit-learn
1. Conceitos de Aprendizado de Máquina
2. Pré-processamento de Dados com Scikit-learn
ML Introduction with scikit-learn
CodificadorOrdinal
O próximo problema que vamos resolver é o dos dados categóricos. Lembre-se de que existem dois tipos de dados categóricos.
Dados ordinais seguem uma ordem natural, enquanto nominais não. Como existe uma ordem natural, podemos codificar categorias em números nessa ordem. Por exemplo, codificaríamos a coluna 'avaliação' contendo os valores 'Péssimo', 'Ruim', 'OK', 'Bom' e 'Ótimo' assim:
'Péssimo' – 0
'Ruim' – 1
'OK' – 2
'Bom' – 3
'Ótimo' – 4
Para codificar dados ordinais, utiliza-se o OrdinalEncoder
. Ele simplesmente codifica as categorias em 0, 1, 2, ...
Aqui está uma imagem mostrando como funciona.
O OrdinalEncoder
é fácil de usar como qualquer outro transformador. A única dificuldade é especificar corretamente o argumento categories
.
Vamos observar o exemplo de uso. Temos um conjunto de dados (não o conjunto de dados dos Pinguins) com a coluna 'education'
. Vamos dar uma olhada em seus valores únicos.
Precisamos criar uma lista de valores categóricos ordenados, neste caso, de 'HS-grad' a 'Doutorado'.
Nota
OrdinalEncoder
é comumente utilizado para transformar as características (variável X
). E a variável X
geralmente é um DataFrame que contém mais de uma coluna.
Por isso, o argumento categories
permite especificar a lista de categorias para cada coluna, por exemplo, categories=[col1_categories, col2_categories]
.
E se você deseja transformar apenas 1 coluna, ainda deve passar uma lista contendo outra lista, por exemplo, categories=[col1_categories]
.
Essa é também a razão pela qual o método .fit_transform()
espera o DataFrame e não funciona com Series, de modo que você precisa passar df[['column']]
para transformar apenas uma coluna.
Tudo estava claro?
Conteúdo do Curso
ML Introduction with scikit-learn
1. Conceitos de Aprendizado de Máquina
2. Pré-processamento de Dados com Scikit-learn
ML Introduction with scikit-learn
CodificadorOrdinal
O próximo problema que vamos resolver é o dos dados categóricos. Lembre-se de que existem dois tipos de dados categóricos.
Dados ordinais seguem uma ordem natural, enquanto nominais não. Como existe uma ordem natural, podemos codificar categorias em números nessa ordem. Por exemplo, codificaríamos a coluna 'avaliação' contendo os valores 'Péssimo', 'Ruim', 'OK', 'Bom' e 'Ótimo' assim:
'Péssimo' – 0
'Ruim' – 1
'OK' – 2
'Bom' – 3
'Ótimo' – 4
Para codificar dados ordinais, utiliza-se o OrdinalEncoder
. Ele simplesmente codifica as categorias em 0, 1, 2, ...
Aqui está uma imagem mostrando como funciona.
O OrdinalEncoder
é fácil de usar como qualquer outro transformador. A única dificuldade é especificar corretamente o argumento categories
.
Vamos observar o exemplo de uso. Temos um conjunto de dados (não o conjunto de dados dos Pinguins) com a coluna 'education'
. Vamos dar uma olhada em seus valores únicos.
Precisamos criar uma lista de valores categóricos ordenados, neste caso, de 'HS-grad' a 'Doutorado'.
Nota
OrdinalEncoder
é comumente utilizado para transformar as características (variável X
). E a variável X
geralmente é um DataFrame que contém mais de uma coluna.
Por isso, o argumento categories
permite especificar a lista de categorias para cada coluna, por exemplo, categories=[col1_categories, col2_categories]
.
E se você deseja transformar apenas 1 coluna, ainda deve passar uma lista contendo outra lista, por exemplo, categories=[col1_categories]
.
Essa é também a razão pela qual o método .fit_transform()
espera o DataFrame e não funciona com Series, de modo que você precisa passar df[['column']]
para transformar apenas uma coluna.
Tudo estava claro?