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
Instruções do exercício
- Instancie um
StringIndexerchamadostring_indexercomSCHOOLDISTRICTNUMBERcomo entrada eSchool_Indexcomo saída. - Aplique o
transformerstring_indexeraodfcomfit()etransform(). Armazene o dataframe transformado emindexed_df. - Crie um
OneHotEncoderchamadoencoderusandoSchool_Indexcomo entrada eSchool_Veccomo saída. - Aplique a transformação a
indexed_dfusandotransform(). 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)