ComeçarComece de graça

One-Hot Encoding

Nos Estados Unidos, o lugar onde você mora determina a quais escolas seus filhos podem frequentar. Por isso, é natural que muitas pessoas se importem muito com quais distritos escolares o futuro lar estará. Embora os distritos escolares sejam numerados em SCHOOLDISTRICTNUMBER, na prática eles são categóricos. Ou seja, somar ou calcular a média desses valores não faz sentido. Portanto, neste exemplo vamos converter SCHOOLDISTRICTNUMBER de uma variável categórica em um vetor numérico para usar no nosso modelo de Machine Learning depois.

Este exercício faz parte do curso

Feature Engineering com PySpark

Ver curso

Instruções do exercício

  • Instancie um StringIndexer chamado string_indexer com SCHOOLDISTRICTNUMBER como entrada e School_Index como saída.
  • Aplique o transformer string_indexer ao df com fit() e transform(). Armazene o dataframe transformado em indexed_df.
  • Crie um OneHotEncoder chamado encoder usando School_Index como entrada e School_Vec como saída.
  • Aplique a transformação a indexed_df usando transform(). Inspecione as etapas iterativas da transformação com o código fornecido.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

from pyspark.ml.feature import OneHotEncoder, StringIndexer

# Map strings to numbers with string indexer
string_indexer = ____(inputCol=____, outputCol=____)
indexed_df = ____.____(df).____(df)

# Onehot encode indexed values
encoder = ____(inputCol=____, outputCol=____)
encoded_df = ____.____(indexed_df)

# Inspect the transformation steps
encoded_df[['SCHOOLDISTRICTNUMBER', 'School_Index', 'School_Vec']].show(truncate=100)
Editar e executar o código