Module 2 - Data Preprocessing
Module 2 - Data Preprocessing
DAFTAR ISI............................................................................................................................... 1
Tujuan & Deskripsi Pembelajaran.........................................................................................2
Data Preparation.................................................................................................................... 3
A. Mengekstrak dan Membaca Data menggunakan Library Pandas.......................3
B. Data Cleaning.................................................................................................................... 3
C. Data Transformation....................................................................................................... 4
1. Validasi Data dan Verifikasi............................................................................................ 5
2. Data Formatting................................................................................................................5
D. Data Merging.....................................................................................................................6
Exploratory Data Analysis.....................................................................................................8
A. Exploratory Data Analysis (EDA)..................................................................................8
Tahapan EDA.......................................................................................................................... 9
Categorical and Numerical Analysis............................................................................. 15
B. Automated EDA.............................................................................................................. 25
C. Reproducible Scientific Analysis..............................................................................26
Feature Engineering............................................................................................................ 31
A. Apa Itu Feature Engineering?......................................................................................31
B. Proses Feature Engineering........................................................................................ 32
C. Pentingnya Feature Engineering dalam Machine Learning............................... 33
D. Beberapa Tools Feature Engineering Terbaik........................................................ 34
EXERCISE............................................................................................................................... 37
1
Tujuan & Deskripsi Pembelajaran
Deskripsi:
2
1.1 Data Preparation
Gunakan read_csv() untuk file berjenis csv untuk memanggil data. Cara
pemanggilan data ada pada Module 1 - Foundation for Data Science.
Contoh:
● Misalkan nama file yang dipanggil adalah “data” lalu akan dibuat data
frame dengan nama health_data.
B. Data Cleaning
Biasanya data yang baru saja diimpor cenderung “kotor”, mulai dari banyak
nilai kosong, tipe data yang salah, dan lain sebagainya. Oleh karena itu, sebagai
Data Scientist data harus dibersihkan terlebih dahulu sebelum dianalisis.
3
Terlihat bahwa terdapat nilai non-numerik (9 000 dan AF) dengan posisi
yang sama dengan missing value.
Solusinya, kita dapat menghapus baris dengan nilai yang hilang untuk
menyelesaikan masalah ini.
Catatan: axis=0 artinya kita akan menghapus seluruh nilai baris dengan
nilai NaN. Penanganan missing value akan dijelaskan pada penjelasan berikutnya.
C. Data Transformation
4
1. Validasi Data dan Verifikasi
Load dataset
Dari dataset tersebut, akan diperhatikan variabel ‘Sex’, ‘Age’, ‘SibSp’, ‘Parch’,
‘Fare’, ‘Embarked’ sebagai variabel/fitur independen dan variabel ‘Survived’
sebagai variabel target karena dalam dataset titanic penumpang atau
‘PassengerId’ tidak terdapat dari survival rate.
2. Data Formatting
Scaling
a. Min-Max Scaling
5
b. Standarisasi (Z-Score Scaling)
D. Data Merging
6
left_on String List Opsional. Menentukan pada
level apa merging dilakukan
pada DataFrame di sisi kiri.
7
Contoh sederhana:
Exploratory Data Analysis (EDA) adalah sebuah proses yang digunakan oleh
seorang data scientist untuk menganalisa dan menyelidiki sebuah dataset untuk
melihat karakteristik utamanya. Setelah seorang data scientist memahami
dataset yang dimiliki, dia bisa menentukan cara-cara apa yang perlu dilakukan
untuk memanipulasi sumber data yang dimiliki, dan memudahkan data scientist
8
untuk menemukan pola, melihat anomali, menguji hipotesis, atau memeriksa
asumsi yang mereka miliki (IBM).
Tahapan EDA
Banyak metode dan tools yang dapat kita gunakan untuk melakukan EDA.
Namun umumnya EDA akan melihat melakukan beberapa hal, dimulai dari load
dataset, melihat attributes, univariate/bivariate/multivariate analysis, melihat
missing value, melihat outliers, sebelum akhirnya melakukan feature engineering
dan melihat insights yang ada dari data tersebut.
9
1. Loading Dataset
Pertama-tama, kita harus load dataset yang dimiliki dan juga import
package Python yang akan digunakan:
2. Distinguish Attributes
● .head() untuk melihat gambaran awal data yang dimiliki, kolom apa saja
yang ada, dan bagaimana nilai dari kolom-kolom tersebut
● .info() untuk melihat informasi dasar seperti jumlah kolom, nama kolom,
jumlah baris, null data, dan juga data type dengan menggunakan df.info().
Dari data set titanic contohnya kita bisa melihat bahwa dataset tersebut
memiliki 12 kolom dan 891 baris. Menariknya, kita sudah bisa melihat bahwa
ada kolom yang memiliki missing values dan juga melihat kesesuaian
antara Dtype dengan kolom itu sendiri. Kita sudah bisa mulai processing
apa yang mungkin harus kita lakukan sebelum memasuki tahapan
modeling nantinya.
10
● .describe() untuk memeriksa statistik deskriptif dari kolom numerik yang
ada. Kita bisa mulai melihat pola yang ada dalam data tersebut dan juga
bisa melihat skewness yang ada.
● value count untuk melihat persebaran data kategorik lebih lanjut, bisa
menggunakan df[nama_kolom].value_counts() atau langsung membuat
grafik.
11
3. Univariate Analysis
● Histogram
● Boxplot
● Distplot
● Violin plot
● Individual countplot
● dst.
Univariate artinya satu. Jadi di tahap ini kita hanya melihat variabel satu
persatu tanpa menghubungkan dengan variabel lainnya.
12
4. Bi-/Multivariate Analysis
● correlation plot
● Boxplot
● Scatterplot
● pairplot
● etc
Di tahap ini, kita mencoba melihat hubungan hubungan yang ada antara
dua atau lebih variabel, dan bagaimana sebuah variabel dapat mempengaruhi
variabel lainnya.
13
5. Detect and Handle Missing Value
Kita bisa melihat missing value yang ada dari tahapan statistik deskriptif,
dan juga bisa melihat langsung menggunakan .isnull()
Ada dua cara utama yang kita bisa lakukan setelah mengetahui data mana
yang kehilangan nilainya:
14
Perlakuan yang diambil ditentukan dari berbagai hal. Mulai dari jumlah data
yang hilang, tipe data yang hilang, dan nilai dari kolom tersebut. Misalnya null
value yang hilang hanya merupakan sebagian kecil dari data, sehingga dengan
menghapus baris tersebut tidak akan memberikan pengaruh besar.
Namun, menghapus data adalah hal yang tidak dianjurkan apabila dengan
menghapus data, kita malah menghilangkan kegunaan atau insight yang bisa
diambil dari dataset. Sehingga, cara alternatif yang dapat ditempuh adalah
mengisi data tersebut dengan rata-rata, modus, median, atau yang lain, sesuai
dengan persebaran dan tipe data.
Di proses ini, kita akan melihat deviasi yang ada dari persebaran data yang
dapat disebabkan oleh error. Kita perlu memproses outlier. Outlier sendiri bisa
dilihat menggunakan boxplot.
Kita juga bisa mendeteksi outlier melalui Interquartile Range (IQR) dan
kemudian menghapus data outlier tersebut agar model yang kita hasilkan bisa
memiliki akurasi yang lebih tinggi.
Tipe data kategori ini tidak memiliki nilai numerik dan sifatnya lebih
kepada kualitatif daripada kuantitatif. Dalam istilah statistik ia juga sering disebut
sebagai data nominal. Sesuai namanya, data tipe kategori merupakan bagian dari
beberapa kelompok. Misal, jika ada besar maka ada kecil, jika ada laki-laki maka
ada perempuan, jika ada benar maka ada salah, jika ada ringan maka ada sedang
kemudian berat.
15
2. Data Numerical (Kuantitatif)
Data numerik adalah tipe data yang hanya dinyatakan dalam bentuk
numerik dan tidak dinyatakan dengan penggunaan nama lain pada data. Variabel
kuantitatif datang dalam dua bentuk :
● Variabel Kontinu, dapat mengambil semua nilai apapun (dalam
tingkatan apapun) dalam rentang waktu tertentu. (misal nilai apapun
antara 3 dan 4).
● Variabel Diskrit, merupakan variabel yang tidak kontinu pada
rentang apapun dan hanya bisa merepresentasikan data dalam
bentuk bilangan bulat. (misalnya variabel yang mengambil nilai
integer antara 0 dan 100).
3. Statistika Deskriptif
16
4. Statistik Inferensial
17
Uji rata-rata (mean) satu populasi digunakan untuk mengetahui bahwa
mean dari populasi tersebut sama dengan harga tertentu µ0. Dalam kehidupan
nyata tidak dimungkinkan untuk mengukur rata-rata (mean) dari seluruh
populasi, untuk itu diambil sampel dari populasi tersebut yang kemudian
dilakukan inferensi atau pengujian apakah nilai rata-rata yang dicurigai tersebut
dapat diterima atau tidak berdasarkan informasi dari sampel yang telah diambil.
18
Berikut macam-macam hipotesis:
𝐻0: µ1 = µ1
𝐻1: µ1 ≠ µ1
𝐻0: ρ = 0
𝐻1: ρ ≠ 0
𝐻0: 𝑃 = 0, 3
𝐻1: 𝑃 ≠ 0, 3
Dalam uji hipotesis ada yang namanya uji satu sisi dan uji dua sisi. Uji satu
sisi (one tail) digunakan jika parameter populasi dalam hipotesis dinyatakan lebih
besar (>) atau lebih kecil (<). Sedangkan uji dua sisi (two tail) digunakan jika
parameter populasi dalam hipotesis dinyatakan sama dengan (=).
19
b. 𝐻1: hipotesis alternatif
𝐻0: = ≤ ≥
Biasanya bernilai 1%, 5%, dan 10%. Untuk uji dua sisi digunakan α/2
dan untuk uji satu sisi digunakan α.
5. Populasi
6. Sampel
20
Dalam sampel, kita tidak memiliki parameter, tetapi kita memiliki memiliki
statistik. Contoh dari sampel adalah beberapa orang yang terpilih pada
masing-masing provinsi.
Mean
𝑥1+𝑥2+...+𝑥𝑛 ∑𝑥𝑖
𝑖
𝑀𝑒𝑎𝑛 = µ = 𝑛
= 𝑛
Menggunakan python:
Median
21
Median merupakan ukuran central tendency yang sering digunakan.
Median adalah titik tengah distribusi dimana jumlah nilai yang berada di atas
median sama seperti di bawahnya. Titik tengah adalah nilai tengah yang diukur
dari nilai terendah hingga nilai tertinggi. Median juga dapat dianggap sebagai
persentil ke-50.
Jika nilai sampel yang ganjil (n=2,4,6, …, 2n), maka setelah data
diurutkan:
𝑛
● Cari nilai pada posisi ( )
2
𝑛+1
● Cari nilai pada posisi ( )
2
Modus
22
Modus adalah nilai yang paling sering muncul di dataset. Jika terdapat
beberapa nilai dengan frekuensi paling sering muncul sama, maka dataset bisa
mempunyai lebih dari 1 modus. Kemudian, jika frekuensi kemunculan semua nilai
pada dataset sama maka tidak ada modus.
Variasi
𝑁
2
∑ (𝑥𝑖−µ)
2 𝑖=1
𝐹𝑜𝑟𝑚𝑢𝑙𝑎 : σ = 𝑁
Dengan:
µ : rata-rata populasi
Menggunakan python:
Standar Deviasi
Adalah akar kuadrat dari variasi. Ini merupakan statistik yang berguna dan
23
dapat diinterpretasikan karena mengambil akar kuadrat dari variasi (mengingat
bahwa variasi adalah perbedaan kuadrat rata-rata) menempatkan deviasi standar
kembali ke unit asli dari ukuran yang kita gunakan.
Menggunakan python:
9. Distribusi Data
Distribusi Normal
Distribusi normal adalah distribusi yang paling penting dan paling banyak
digunakan dalam statistik. Kadang disebut sebagai “kurva lonceng” atau “kurva
Gaussian”.
Z-Scores
Skor-z adalah versi standar dari skor mentah (x) yang memberikan
informasi tentang lokasi relatif skor tersebut dalam distribusinya.
24
10. Distribusi Normal dan Standar Deviasi
Standar deviasi adalah ukuran dari variabilitas yang sangat berguna ketika
distribusi normal atau mendekati normal. Karena proporsi dari distribusi normal,
maka nilai standar deviasi dari mean dapat dihitung. Untuk distribusi normal:
● Sekitar 68% dari data berada dalam satu standar deviasi dari mean.
● Sekitar 95% dari data berada dalam dua standar deviasi dari
rata-rata.
● Lebih dari 99% data berada dalam tiga simpangan baku rata-rata.
25
B. Automated EDA
Proses EDA, juga bisa dilakukan secara otomatis, dengan beberapa library
Python, seperti:
● dtale
● pandas profiling
● sweetviz
● autoviz
● Dataprep
Cara penggunaan setiap library berbeda, dan akan menghasilkan EDA yang
berbeda-beda. Dua artikel dibawah ini menjelaskan bagaimana kita bisa
menggunakan Automated EDA untuk mempercepat proses EDA.
Top Python Libraries to Automate Exploratory Data Analysis in 2021
4 TOOLS FOR AUTOMATIC EXPLORATORY DATA ANALYSIS (EDA) IN
PYTHON. | by Ibekwe kingsley | Machine learning Mastery | Medium
1. Reproduksi Metode
26
mendapatkan hasil yang sama.
2. Reproduksi Hasil
3. Reproduksi Inferensial
Analisis ilmiah dalam proses Data Science dapat membantu seorang Data
Scientist untuk memahami suatu proses pengerjaan data yang sudah dilakukan
sebelumnya. Analisis ilmiah dalam proses Data Science dapat didapatkan melalui
open source coding environment seperti Python menggunakan tools seperti
Jupyter Notebook.
1. Persamaan matematika
27
Output:
Output:
Output:
28
4. Tanda kurung
Output:
5. Matriks
29
Output:
6. Limit Fungsi
30
Output:
Output:
31
1.3 Feature Engineering
32
B. Proses Feature Engineering
Adapun proses yang dilalui feature engineering:
1. Feature Creation
2. Transformation
3. Feature Extraction
4. Feature Selection
"Feature Selection adalah cara memilih subset fitur yang paling relevan
dari kumpulan fitur asli dengan menghapus fitur yang redundan, tidak relevan,
atau berisik."
33
C. Pentingnya Feature Engineering dalam Machine Learning
Dalam machine learning, kinerja model bergantung pada pra-pemrosesan
data dan penanganan data. Tetapi jika kita membuat model tanpa
pra-pemrosesan atau penanganan data, maka itu mungkin tidak memberikan
akurasi yang baik. Padahal, jika kita menerapkan feature engineering pada model
yang sama, maka akurasi model tersebut akan meningkat.
34
yang paling optimal. Jika kita memiliki fitur yang bagus, kita dapat
merepresentasikan data lengkap dengan lebih baik dan menggunakannya
untuk mengkarakterisasi masalah yang diberikan dengan sebaik-baiknya.
1. FeatureTools
2. AutoFeat
35
kita memilih unit variabel input untuk menghindari pembuatan fitur yang
tidak masuk akal secara fisik.
3. TsFresh
36
EXERCISE
37