Advertise

Data Wrangling : Defenisi, Proses dan Implementasinya di Python

 

Sekilas Tentang Data Wrangling

Sebelum kita membahas lebih jauh tentang project data wrangling, pastinya bagi pemula pada bertanya-tanya. Terlebih lagi, kalian pasti belum sepenuhnya tahu kira-kira data wrangling itu apa sih? Kita coba kali ya buat kulik-kulik definisinya. Apa sih data wrangling itu?

Wrangling python merupakan proses dalam data science dimana data ditransformasi ke dalam format yang lebih rapi. Dalam data science langkah utama dalam prosesnya adalah pengumpulan data. Data ini seringkali formatnya tidak seragam karena dikumpulkan dari berbagai sumber data. Bentuk format data yang belum seragam ini disebut raw data. Maka data tersebut perlu diubah ke dalam format yang sama agar lebih mudah untuk proses selanjutnya.

Alasan Data Wrangling Perlu Dikuasai

Dalam melakukan data wrangling, bahasa pemrograman yang seringkali digunakan adalah bahasa pemrograman Python. Terlebih bagi seorang data scientist, skill terkait data wrangling perlu untuk dikuasai dalam pekerjaan apapun di ranah industri data. Baik Data Analyst, Data Scientist ataupun Data Engineer. Kira-kira apa aja sih sekelumit alasannya kenapa data wrangling perlu dikuasai? Simak selengkapnya alasan-alasan berikut!

Proses Terpenting dalam Melakukan Pengolahan Data

Seperti yang sudah diketahui bahwa proses data science meliputi pengumpulan data, memproses data, analisis, dan penarikan kesimpulan. Proses data wrangling adalah bagian dari memproses atau mengolah data. Library yang sering digunakan untuk wrangling pada Python adalah Pandas. Dengan Pandas kita bisa mengakses data yang akan digunakan seperti dalam data dalam format csv, tsv, atau excel.

Selain mengakses data, penting juga untuk tahu bentuk datasetnya seperti jumlah data, tipe data, dan sebagainya. Dalam wrangling ada proses dimana data diubah ke dalam format yang sama. Proses ini membutuhkan ketelitian karena data yang digunakan biasanya berjumlah sangat banyak. Biasanya akan ditemukan data yang tidak lengkap, format tanggal yang berbeda, dan lain-lain. Disinilah data wrangling berperan penting untuk menangani permasalahan tersebut.

Wrangling dengan Python kita bisa melakukan handling missing value agar data yang digunakan menjadi lengkap, merubah format data menjadi satu format yang sama agar mudah dianalisis, menghapus data yang tidak diperlukan, melakukan grouping data, dan sebagainya. Jadi, untuk teman-teman yang ingin menjadi praktisi data, pelajari dengan sungguh-sungguh dan pahami proses wrangling dengan Python. Tepat banget gasih, bahasnya tentang wrangling python juga hari ini

Beda Data, Beda Penanganannya

Kalian pastinya tahu dong, beda tipe data beda juga cara penanganannya. Betul apa betuull. Hal ini juga menekankan pada pentingnya seorang praktisi data untuk bisa mempelajari data wrangling ini.

Ketika akan melakukan analisis terhadap suatu set data, data yang dikumpulkan dari berbagai sumber yang saling berkaitan perlu diproses terlebih dahulu. Dalam wrangling dengan Python, penanganannya berbeda-beda sesuai dengan bentuk data yang dihadapi. Library dan fungsi yang digunakan juga harus sesuai agar tujuan untuk merubah format data menjadi lebih rapi dapat tercapai.

Misalnya data yang kita punya terdapat missing value. Ada beberapa hal yang bisa dilakukan untuk menangani missing value ini seperti menghapus data atau mengisikan nilai yang kosong. Contoh lainnya ketika suatu set data memiliki data tanggal dalam format berbeda. Maka kita perlu merubah formatnya bisa dengan fungsi to_datetime.

Masih banyak lagi fungsi atau method yang bisa digunakan untuk merubah data ke dalam format yang sama. Jadi, seringlah mengeksplorasi berbagai bentuk dan tipe data dan ditransformasi ke bentuk yang diinginkan dengan fungsi dan method yang tepat.

Perlunya Mengasah Skill Data Wrangling Bagi Praktisi Data

