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
Petunjuk latihan
- Instansiasi transformer
StringIndexerbernamastring_indexerdenganSCHOOLDISTRICTNUMBERsebagai input danSchool_Indexsebagai output. - Terapkan transformer
string_indexerkedfdenganfit()dantransform(). Simpan dataframe hasil transformasi dalamindexed_df. - Buat transformer
OneHotEncoderbernamaencoderdenganSchool_Indexsebagai input danSchool_Vecsebagai output. - Terapkan transformasi pada
indexed_dfmenggunakantransform(). 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)