Home / BIG DATA / Pandas get_dummies x Sklearn DictVectorizer

Pandas get_dummies x Sklearn DictVectorizer

Em machine learning, uma das partes mais importantes é a feature engineering. Este post tratará da conversão de categorias com classes string para numérico (colunas texto para números inteiros), já que os algoritmos de ML trabalham com números.

Para cada classe da feature (ou a cada categoria de uma coluna), será criado uma nova coluna.

Mas você deve estar se perguntando: por que simplesmente não atribui um número a cada categoria? Exemplo:

Coluna car type com as opções : sedan, suv, hatch

Poderíamos simplesmente converter em: 1 – sedan, 2 – suv, 3 – hatch

Esta não é uma boa abordagem porque como algoritmos realizam equações matemáticas, não faria sentido por exemplo 1 (sedan) + 2 (suv) = 3 (hatch)

Veja mais em https://malum.com.br/wp/2019/11/24/normalizando-dados-com-sklearn/ 

Primeiro vamos carregar nossos dados em nosso pandas dataframe.

Pandas get_dummies

A vantagem desta funcionalidade é que é possível usá-la diretamente no dataframe, identificando as features e categorizando. Cria-se colunas novas para cada classe da categoria. A opção drop_first está como true para evitar problemas de multicolinearidade.

Sklearn DictVectorizer

Esta abordagem é recomendada quando há centenas ou milhares de categorias e features. Apesar de ser mais complexa, ela suporta sparse matrix outputs. Como ela trabalha apenas com dicts, deve-se converter o dataframe para poder utilizá-la. O resultado é um numpy array.

No exemplo abaixo nós convertemos em dict, realizamos a conversão de dados e em seguida colocamos novamente em um dataframe:

Faça o download do código clicando aqui

Check Also

Criando o requirements.txt de forma automática

Uma boa prática em todo projeto é criar o arquivo “requirements.txt”. Nele consta todas as …

Leave a Reply

Your email address will not be published. Required fields are marked *

PortugueseEnglishFrenchSpanishGerman