Ketika belajar data, kita tidak boleh cepat puas. Setiap hari data bertumbuh dengan sangat cepat serta bentuk dan tipenya yang semakin beragam. Skill yang wajib dikuasai sebagai praktisi data salah satunya adalah pemrograman. Python seringkali digunakan dalam melakukan wrangling data.

Semakin banyak data yang kita olah, secara tidak langsung hal ini melatih kemampuan kita dalam berpikir kreatif dan meningkatkan kemampuan problem solving. Karena kemampuan tersebut merupakan soft skill yang wajib dikuasai jika ingin menjadi seorang praktisi data yang handal. Teruslah berlatih agar skill di bidang data terus terasa. Mantaappp!

Setelah sudah tahu alasannya kenapa kita harus belajar data wrangling. Kita langsung beranjak ke pembahasan pokok dari project DQLAB tentang Data Wrangling Python. So, let’s check this out!

Cara Membaca Data Menggunakan Pandas

Pandas merupakan salah satu alternatif library yang sering digunakan untuk proses data wrangling. Pandas merupakan toolkit yang powerfull sebagai analisis data diawal dan pengenalan struktur dataset dalam Python. Nah, cara mengaktifkan library yang satu ini gimana caranya sih? Mudah banget guys! Kalian cukup memanggil library Pandas ini dengan melakukan import seperti dibawah ini.

import pandas

Untuk mempermudah akses dan mempersingkat penamaan biasanya import pandas menggunakan inisial seperti dibawah ini:

Import pandas as pd

Jadi dengan penggunaan import dan melakukan pemanggilan berdasarkan inisialnya, dengan mudah Python akan mengeluarkan librarynya. Salah satunya Pandas

Setelah melakukan import dan berhasil dilakukan, maka kalian sudah bisa menggunakan pandas. Untuk lebih memahami lagi apa itu pandas silahkan membaca dokumentasi dari pandas agar mudah untuk melakukan eksplorasi dengan menggunakan pandas.

Membaca file dengan menggunakan pandas

Sebagai salah satu library untuk melakukan proses awal dari analisis data, pandas juga memiliki kemampuan untuk membaca berbagai macam jenis file. Format yang bisa dibaca oleh pandas ada berbagai macam, antara lain .txt, .csv, .tsv, dan lainnya. Pandas tidak hanya bisa membaca file saja, namun juga bisa merubah data dari file menjadi bentuk dataframe yang akhirnya nanti bisa diakses, diagregasi dan diolah.

Cara yang pertama kita akan praktikkan bagaimana cara membaca file dengan menggunakan library Pandas. Pada praktik kali ini, kita akan membaca file dengan format csv. Untuk keperluan pembacaan kode, maka datasetnya sudah aku siapkan ini buat kalian semua. Kalian bisa unduh datasetnya disini. Okeyyyyy

Langsung saja, kita mulai untuk tutorialnya!

Pertama kalian ketikkan kode yang ada dibawah ini yap.

Gambar 1. Coding Pembacaan Kode Melalui Pandas

Tetapi, kalian juga bisa gunakan kode simple yang satu ini pastinya akan mempermudah pembacaan kode. Namun dengan catatan, datasetnya harus kalian download dulu. Bisa langsung kalian cek disini untuk mengambil datasetnya atau disini. Baru kalian bisa running kode dibawah ini. Jika tidak kalian download, dataset akan susah untuk terbaca dari Python maupun library Pandasnya itu sendiri. Jadinya nggak bisa keluar outputnya deh.

Gambar 2. Coding Simple Pembacaan File Lewat Pandas

Setelah sudah kalian ketikkan kode tersebut (baik di gambar 1 maupun gambar 2) maka akan muncul output seperti dibawah ini

Gambar 3. Output Pembacaan File Menggunakan Pandas

Dari output tersebut, diketahui terdapat 200 baris dan 5 kolom yang tersedia pada dataset shopping_data. Mulai dari CustomerID, Jenis Kelamin, Umur, Pendapatan pertahun dalam bentuk mata uang Dollar dan skala dari 1–100 berapa spending score yang dibelanjakan.

Membaca file dengan menggunakan head()

