MulaiMulai sekarang secara gratis

One Hot Encoding

Di Amerika Serikat, lokasi tempat tinggal menentukan sekolah mana yang dapat dihadiri anak-anak Anda. Karena itu, wajar jika banyak orang sangat memperhatikan distrik sekolah tempat rumah masa depan mereka berada. Meskipun distrik sekolah diberi nomor dalam SCHOOLDISTRICTNUMBER, variabel ini sebenarnya bersifat kategorikal. Artinya, menjumlahkan atau merata-ratakan nilainya tidak memiliki makna yang jelas. Oleh karena itu, pada contoh ini kita akan mengonversi SCHOOLDISTRICTNUMBER dari variabel kategorikal menjadi vektor numerik untuk digunakan dalam model Machine Learning kita nanti.

Latihan ini adalah bagian dari kursus

Rekayasa Fitur dengan PySpark

Lihat Kursus

Petunjuk latihan

  • Instansiasi transformer StringIndexer bernama string_indexer dengan SCHOOLDISTRICTNUMBER sebagai input dan School_Index sebagai output.
  • Terapkan transformer string_indexer ke df dengan fit() dan transform(). Simpan dataframe hasil transformasi dalam indexed_df.
  • Buat transformer OneHotEncoder bernama encoder dengan School_Index sebagai input dan School_Vec sebagai output.
  • Terapkan transformasi pada indexed_df menggunakan transform(). Telusuri langkah-langkah bertahap dari transformasi tersebut dengan kode yang disediakan.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode