MODUL DATA PREPARATION WITH PYTHON

        Sebelum Anda melakukan analisa lebih jauh terhadap data Anda, terdapat beberapa step yang harus Anda perhatikan sebelum data yang Anda miliki siap untuk dianalisis. Proses ini biasa dikenal dengan sebutan Data Preparation. Faktanya, tidak semua data termuat dengan skema atau format item yang kita harapkan. Banyak sekali data, baik yang kita kumpulkan sendiri maupun kita ambil dari platform, yang memiliki miss di beberapa bagian. Tak jarang pula, kondisi ini memaksa kita untuk memutar otak bagaimana agar data tersebut siap untuk digunakan. Pada modul kali ini, kita akan belajar bagaimana cara menangani permasalahan tersebut, dimana lebih lanjutnya akan dijelaskan di bawah ini.


DATA CLEANSING

        Data cleansing adalah proses mendeteksi dan mengoreksi data yang tidak akurat atau data yang aneh dari kumpulan data, tabel, atau database. Untuk mengidentifikasi bagian data yang tidak lengkap, tidak benar, tidak akurat, atau tidak relevan, akan dilakukan proses modifikasi, penggantian data, atau penghapusan data sesuai kebutuhan. Data cleansing menjadi sebuah proses dasar yang wajib dikuasai apabila Anda terjun dalam bidang data. Pertanyaan yang kemudian muncul adalah data yang bagaimana yang dikatakan masih kotor dan perlu dilakukan data cleansing?

Terdapat berbagai macam data yang sering dijumpai, ada data yang telah bersih dan siap untuk diolah, namun ada pula data yang kotor dengan indikasi terdapat data yang hilang, value data yang tidak sesuai dengan tipe data, maupun data yang ganda atau duplikasi. Keberadaan data yang masih kotor akan membawa pengaruh yang besar untuk hasil analisis Anda, hingga tidak jarang akan menyebabkan kesalahan interpretasi hasil ketika melakukan agregasi.

    Dalam ilmu data, terdapat istilah “Garbage In, Garbage Out”, yang diartikan apabila Anda melakukan analisa pada suatu data dengan kondisi data tersebut masih dalam keadaan kotor, maka hasil yang akan Anda dapatkan adalah hasil yang tidak merepresentasikan informasi yang Anda butuhkan, atau dengan kata lain hasil tersebut salah dan tidak valid. Misalnya, Anda ingin mengetahui hasil penjualan setiap produk. Pada data Anda terdapat record untuk transaksi yang sebenarnya sama, namun tertulis lebih dari 1 kali yang mana menyebabkan jumlah transaksi untuk produk tersebut lebih banyak dibandingkan dengan produk lainnya. Ketika Anda menarik kesimpulan dengan hasil seperti di atas, maka akan terjadi kesalahan analisa, dimana kesimpulan yang tidak valid itu bisa jadi menyebabkan kerugian di kemudian hari. Ilustrasi tersebut menjelaskan mengapa proses data cleansing sangat diperlukan.   

    Data cleansing akan mempengaruhi serangkaian proses dari analisis data. Beberapa faktor yang menjadi pemicu suatu data dikatakan kotor adalah adanya kesalahan manusia maupun kesalahan cara pengumpulan suatu data. Kesalahan- kesalahan ini meliputi kesalahan input data seperti adanya missing data, data yang terduplikasi dimana termuat informasi yang sama lebih dari satu kali, pattern yang tidak sama dalam satu data, atau adanya kesalahan ejaan dalam data.

    Data cleansing adalah step yang paling banyak menyita waktu seseorang dalam mengolah suatu data. Proses ini menghabiskan waktu 80% dari keseluruhan rangkaian pengerjaan proyek data. Oleh karena itu, apabila data cleaning tidak dilakukan dengan baik, maka dapat terjadi kesalahpahaman (misunderstanding) dalam menginterpretasikan suatu data. Ketika data yang masuk dan kita olah buruk atau tidak sesuai, maka hasil yang diberikan akan buruk pula serta memberikan keputusan yang bias.


Permasalahan Umum Dalam Data Cleansing

    Pada modul kali ini, kita akan membahas 4 permasalahan yang umum terjadi dan diperlukan proses pembersihan data sebelum dilakukan pengolahan lebih lanjut. Proses tersebut dapat Anda jalankan dengan menggunakan Pandas DataFrame pada Python.


1. MISSING VALUES

    Missing value merupakan kejadian yang umum terjadi ketika mengolah data, dimana missing value terjadi dikarenakan data yang tidak tersedia sehingga terdapat beberapa data yang hilang. Missing value dapat dideteksi dengan munculnya nilai NaN (Not Available) atau blank space pada suatu tabel. Contohnya dapat dilihat pada dataset titanic berikut ini:



Dataset di atas hanya menampilkan 5 data teratas, dan dapat dilihat bahwa pada kolom Cabin terdapat NaN value, sehingga kita perlu mengetahui seberapa besar nilai yang hilang tersebut.

Untuk melihat missing value pada keseluruhan data, Anda dapat menggunakan code di bawah ini :


    Ketika kita selidiki, ternyata terdapat dua kolom dengan missing value, yaitu kolom Age dan Cabin. Perlakuan kedua kolom tersebut tidaklah sama, tergantung dengan permasalahan dan kondisi yang terjadi pada kedua kolom tersebut. Terkadang data yang hilang dianalisa terpisah untuk mengidentifikasi permasalahan kenapa data tersebut hilang, sehingga dapat diperbaiki dalam segi operasional agar tidak terdapat data yang hilang lagi. Tetapi, apabila data yang hilang tersebut sangat dibutuhkan, kita dapat melakukan inputting value dengan mengisi data yang hilang dengan data yang menyerupai, seperti mean, modus, dan lain-lain.

    Akan tetapi, sebelum itu Anda harus memahami kondisi data yang Anda miliki terlebih dahulu, apakah adanya null value disebabkan kesalahan input atau memang sengaja dikosongkan akibat dari kondisi yang tidak terpenuhi. Handling missing value merupakan step yang penting, terutama jika Anda memiliki data yang terbatas.

Berikut ini merupakan beberapa cara yang dapat dilakukan dalam mengatasi missing value, di antaranya :

a. Menghilangkan atau menghapus data yang hilang. Solusi ini digunakan jika memang data yang hilang tidak memungkinkan untuk diisi dengan value lain, atau terlalu banyak data kosong di dalamnya. Perlu terlebih dahulu mengetahui persentase dari data missing tersebut, karena jika terlalu banyak mengganti data yang kosong dengan value lain akan menyebabkan analisis yang misleading.

b. Melakukan inputting value dengan data yang menyerupai, seperti minimum value, maximum value, mean, atau modus. Ada syarat- syarat tertentu ketika Anda menangani missing value dengan nilai- nilai ini. Pertama, pahami dulu kondisi data Anda, apakah data tersebut merupakan data kategori atau bukan. Jika data tersebut adalah data kategori, Anda dapat menggunakan modus untuk mengisi bagian yang miss. Namun, jika data tersebut data kontinu, Anda bisa menggunakan minimum value, maximum value, mean, atau median.

c. Melakukan manual inputting value dengan data yang sebenarnya (cara ini membutuhkan high effort untuk mencari data yang hilang tersebut).

d. Menentukan custom value berdasarkan asumsi bisnis yang terjadi.


Terdapat dua penyelesaian missing value yang berbeda pada dataset titanic.

1. Kolom Age memiliki kondisi sebagai berikut :

• Memiliki tipe data numerical (integer)

• Terdapat 177/892 data yang hilang

• Memiliki nilai mean dan modus yang tidak terlalu jauh




Dengan beberapa kondisi di atas, kita dapat melakukan inputting data dengan nilai mean Age.



2. Kolom Cabin memiliki kondisi sebagai berikut:

• Memiliki tipe data categorical

• Terdapat missing value 77% (867/892) dari jumlah data

Dengan dua kondisi tersebut, kita dapat menghilangkan (drop) kolom dari tabel.




2. DUPLICATE DATA

    Duplikasi data (duplicates) terjadi ketika terdapat nilai atau ID yang berulang pada suatu data. Selain itu, suatu data dikatakan duplicate apabila terdapat informasi yang sama dalam setiap kolom pada data tersebut. Permasalahan duplikasi ini perlu dilakukan data cleaning karena akan menyebabkan dobel perhitungan ketika dilakukan suatu analisis yang lebih mendalam.

    Langkah pertama yang dilakukan adalah mengecek apakah terdapat duplikasi pada data, dimana biasanya dapat diindikasikan dengan munculnya value yang sama pada semua kolom. Jika dalam data Anda terdapat kolom dengan informasi yang unique (tidak boleh dobel) seperti passenger id, Anda dapat melakukan pengecekan duplikasi pada kolom tersebut.




    Terlihat dari output di atas bahwa terdapat duplicate data pada passenger id 888. Passenger id seharusnya adalah suatu kode unique, dikarenakan tidak mungkin dalam 1 jadwal pemberangkatan kendaraan terdapat 2 orang yang memiliki informasi yang sama. Oleh karena itu, adanya dobel id menunjukkan data terduplikasi.

Permasalahan duplikasi dapat diselesaikan dengan menghapus row yang sama, sehingga hanya tersisa unique value yang akan dianalisa. Anda dapat menggunakan code di bawah ini untuk menghilangkan data yang terduplikasi.