Kalian sadar nggak, pas running data diatas lemotnya minta ampun. Hal ini dikarenakan banyaknya data yang kita baca cukup banyak dan menyebabkan loading lama. Nah, untungnya di library pandas kita bisa membaca file dengan menggunakan perintah head().

Untuk memastikan data kita terbaca dengan baik dan bisa menampilkan data sebagian untuk ditampilkan secara benar, kita bisa memakai fungsi head(). Cara menggunakan fungsi head(), kalian cukup menuliskan kodenya berikut ini:

Gambar 4. Coding Pembacaan File Lewat Perintah Head

Setelah kalian melakukan pemanggilan dengan menggunakan perintah head(), maka akan muncul output sebagai berikut:

Gambar 5. Output Pembacaan File Menggunakan Perintah Head

Dari output ini, dapat disimpulkan bahwa memang perintah head() sangat memudahkan kalian untuk melakukan pengecekan terhadap data-data yang berbentuk format csv. Dari perintah head() ini python akan menampilkan 5 data teratas. Mulai dari customerID 1–5.

Berbeda dengan perintah read, yang menampilkan isi dataset secara keseluruhan. Perintah head berisi lima data teratas yang diibaratkan layaknya seperti kepala yang mewakili data.

Melakukan akses data kolom

Dalam suatu analisis data ada kalanya kita hanya butuh melakukan akses beberapa data saja dan tidak perlu harus menampilkan semua data. Pada pandas kita bisa melakukan akses dalam berbagai kebutuhan. Mulai dari hanya akses kolom tertentu ataupun baris tertentu. Pada sesi kali ini kita akan mencoba untuk melakukan akses beberapa kolom tertentu pada suatu dataset.

Pertama yang harus dilakukan untuk melakukan akses kolom adalah mengetahui nama-nama kolom yang ada. Coba kita akan ketikkan kode di bawah ini untuk melihat nama kolom yang ada. Cussss

Gambar 6. Akses Data Kolom pada Dataset

Dari hasil output saat kita melakukan running kode diatas, maka akan keluar nama-nama kolom sebagai berikut:

Gambar 7. Output Data Kolom pada Dataset

Note : Pada dataset ini ada 5 kolom termasuk class, dimana 4 kolom merupakan data numerik dan 1 kolom merupakan data string. NAH, karena ada 4 kolom yang masuk dalam data numerik, maka kita akan munculkan salah satu kolom yang merupakan data numerik.

Pada praktek selanjutnya kita akan mencoba mengakses data age yang merupakan data numerik. Untuk melakukannya coba tuliskan kode di bawah ini :

Gambar 8. Akses Data Kolom Age pada Dataset

Dari hasil output saat kita melakukan running kode diatas, maka akan keluar data-data dalam kolom age pada dataset yang tersedia sebagai berikut:

Gambar 9. Output Kolom Age pada Dataset

Berdasarkan hasil output diatas maka pada kolom Age berisi 200 kolom dengan data type atau tipe data yaitu integer. Tipe bilangan bulat (Integer) adalah tipe data numerik yang biasa digunakan apabila bertemu dengan bilangan bulat, seperti 1, 27, 100, dll.

Melakukan akses data melalui baris

Setelah melakukan akses data pada kolom melalui dataset yang tersedia, sekarang kita coba deh untuk melakukan akses data melalui baris.

Dengan menggunakan pandas juga bisa melakukan akses dengan menggunakan baris. Berbeda dengan akses melalui kolom, fungsi untuk menampilkan data dari suatu baris adalah fungsi .iloc[i]

dimana [i] menunjukan urutan baris yang akan ditampilkan yang dimana indexnya diawali dari 0.

Nah, sekarang kita akan melakukan akses data pada salah satu baris melalui coding berikut:

Gambar 10. Akses Data Baris pada Dataset

Note: iloc [5] menunjukkan urutan baris yang ingin ditampilkan pada dataset. Artinya kita ingin menampilkan baris kelima sehingga menggunakan perintah csv_data.iloc [5]. Selanjutnya untuk menampilkan data baris kelima sesuai perintah coding. Berikut adalah outputnya:

Gambar 11. Hasil Output Baris Kelima Pada Dataset

Berdasarkan hasil output, dapat dideskripsikan bahwa baris kelima ditunjukkan pada CustomerID nomor 6. Jenis kelaminnya adalah perempuan, berusia 22 tahun, pendapatan pertahun sebesar 17 dollar dan memiliki spending score sebesar 76. Disini tipe datanya adalah tipe data object

