One Hot Encoding
Amerika Birleşik Devletleri'nde nerede yaşadığın, çocuklarının hangi okullara gidebileceğini belirler. Bu yüzden pek çok kişinin, alacakları evin hangi okul bölgesinde olduğuna çok önem vermesi anlaşılır bir durum. SCHOOLDISTRICTNUMBER alanında okul bölgeleri numaralandırılmış olsa da aslında bunlar kategoriktir. Yani bu değerleri toplamanın ya da ortalamasını almanın belirgin bir anlamı yoktur. Bu nedenle bu örnekte SCHOOLDISTRICTNUMBER değişkenini kategorik bir değişkenden, daha sonra Machine Learning modelimizde kullanmak üzere sayısal bir vektöre dönüştüreceğiz.
Bu egzersiz, kursun bir parçasıdır
PySpark ile Özellik Mühendisliği
Egzersiz talimatları
- Girdisi
SCHOOLDISTRICTNUMBER, çıktısıSchool_Indexolacak şekildestring_indexeradlı birStringIndexertransformer'ı oluştur. string_indexertransformer'ınıdfüzerindefit()vetransform()ile uygula. Dönüşmüş veri çerçevesiniindexed_dfolarak sakla.- Girdisi
School_Index, çıktısıSchool_Vecolacak şekildeencoderadlı birOneHotEncodertransformer'ı oluştur. - Dönüşümü
indexed_dfüzerindetransform()ile uygula. Sağlanan kodla dönüşümün adımlarını incele.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)