3. STANDARDIZE AND NORMALIZE DATA

    Standardisasi merupakan suatu proses mengubah skala data menjadi bentuk standar yang memiliki μ = 0 dan 𝛔 = 1, sehingga kita dapat membandingkan beberapa features yang memiliki skala dan unit berbeda. Ada kalanya dalam data yang kita miliki, satu kolom dengan kolom lainnya memiliki skala nilai yang jauh berbeda. Perbedaan ini bisa jadi menggiring opini bahwa salah satu kolom lebih superior daripada kolom lainnya karena memiliki nilai yang besar. Oleh karena itu, pengaturan skala akan sangat membantu dalam perbandingan antar kolom. Formula standardisasi adalah sebagai berikut ini: 






Berbeda dengan standardisasi, normalisasi merupakan suatu proses mengubah skala nilai menjadi berdistribusi normal (Z: 0 ≤ z ≤ 1), dimana dapat dilakukan menggunakan formulasi berikut ini : 







DATA MANIPULATION

    Data manipulation adalah suatu proses memanipulasi atau mengubah data agar mudah diorganisasi dan mudah untuk dibaca/dipahami. Data manipulation akan sangat membantu Anda dalam proses analisis data. Ada beberapa contoh penerapan data manipulation, dan berikut ini penjelasan detailnya!


Checking and Changing Data Type

    Function dtypes dan astype() pada pandas dapat digunakan untuk mengecek dan mengubah tipe data. Hal ini dapat memudahkan dalam menganalisa suatu data. Banyak sekali permasalahan analisis yang terhalang karena tipe data yang berbeda. Contohnya, ketika terdapat data ranking yang biasanya dalam bentuk angka atau alfabet, dan harus diganti ke dalam bentuk numerikal ketika dianalisa dengan data yang lain.

Contoh lainnya, bisa juga terdapat data numerik yang sebenarnya adalah data yang menunjukkan ID seseorang. Apabila dilakukan pengecekan, terkadang dijumpai kondisi dimana data ID ini bertipe data integer, akan tetapi berdasarkan definisi, seharusnya tipe data ini adalah string dimana tidak bisa dilakukan analisa statistik walaupun bentuknya numerik.

Berikut ini merupakan contoh cara mengubah tipe data dalam Python :




Renaming Columns

    Renaming digunakan untuk mengubah nama kolom seperti pada contoh di bawah ini. Kondisi ini akan Anda butuhkan, apabila dari data Anda ternyata nama-nama kolom sulit dipahami konteksnya atau terlalu panjang/pendek.

Di bawah ini merupakan code untuk mengubah nama kolom dalam DataFrame :




Removing Data

    Tidak semua data digunakan dalam analisa. Semakin banyak data yang digunakan, akan semakin mempersulit kita dalam menganalisa, sehingga kita perlu untuk menghapus beberapa data yang tidak kita gunakan.

Untuk mereduksi data Anda, dapat digunakan perintah drop seperti berikut ini: 



Filtering Data

    Sama halnya dengan removing data, filtering data juga dilakukan agar hasil analisa kita dapat mengerucut ke objektif atau tujuan analisis tersebut. Kita dapat memanfaatkan fungsi DataFrame pada pandas untuk memfilter data apa yang ingin diambil.

    Pada contoh di bawah ini, akan ditunjukkan cara memfilter data male-only dan balita menjadi suatu DataFrame baru, tetapi kita juga dapat memanfaatkan .iloc[] untuk mengambil baris berdasarkan index yang telah disetting.





DATA WRANGLING


Merging

    Merging merupakan proses penggabungan dua atau lebih tabel menjadi satu tabel agar memudahkan dalam mengolah suatu data. Di materi sebelumnya, Anda telah belajar joining table pada SQL, dan konsep dari merging ini sama dengan sebelumnya. Penggabungan dua data dilakukan dengan mencari kata kunci yang sama dari kedua data tersebut.




Grouping

    Grouping dapat digunakan untuk agregasi dan mengelompokkan data berdasarkan kolom tertentu. Grouping ini banyak digunakan dalam proses filtering data.

Berikut ini contoh dari penerapan grouping:





Transformation

    Data transformation merupakan suatu proses mengubah format, struktur, atau nilai dari suatu data. Terdapat berbagai macam data transformation, seperti: mengubah tipe data, mengubah data menjadi bentuk yang standar atau normal, dan lain sebagainya.

Contoh :





Contoh :






Data Correlation

    Data correlation digunakan untuk mengetahui seberapa besar hubungan antara dua variabel, apakah dua variabel tersebut memiliki hubungan yang saling berkaitan atau tidak. Penting untuk diketahui bahwa dalam mengolah data terdapat beberapa kondisi yang mengharuskan Anda untuk mencari keterkaitan antar setiap variabel agar hasil analisa Anda bisa lebih mendalam.

    Terdapat dua nilai dalam korelasi, yaitu nilai positif (kedua variabel memiliki pergerakan yang mirip) dan negatif (kedua variabel memiliki pergerakan yang berbeda). Perlu ditandai bahwa sebelum melakukan korelasi, sebaiknya data diubah menjadi bentuk standar agar tidak terjadi perbedaan skala.






Komentar

Postingan populer dari blog ini

HOW TO HANDLING OUTLIER