Menampilkan suatu data dari baris dan kolom tertentu

Tidak hanya dengan menentukan dari kolom dan baris, dengan menggunakan pandas kita juga bisa memanggil suatu data dari suatu baris dan kolom tertentu dalam satu waktu.

Mari kita perhatikan melalui cuplikan coding dibawah ini:

Gambar 12. Coding Tampilan Data dari Baris dan Kolom

Note: disini kita akan menampilkan suatu data yaitu pada kolom Age dengan indeks data dimulai dari data nomor 1. Disini iloc [1] artinya adalah yang ingin kita tampilkan datanya mulai dari angka 1 sesuai dengan urutannya. Misalnya kalau iloc [1] berarti mulai dari customer ID 1–5.

Kenapa kok cuma 5?

Mari kita jawab langsung melalui output berikut ini:

Gambar 13. Hasil Output Tampilan Data Kolom dan Baris

Oke, kenapa cuma 5 data aja. Masih ingat dengan konsep fungsi head() kan? Disini kita memancing Python untuk menampilkan 5 data teratas saja menggunakan formula head(). Terus ada permintaan juga, munculkan data dimulai dari baris kesatu. Makanya kita menggunakan fungsi iloc[1].

Seandainya diganti gimana? Bisa donggggggg… NEXT!

Menampilkan data dalam range tertentu

Tadi kan pada bingung, kok cuma 5 data aja. Kalau kita mau akses datanya lagi dengan data range tertentu bisa ga? Bisalaaahhh.

Misalnya gimana jika kita ingin menampilkan data dari baris tertentu. Contoh dimulai dari baris ke 5 sampai ke 20 dari suatu dataset? Untuk mengantisipasi hal tersebut, pandas juga bisa menampilkan data dalam range tertentu, baik range untuk baris saja, kolom saja, dan range untuk baris dan kolom.

Nih aku kasih tau ya caranya…

Kalian cukup ketikkan aja kodenya dibawah

Gambar 14. Menampilkan Akses Data pada Range Tertentu

Note: Khusus untuk part ini, kita akan coba tampilkan data untuk range dari data kelima hingga kurang dari 10 saja. Berikut adalah outputnya:

Gambar 15. Hasil Output Akses Data dari Data 5–10

Nah kalau dijadikan dalam satu baris apakah bisa? Jawabannya bisa banget!

Menampilkan suatu range data tertentu pada suatu baris saja.

Cobalah ketikan kode di bawah ini :

Gambar 16. Akses Data dalam Satu Baris

Perbedaan antara gambar 14 dengan gambar 16 adalah jika di gambar 14 kita ingin menampilkan data pada kolom age saja. Dengan rentang antara data kelima hingga data kurang dari sepuluh. Sedangkan pada gambar ke 16 semua data tapi khusus pada data kelima hingga data kurang dari sepuluh. Begituu guysss, semoga paham ye kaliann

Berikut adalah output hasilnya:

Gambar 17. Hasil Output dalam Satu Baris

Berdasarkan hasil output di gambar 15 dapat diketahui dari data yang berhasil ditampilkan adalah data keseluruhan dari semua yang ada pada dataset.

Menampilkan informasi statistik dengan Numpy

Mengetahui informasi statistik pada suatu data sangat penting. Mulai dari distribusi data, nilai max atau min, hingga standar deviasi dari suatu dataset. Jika datanya berjumlah dibawah 10 mungkin masih dikerjakan secara manual.

Namun, bayangkan jika datanya sudah mencapai ratusan bahkan ribuan. Tidak mungkin pastinya untuk dilakukan secara manual. Maka dari itu pentingnya fungsi describe() pada pandas. Fungsi describe() ini memungkinkan untuk mengetahui informasi statistik dari suatu dataset secara cepat

Untuk menggunakan fungsi ini kalian cukup ketikkan sepotong koding berikut

Gambar 18. Deskripsi data dari Pandas

Note: Disini mengapa menggunakan include: all karena untuk menampilkan data secara keseluruhan berdasarkan statistik deskriptif. Berikut adalah outputnya:

