ПочатиПочніть безкоштовно

One Hot Encoding

У Сполучених Штатах місце проживання визначає, до яких шкіл можуть ходити ваші діти. Тож зрозуміло, що багатьом дуже важливо, до якого шкільного округу належатиме їхнє майбутнє житло. Хоча шкільні округи мають номери в SCHOOLDISTRICTNUMBER, за суттю це категоріальні значення. Тобто підсумовувати чи усереднювати їх не має очевидного сенсу. Тому в цьому прикладі ми перетворимо SCHOOLDISTRICTNUMBER з категоріальної змінної на числовий вектор, щоб далі використати його в нашій моделі машинного навчання.

Ця вправа є частиною курсу

Опрацювання ознак у PySpark

Переглянути курс

Інструкції до вправи

  • Створіть перетворювач StringIndexer з назвою string_indexer, указавши SCHOOLDISTRICTNUMBER як вхід і School_Index як вихід.
  • Застосуйте перетворювач string_indexer до df, викликавши fit() і transform(). Збережіть перетворений датафрейм у indexed_df.
  • Створіть перетворювач OneHotEncoder з назвою encoder, використавши School_Index як вхід і School_Vec як вихід.
  • Застосуйте перетворення до indexed_df, використавши transform(). Перегляньте покрокові результати перетворення за допомогою наданого коду.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код