ComeçarComece de graça

Strings e fatores

Como você sabe, o Spark requer dados numéricos para modelagem. Até o momento, isso não tem sido um problema; mesmo as colunas booleanas podem ser facilmente convertidas em inteiros sem nenhum problema. Mas você também deve usar a companhia aérea e o destino do avião como variáveis independentes no modelo. Elas são codificadas como strings, e não há nenhuma maneira óbvia de convertê-las em um tipo de dados numéricos.

Felizmente, o PySpark tem funções para lidar com isso integradas no submódulo pyspark.ml.features. Você pode criar o que chamamos de "vetores one-hot" para representar a companhia aérea e o destino de cada voo. Um vetor one-hot é uma forma de representar uma variável independente categórica em que cada observação tem um vetor em que todos os elementos são zero, exceto no máximo um elemento, que tem valor igual a um (1).

Cada elemento do vetor corresponde a um nível da variável independente, portanto é possível saber qual é o nível correto vendo qual elemento do vetor é igual a um (1).

A primeira etapa para codificar sua variável independente categórica é criar um StringIndexer. Os membros dessa classe são Estimators que recebem um DataFrame com uma coluna de strings e associam cada string exclusiva a um número. Em seguida, o Estimator retorna um Transformer que recebe um DataFrame, anexa o mapeamento a ele como metadados e retorna um novo DataFrame com uma coluna numérica correspondente à coluna de strings.

A segunda etapa é codificar essa coluna numérica como um vetor one-hot usando um OneHotEncoder. Funciona exatamente da mesma forma que o StringIndexer, criando um Estimator e, em seguida, um Transformer. O resultado final é uma coluna que codifica sua variável independente categórica como um vetor adequado para as rotinas de aprendizado de máquina!

Pode parecer complicado, mas não se preocupe! Basta se lembrar que você precisa criar um StringIndexer e um OneHotEncoder, e o Pipeline cuida do resto.

Por que é preciso codificar uma variável independente categórica como um vetor one-hot?

Este exercício faz parte do curso

Introdução ao PySpark

Ver curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Começar o exercício