Gambar 19. Hasil Analisis Statistik Deskriptif Dataset
Gambar 19a. Hasil Analisis Statistik Deskriptif Dataset Lanjutan

Note: Dari Hasil output diatas dapat disimpulkan bahwa kita juga bisa menampilkan output statistik deskriptif dari numpy. Mulai dari count (jumlah), mean(rata-rata), standar deviasi, nilai minimal, nilai maksimal dan rentang nilai dari 25 persen, 50 persen hingga 75 persen.

Ada yang muncul nilainya ada yang tidak. Tapi kalian ngerasain gak sih kalau ada yang berbeda. YAP, NaN. Apa itu NaN?

NaN adalah singkatan dari Not a Number (bukan angka).

Banyak nilai NaN yang tampil. Hal itu karena pada dataset ada format data string yang akhirnya memunculkan format NaN.

Untuk meminimalisir hal tersebut dan memfilter hanya data numerical saja, digunakan exclude=[‘O’], dimana fungsi itu akan mengabaikan data yang non-numerical untuk diproses. Kalian bisa ketikkan coding berikut

Gambar 20. Minimalisasi Exclude Non-Numerical

Setelah kalian ketikkan kode berikut, maka akan muncul output tersebut:

Gambar 21. Hasil Exclude Non-Numerical

Kalian bisa lihat sendiri yaa, ada yang berbeda dari gambar 21 dengan gambar 19 dan 19a. Dari sinilah, Python berusaha mengeluarkan data-data yang non-numerical. Karena Numpy akan dengan mudah untuk dikenali analisisnya kalau datanya itu adalah data numerik. So, dari hasil exclude akhirnya tersisa nilai-nilai numerik atau angka-angka saja.

Data Missing Hingga Normalisasi Data

Pada chapter ini, kita akan fokus pada cara menangani data yang missing dan melakukan normalisasi pada data. Kita mulai dari handling missing value yak

Handling Missing Value

Pada suatu dataset, ada kalanya data yang kita akan kita kelola tidak lengkap. Hal ini tentunya akan menyulitkan atau membuat hasil analisa tidak akurat. Penanggulangan akan data yang hilang ini biasa disebut Handling Missing Value.

Penanganan dari nilai yang kosong ini banyak caranya. Sebagai seorang data science yang berhubungan dengan data yang real, solusi pertama yang benar-benar kita anjurkan untuk kasus seperti ini adalah melakukan trace alias penelusuran kembali ke sumber data atau memeriksa ulang record.

Terutama jika data itu berasal dari human record. Sangat disarankan untuk menelusuri kembali agar tidak terjadi kesalahan ketika sudah mencapai titik analisis. Selain solusi untuk melakukan penelusuran kembali ke sumberdata, pada ilmu data science juga ada beberapa metode yang bisa dijadikan solusi untuk menangani kasus ini.

Melakukan pengecekan untuk nilai NULL yang ada

Dengan menggunakan fungsi pandas, kita tidak perlu melihat satu persatu baris data untuk mengetahui apakah ada nilai kosong atau NULL/NAN pada suatu dataset. Bayangkan jika kita memilki 1000 baris data. Apakah kita harus melihat semua baris data tersebut? Tentu saja tidak. Pasti kalian capek dan kelelahan dong mantengin satu persatu data-datanya. Matanya dah pegel ituuuuu

Maka dari itu di pandas disediakan fungsi untuk mengecek apakah ada data yang kosong. Caranya dengan menggunakan fungsi isnull()

Kalian bisa ketikkan sepotong kode berikut:

Gambar 22. Pengecekan Nilai NULL

Setelah kalian melakukan running pada kode diatas maka akan muncul hasil seperti ini

Gambar 23. Hasil Pengecekan

Ternyata dari hasil pengecekan muncul nilai FALSE. Apa indikasinya? Artinya data yang digunakan sebelumnya merupakan data yang lengkap, maka dari itu output yang dihasilkan False. Berarti dataset yang sebelumnya terhindar dari missing value dan tidak ada NULL sama sekali.

Terus kita harus ngapain? Berarti kita perlu mengganti datasetnya teman-teman. Untuk dataset yang digunakan buat cek-cek apakah ada missing value atau tidak, kalian bisa unduh atau download datasetnya disini ya!

Kalian perlu cek dan download datasetnya terlebih dahulu baru nanti bisa terbaca.

