Overview
Fungsi get_dummies dalam library Pandas Python penting untuk mengonversi data kategorikal menjadi variabel dummy, yang memudahkan analisis statistik dan model machine learning. Dengan mengubah setiap kategori menjadi kolom numerik terpisah, fungsi ini memungkinkan algoritma untuk memproses dan memahami data secara efisien.
Penguasaan terhadap data menjadi kunci utama dalam pengambilan keputusan bisnis yang efektif dan inovatif. Python, sebagai salah satu bahasa pemrograman paling populer, menawarkan berbagai fungsi yang mendukung analisis data, salah satunya adalah get_dummies dari library Pandas.
Penggunaan fungsi get_dummies membantu dalam pemrosesan data sebelum melakukan analisis lebih lanjut atau machine learning. Hal ini karena model analitik sering kali hanya dapat mengolah data numerik. Dengan mengubah data kategorikal menjadi numerik, kamu memudahkan mesin untuk memahami pola dan melakukan prediksi.
Fungsi ini juga mendukung parameter yang bisa disesuaikan untuk mengatasi berbagai kebutuhan analisis data, sehingga membuatnya fleksibel dan mudah digunakan oleh pemula.
Artikel berikut akan membimbing melalui konsep dan penerapan get_dummies, memastikan setiap langkah dijelaskan secara mendalam, sehingga kamu dapat mengimplementasikannya dalam proyek analisis datamu. Yuk, simak!
Kapan dan Mengapa Menggunakan get_dummies di Pandas?
Fungsi get_dummies sangat berguna saat kamu memiliki data kategorikal dalam dataset yang ingin dianalisis atau gunakan dalam model machine learning. Data kategorikal adalah data yang mewakili kategori, seperti "warna" dengan nilai "merah", "biru", dan "hijau", atau "status" dengan nilai "lajang" atau "menikah".
Mengapa menggunakan get_dummies? Alasannya cukup sederhana. Sebagian besar teknik analisis data dan algoritma machine learning membutuhkan data dalam bentuk numerik untuk melakukan perhitungan. Fungsi get_dummies mengubah setiap nilai unik dalam kolom kategorikal menjadi kolom baru dan mengisi kolom tersebut dengan 0 atau 1.
Mari kita gunakan analogi sederhana. Bayangkan kamu sedang mengatur sebuah lomba lari dan perlu memberi nomor dada kepada peserta. Daripada menuliskan "anak-anak", "dewasa", dan "lansia", kamu memberi setiap kelompok angka tertentu, seperti 1 untuk anak-anak, 2 untuk dewasa, dan 3 untuk lansia.
Dalam analisis data, get_dummies melakukan hal serupa dengan mengubah kategori seperti "anak-anak", "dewasa", dan "lansia" menjadi kolom terpisah dengan angka 0 atau 1, yang menunjukkan kehadiran atau ketidakhadiran setiap kategori tersebut dalam sampel data.
Penggunaan get_dummies memungkinkan algoritma lebih mudah mengidentifikasi dan memproses berbagai kategori ini dalam bentuk yang lebih "mudah dicerna". Dengan demikian, analisis yang kamu lakukan bisa lebih akurat dan efisien, membantu dalam pengambilan keputusan atau prediksi berbasis data.
Cara dan Contoh Penggunaan get_dummies
Berikut cara dan contoh penggunaan fungsi get_dummies dari Pandas untuk mengubah data kategorikal menjadi variabel dummy dalam berbagai skenario:
#1 Menggunakan get_dummies untuk satu kolom
Untuk mengonversi satu kolom data kategorikal menjadi variabel dummy, langkah-langkah dasarnya adalah:
- Impor library Pandas.
- Buat DataFrame yang mengandung kolom kategorikal.
- Gunakan fungsi get_dummies pada kolom tersebut.
Contoh dataset:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac785_668dc9b4551236a821ac0fc7_AD_4nXdDQ5D-RjER8HfVxIkYB1OyVY0HeTF3QFuxvO0giQ4iYQ01rfOwE-Htlx_xXP2hPBvn9_8HN5giTn45_xZ5BPS9c7r-a5orjw6BAAWI1brTSqdUCYKYadxGMWQK--rz-vAXtXHiMiWRhIQ2dBPNhLVjzV9A.png)
Output:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac77c_668dc9b4f7cee8bea04d6678_AD_4nXcSwnAhWMzKou_LqN9LP6Mf9WvajRmHlGGERAt_mi2HcdyBtNhxSzib4HybwhFvuv38fSkvXXr4cmw9pq5tcti1yW_eBY9h1BPQQwv1LEsZMGcWHQ53aV4ElKB-J19875L5IImHoLZDXTYYcFkNsPbmUUYu.png)
#2 Menggunakan get_dummies untuk seluruh DataFrame
Untuk mengonversi seluruh kolom data kategorikal dalam DataFrame menjadi variabel dummy:
- Pastikan semua kolom yang ingin di-dummy adalah kategorikal.
- Gunakan get_dummies pada seluruh DataFrame.
Contoh dataset:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac776_668dc9b49706c728e08abc08_AD_4nXd3jfIJU-q5oCTHGSHCYPnTvXrLBS78WCLmHP3-np5nBVz3FrF2k2C1O21M-Tz3bvjjD3HFeg2Z2d8_kIt2OITn3PNd9Pl67bcb4TqEzR1WvAymscDJpg-kEdp3v2nUkS9l5wrMgwX53jQeFHQEH6IkkGDn.png)
Output:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac782_668dc9b4c357b0db9af8338a_AD_4nXc-ty2qEkMuOyKlDv_Tw3tSX7Di53Hg11kkvNiXo24_DsGl4EJZDHSM9tsMAuG11R8Nn1fCZfFxfa2qx6hDPQ6ybYTqVMVtv7RdzHpX5g2_ar8JBa_hFWa5l7i-Md60e_Lnq9Et-iHJZCnAtoFkrb1P9O-x.png)
#3 Menggunakan get_dummies dengan prefix
Kita memiliki dataset seperti sebelumnya:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac785_668dc9b4551236a821ac0fc7_AD_4nXdDQ5D-RjER8HfVxIkYB1OyVY0HeTF3QFuxvO0giQ4iYQ01rfOwE-Htlx_xXP2hPBvn9_8HN5giTn45_xZ5BPS9c7r-a5orjw6BAAWI1brTSqdUCYKYadxGMWQK--rz-vAXtXHiMiWRhIQ2dBPNhLVjzV9A.png)
Untuk menambahkan prefix pada nama kolom dummy variables, gunakan parameter prefix berikut:
Output:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac779_668dc9b4cef5ad41508a0f54_AD_4nXclO_pyGzzIJbq4rKMwv__u7Bbg-4kOdadhQY5ZpQIZYo73IaVNxFCPti7yCWRpJZvKZjdqa49p3kzryitoba8WKAihTOWGsWf2wehSUbGKqZ89zp6fCGbGSkxuiHPeIo1ePinU9hQtYSGs390FSpOFugVF.png)
#4 Menggunakan get_dummies dengan drop first
Mengapa kita terkadang menggunakan drop_first dalam pemrosesan data?
Alasan utamanya adalah untuk mengurangi redundansi dalam data dan menyederhanakan model yang akan kita gunakan.
Sebagai contoh, kita memiliki sebuah kolom yang berisi kategori warna: Merah, Biru, dan Hijau. Saat menggunakan fungsi get_dummies dari Pandas (yang mengonversi kategori ini menjadi kolom biner terpisah) drop_first dapat dipakai untuk menghilangkan salah satu kolom dummy.
Jika kolom Merah dihilangkan, keberadaan warna Merah bisa ditentukan dari kolom Biru dan Hijau yang bernilai 0. Ini menghindari multicollinearity dalam data, di mana keberadaan satu atau lebih prediktor yang berkorelasi bisa mengganggu estimasi dalam model regresi.
Secara umum, penggunaan drop_first membantu dalam pra-pemrosesan data dengan mengurangi jumlah fitur yang tidak perlu, sehingga mempermudah dan mempercepat proses pelatihan model.
Dengan contoh dataset yang sama seperti sebelumnya, kita akan menggunakan drop_first untuk menghindari multikolinearitas dengan menghapus kolom dummy pertama:
Output:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c0618d89cf6ef1ce7ac77f_668dc9b4cfc7c9473849b001_AD_4nXeEkamywebu_pIWrjrgXQGFHIZS-4ZveI_84XMxzMwePdZhGaeS_dj-OVvOV8H9CmGGAFINIwsmZEnGRVD3-VsYBDskN_C-inHPvMJ-jhXRYDy3tcXnb_YWWPmSVGSC-pAJfRm6YaczQAm2rpZL-517ZRs.png)
FAQs (Frequently Asked Questions)
Bagaimana cara menangani banyak kategori dengan get_dummies agar tidak membengkaknya jumlah fitur?
Menghadapi banyak kategori dalam data kategorikal bisa menjadi tantangan ketika menggunakan get_dummies, karena ini bisa menyebabkan pembengkakan jumlah fitur dalam dataset, yang akan mengurangi efisiensi model dan menyebabkan masalah seperti curse of dimensionality.
Berikut beberapa strategi untuk menangani situasi ini:
- Penggabungan kategori kecil: salah satu cara efektif adalah dengan menggabungkan kategori yang memiliki frekuensi sangat rendah ke dalam kategori yang lebih umum bernama "Lainnya". Ini mengurangi jumlah kolom total tanpa kehilangan informasi yang signifikan.
- Pemilihan fitur: sebelum melakukan dummy encoding, lakukan analisis untuk menentukan kategori mana yang benar-benar penting untuk analisis atau prediksi. Hapus kategori yang tidak memberikan informasi penting atau yang redundan.
- Penggunaan sparse matrices: ketika memakai get_dummies, gunakan parameter sparse=True untuk mengubah output menjadi sparse DataFrame. Ini membantu dalam mengurangi penggunaan memori karena hanya posisi dan nilai dari elemen non-zero yang disimpan.
- Principal Component Analysis (PCA): setelah menerapkan get_dummies, gunakan PCA untuk mereduksi dimensi. PCA membantu mengurangi jumlah fitur dengan menciptakan fitur baru yang menjelaskan varians maksimal data dengan jumlah komponen yang lebih sedikit.
- Penerapan one hot encoding secara selektif: daripada menggunakan get_dummies pada setiap kolom kategorikal, pilihlah hanya kolom yang paling relevan atau yang memiliki jumlah kategori yang wajar. Teknik ini membantu menghindari penambahan kolom yang tidak perlu.
- Limitasi pada get_dummies: dalam beberapa kasus, mungkin berguna untuk secara manual membatasi jumlah dummy yang dibuat dengan hanya mengambil N kategori teratas berdasarkan frekuensi dan menggabungkan sisanya ke dalam kategori "Lainnya".
Apakah get_dummies efektif untuk semua jenis data kategorikal?
Fungsi get_dummies sangat efektif untuk mengolah data kategorikal, terutama untuk data nominal di mana kategori tidak memiliki urutan atau peringkat yang inheren.
Namun, untuk beberapa jenis data kategorikal, seperti data ordinal, get_dummies mungkin tidak selalu menjadi pilihan terbaik. Berikut penjelasan lebih lanjut mengenai efektivitas get_dummies berdasarkan jenis data kategorikal:
#1 Data nominal
Untuk data nominal seperti warna, merek, atau jenis kelamin, di mana tidak ada urutan yang masuk akal di antara kategori, get_dummies sangat efektif. Fungsi ini mengubah setiap kategori menjadi kolom terpisah dan memasukkan nilai 0 atau 1 untuk menunjukkan keberadaan atau ketidakhadiran kategori tersebut dalam sampel. Ini memudahkan model machine learning untuk memproses data tanpa adanya asumsi tentang urutan kategori.
#2 Data ordinal
Data ordinal, seperti tingkat pendidikan (SD, SMP, SMA), tingkat keparahan penyakit (ringan, sedang, berat), atau peringkat (baik, lebih baik, terbaik), memiliki urutan yang jelas. Menggunakan get_dummies untuk data ini bisa menghilangkan informasi tentang urutan, yang mungkin penting untuk analisis. Untuk jenis data ini, metode seperti label encoding atau penggunaan skala ordinal yang kustom lebih sesuai karena mempertahankan informasi urutan dalam representasi numerik.
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/62bbfbb189b700fc937e2e70_Logo-RevoU-5.png)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Artikel Lainnya
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/668dda604c54e3491b3fa22d_python%20get%20dummies.webp)