Ordinal encoding pada DataFrame
Fitur kategorikal dapat dienkode menggunakan dua teknik, yaitu one-hot encoding dan ordinal encoding. Pada one-hot encoding, setiap kategori menjadi sebuah kolom dan kolom kategori yang sesuai untuk setiap baris bernilai 1, sedangkan yang lain 0. Pada ordinal encoding, kategori dipetakan ke nilai integer yang dimulai dari 0 hingga jumlah kategori.
Dalam latihan ini, Anda akan melakukan loop pada semua kolom di DataFrame users untuk melakukan ordinal encoding pada kategori. Anda juga akan menyimpan sebuah encoder untuk setiap kolom dalam dictionary ordinal_enc_dict sehingga kolom yang telah dienkode dapat dikonversi kembali ke kategori aslinya.
Latihan ini adalah bagian dari kursus
Menangani Data Hilang di Python
Petunjuk latihan
- Definisikan dictionary kosong
ordinal_enc_dict. - Buat objek Ordinal Encoder untuk setiap kolom.
- Pilih nilai non-null dari kolom di users dan lakukan encoding.
- Berikan kembali nilai yang telah dienkode ke nilai non-null dari setiap kolom (
col_name) di users.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)