Setelah kalian download datasetnya, kalian bisa lakukan pengecekan dengan menggunakan kode dibawah ini:

Gambar 24. Pengecekan Nilai NULL dengan Dataset Baru

Setelah kalian melakukan running pada kode diatas maka akan muncul hasil seperti ini

Gambar 25. Hasil Pengecekan Nilai NULL dengan Dataset Baru

Ternyata hasilnya TRUE. Berarti positif terindikasi adanya missing value pada dataset. Maka perlu dilakukan solusi dengan menggunakan handling missing value pada dataset berikut!

Solusi Mengatasi Missing Value

Sebelum mengenal lebih banyak mengenai Solusi yang biasa ada pada kasus-kasus data science. Untuk mempermudah pemahaman berikut disajikan skema yang biasanya sering dalam pengelolaan data.

Gambar 26. Handling Missing Value. Source: DQLAB

Dalam diagram diatas, perlu diketahui bahwa kasus kehilangan data bisa diatasi dengan berbagai cara. Bahkan, melakukan penghapusan data juga merupakan solusi yang bisa menjadi pilihan apabila jika dirasa mengisi nilai kosong akan memberikan pengaruh yang kurang bagus terhadap analisa, atau apabila pertimbangan data yang dihapus atau data yang hilang sedikit dan tidak memberikan terlalu banyak sumbangsih untuk analisa yang akan dilakukan.

Penghapusan data bisa langsung pada baris data tersebut atau langsung satu kolom data. Pada solusi kedua yaitu menggunakan imputation (pengisian data yang kosong) bisa tergantung dari permasalahannya. Khusus untuk masalah yang berhubungan forecasting atau peramalan tergantung dari data yang ada (lebih lengkap bisa dilihat pada gambar).

Khusus untuk general problem tergantung jenis datanya. Jika yang hilang data kategorikal atau bersifat string bisa menggunakna relasi antar kolom dengan Logistic Regression, jika numerical bisa menggunakan statistik sederhana dan linear regression. Pada sesi kali ini kita akan mencoba menangani data hilang dengan statistik sederhana, Mean dan Median.

Mengisi dengan Mean

Salah satu metode yang bisa dikatakan sebagai solusi yang umum pada kasus general data science adalah mengisi data kosong dengan menggunakan mean dari masing-masing kolom.

Pertama kita harus menentukan mean dari masing-masing kolom. Pada pandas terdapat fungsi mean() untuk menentukan nilai mean dari masing-masing kolom. Mean sendiri digunakan untuk data yang memiliki sedikit sifat outlier/noisy/anomali dalam sebaran datanya maupun isinya.

Untuk lebih jelasnya, mari kita langsung aja untuk menangani missing value dengan menggunakan kode berikut:

Gambar 27. Penanganan Missing Value dengan Mean

Selanjutnya, ketika kita ingin melakukan penanganan missing value dengan menggunakan Mean. Nantinya akan menghasilkan output berikut.

Gambar 28. Hasil Mean

Fungsi mean sendiri berfungsi untuk menampilkan nilai mean (rata-rata) dari setiap kolom. Nilai inilah nanti yang akan mengisi nilai kosong dari dataset yang mengalami kasus missing value. Untuk mengisi nilai yang kosong menggunakan fungsi fillna(), coba ketikkan kode di bawah ini :

Gambar 29. Fungsi Fillna() dalam Handling Missing Value pada Mean

Maka setelah melakukan running pada kode tersebut, akan menghasilkan output sebagai berikut:

Gambar 30. Output Handling Missing Value
Gambar 30a. Output Handling Missing Value

Dari hasil output diatas, Python menemukan adanya NaN pada data sebelum diproses menggunakan handling missing values (simak pada gambar 30). Disana fungsi dari baris atas untuk menunjukkan data mean 10 data teratas adalah untuk melakukan pengecekan. Hasilnya sungguh mengejutkan. Beberapa data ditemukan NaN. Sehingga perlu ditangani dengan proses handling missing value karena dataset masih terdapat nilai yang kosong.

Dengan menggunakan fungsi Fillna() maka proses handling missing value sudah dinyatakan berhasil. Siap untuk melakukan pelaporan data karena semua data terisi dengan angka

Mengisi dengan Median

