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 merupakan bagian dari kursus
Rekayasa Fitur dengan PySpark
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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)