Berbeda dengan mean pada sesi sebelumnya, median digunakan untuk data-data yang memiliki sifat outlier yang kuat. Kenapa median dipilih? Median merupakan nilai tengah yang artinya bukan hasil dari perhitungan yang melibatkan data outlier.

Pada beberapa kasus, data outlier dianggap mengganggu dan sering dianggap noisy karena bisa mempengaruhi distribusi kelas dan mengganggu analisa pada klasterisasi (clustering).

Untuk lebih jelasnya, mari kita langsung aja untuk menangani missing value dengan menggunakan kode berikut:

Gambar 31. Mengisi dengan Median

Maka setelah melakukan running pada kode tersebut, akan menghasilkan output sebagai berikut:

Gambar 32. Hasil Output Median

Sama dengan halnya sesi sebelumnya dengan menggunakan mean(), gunakan kode di bawah ini untuk mengisi nilai yang kosong menggunakan fungsi fillna() :

Gambar 33. Fungsi Fillna() dalam Handling Missing Value pada Median

Maka setelah melakukan running pada kode tersebut, akan menghasilkan output sebagai berikut:

Gambar 34. Output Handling Missing Value
Gambar 34a. Output Handling Missing Value

Dari hasil output diatas, Python menemukan adanya NaN pada data sebelum diproses menggunakan handling missing values (simak pada gambar 34). Disana fungsi dari baris atas untuk menunjukkan data median 10 data teratas adalah untuk melakukan pengecekan.

Hasilnya sungguh mengejutkan. Beberapa data ditemukan NaN. Sehingga perlu ditangani dengan proses handling missing value karena dataset masih terdapat nilai yang kosong.

Dengan menggunakan fungsi Fillna() maka proses handling missing value sudah dinyatakan berhasil. Siap untuk melakukan pelaporan data karena semua data terisi dengan angka

Normalisasi Data

Terkadang pada beberapa kasus, 1 kolom dengan kolom yang lain memiliki skala yang berbeda. Seperti cuplikan gambar di bawah ini :

Gambar 35. Ilustrasi Data. Source: DQLAB

Antara Usia dan Masa Kerja masih memiliki range yang sama dalam skala puluhan. Namun, jika kolom Usia dan Masa Kerja dibandingkan dengan Gaji memiliki range nilai yang berbeda, dimana Usia dan Masa Kerja memiliki range puluhan dan Gaji mempunyai range nilai jutaan.

Memang terlihat sederhana, namun hal ini bisa menjadi masalah besar dalam contoh kasus klasterisasi atau klasifikasi. Masuk pada kasus K-means yang sudah pernah dibahas sebelumnya. K-means merupakan algoritma klasterisasi (clustering) yang menggunakan perhitungan jarak dalam prosesnya. Sekarang coba bayangkan :

Gambar 36. Ilustrasi Data. Source: DQLAB

Jika tidak ada normalisasi, maka jelas perhitungan kmeans diatas akan tergantung pada Gaji. Kenapa? Karena gaji berdomain jutaan dan 2 kolom lainnya hanya berdomain puluhan. Berapapun usia dan masa kerja seseorang tidak akan berpengaruh terhadap penilaian suatu perusahaan.

Perbedaan skala pada setiap kolom ini merupakan hal yang sangat wajar dan sering terjadi dan inilah pentingnya normalisasi. Normalisasi sangat penting, terutama untuk yang menggunakan perhitungan jarak dengan menggunakan metode apapun.

Praktek Normalisasi menggunakan Scikit Learn pada Python

Scikit Learn merupakan library pada python yang digunakan untuk machine learning dan data science. Salah satu library yang selalu menjadi favorit dan komunitasnya sangat kuat.

Scikit-learn sendiri tidak hanya untuk analytics saja, namun juga untuk pre-processing, feature selection, dan proses analysis lainnya. Melanjutkan dari sesi normalisasi data, mari kita praktekan kode di bawah ini :

Gambar 37. Normalisasi Data dengan Scikit-Learn

Setelah melakukan running pada kode tersebut, akan menghasilkan output sebelum dan sesudah dilakukan normalisasi data sebagai berikut:

Gambar 38. Sebelum Dilakukan Normalisasi
Gambar 39. Setelah Dilakukan Normalisasi

Post a Comment

0 Comments