Modul-9-Transformasi Data-Template Bahan Ajar TA DTS 2021 - Final
Modul-9-Transformasi Data-Template Bahan Ajar TA DTS 2021 - Final
Data Preparation
Modul #9: Transformasi Data
1
Profil Pengajar
Jabatan Akademik (tahun dan jabatan terakhir Pengajar)
Latarbelakang Pendidikan Pengajar
DTS 2 0 2 1 ● AAA
● BBB
Photo Pengajar ● CCC
Riwayat Pekerjaan
● AAA
● BBB
● CCC
Contact Pengajar
Ponsel :
Email :
2
Course Definition
● Kursus ini adalah bagian dari Data Preparation, dan merupakan lanjutan dari
modul 8.
● Data Preparation yang dibahasa adalah transformasi data yaitu:
○ Representasi Fitur, dan
○ Rekayasa Fitur
● Ada beberapa teknik transformasi data yang digunakan sesuai kebutuhan
dan ketersediaan/jenis data baik numerik maupun kategorik
● Kursus ini akan dilanjutkan dengan pembahasan konstruksi data pada modul
10.
3
Learning Objective
4
Referensi: SKKNI Data Science
Modul 9
Modul 10
Data Transformation
● Representasi Fitur atau Pembelajaran Fitur:
• Teknik-Teknik yang memungkinkan sistem bekerja otomatis menemukan representasi
yang diperlukan (untuk deteksi fitur atau klasifikasi dari dataset),
• menggantikan rekayasa fitur manual, dan
• memungkinkan mesin mempelajari fitur dan menggunakannya untuk melakukan
tugas tertentu.
● Rekayasa Fitur:
• Proses mengubah data mentah menjadi fitur yang:
• Mewakili masalah mendasar ke model prediktif,
• menghasilkan akurasi model yang lebih baik pada data yang tidak terlihat.
6
Rekayasa Fitur
Outlier
7
Imputasi
sum. gbr:
https://www.ucl.ac.uk/population-health-sciences/sites/population-health-sciences/files/quartagno_1.pdf
https://rianneschouten.github.io/missing_data_science/assets/blogpost/blogpost.html
8
Missing Completely At Random (MCAR)
● Definisi: Probabilitas sebuah instance yang hilang tidak bergantung pada nilai
yang diketahui atau nilai yang hilang itu sendiri.
● Contoh: Tabel data dicetak tanpa nilai yang hilang dan seseorang secara
tidak sengaja menjatuhkan beberapa tinta di atasnya sehingga beberapa sel
tidak dapat dibaca lagi. Di sini, kita dapat mengasumsikan bahwa nilai yang
hilang mengikuti distribusi yang sama dengan nilai yang diketahui.
9
Missing At Random (MAR)
10
Missing Not At Random (MNAR)
11
Tahapan dan Teknik Imputasi
tahapan imputation
● Jika tipe data Variabel Numerik
○ Imputasi mean atau median.
○ Imputasi nilai suka-suka (arbitrary).
○ Imputasi nilai/data ujung (end of tail).
● Jika tipe data Variabel Kategorik
○ Imputasi kategori yang sering muncul.
○ Tambah kategori yang hilang.
sumber gbr:
https://www.researchgate.net/publication/334213038_Missing_data_and_bias_in_physics_education_research_A_case_for_using_multiple_imputation
12
Imputasi Mean atau Median
● Pro:
○ Mudah dan cepat.
○ Bekerja efektif untuk dataset numerik berukuran kecil.
○ Cocok untuk variabel numerik.
○ Cocok untuk data missing completely at random
(MCAR).
○ Dapat digunakan dalam produksi (mis. dalam model
deployment). mean
= (29 + 43 + 25 + 34 + 50)/5
● Kontra: = 36,2
○ Tidak memperhitungkan korelasi antar fitur, berfungsi
pada tingkat kolom.
○ Kurang akurat.
○ Tidak memperhitungkan probabilitas/ketidakpastian.
○ Tidak cocok utk >5% missing data.
○ Mendistorsi variansi dan distribusi variabel asal/orijinal
serta covariant variabel sisa data.
sumber gbr:
https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779
https://heartbeat.fritz.ai/hands-on-with-feature-engineering-techniques-imputing-missing-values-6c22b49d4060
13
Hands On
Masukkan data
Output
14
Hands On (Lanjutan)
Mengganti missing
Mengganti missing value dengan mean pada
value dengan mean()
kolom umur
data.fillna() --> fungsi
Output mengganti missing
value
Masukan
Data
Ubah ke dataframe
Output
Output
15
Imputasi Nilai Suka-suka
● Pro:
• Asumsi data tidak missing at random.
• Mudah dan cepat diterapkan untuk
melengkapi dataset.
● Kontra:
• Mendistorsi variansi dan distribusi variabel
asal/orijinal serta covariant variabel sisa data.
• Membentuk outlier (jika nilai arbitrer berada
di akhir distribusi).
• Semakin besar NA maka semakin besar
distorsi.
• Hindari memilih nilai arbitrer yg mendekati
nilai mean atau median.
16
Hands On
Mengatasi nilai
Import pandas dan numpy missing value
dengan imputasi
Masukan suka-suka
Data
Ubah ke dataframe
Output
Output
17
Imputasi End of Tail
AGE AGE
● Pro: 29 29
• Mirip dengan imputasi suka-suka.
• Cocok untuk variabel numerik. 43 43
● Ketentuan khusus:
NA 66.89
• Dalam memilih nilai arbitrer:
• Jika variabel berdistribusi normal, maka 25 25
nilai arbiter = mean + 3 * std deviasi.
• Jika variabelnya skew, maka gunakan 34 34
aturan IQR proximity (IQR = 75th
Quantile – 25th Quantile; Upper limit NA 66.89
= 75th Quantile + IQR ×3; Lower limit
= 25th Quantile - IQR ×3).
50 50
• Hanya digunakan pada data latih (training
set). untuk data distribusi normal
18
Hands On
import
import pandas EndTailI
mputer
dan numpy
membuat
masukkan imputer
data cocokan imputer ke set
mengubah data
Output
Output
19
Skewness (kecenderungan/kemiringan/kemencengan)
20
Skewness (kecenderungan/kemiringan/kemencengan)
21
Imputasi Frequent Category/Modus
● Pro:
• Cocok untuk data dengan missing at
random.
• Mudah dan cepat diterapkan.
• Cocok utk data yang memiliki skew
• Dapat digunakan dalam produksi (mis.
dalam model deployment).
● Kontra:
• Mendistorsi relasi label dengan
frekuensi tertinggi vs variabel lain.
• Menghasilkan over-representation jika
banyak data yang missing.
22
Hands On
Import pandas, SimpleImputer dari
sklearn.impute, numpy
Masukan
Data
Output
23
Hands On (Lanjutan)
Output
24
Imputasi Random Sample
● Pro:
• Cocok untuk data missing at random.
• Ganti missing value dengan nilai lain
dalam distribusi yang sama dari
variabel asli.
• Mudah dan cepat.
• Mempertahankan varians dari variabel.
● Kontra:
• Randomness.
• Membutuhkan memori besar untuk
deployment karena perlu untuk
menyimpan data latih yg asli untuk
ekstraksi nilai.
25
Hands On
import randomsample
imputer, pandas, numpy
Output
26
Hands On (Lanjutan)
Buat imputernya
Cocokan imputer ke set
Mengubah data
Output
27
Imputasi Nilai Nol/Konstanta
● Pro:
○ Cocok untuk variabel kategorik.
● Kontra:
○ Tidak memperhitungkan korelasi antar
fitur.
○ Memunculkan bias dalam data.
sumber gbr:
https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779
28
Hands On
Output
29
Imputasi dengan K-NN
● Pro:
• Lebih akurat vs mean/median/most
frequent.
● Kontra:
• Biaya komputasi mahal (karena
KNN bekerja dengan menyimpan
seluruh dataset pelatihan dalam
memori).
• Sensitif terhadap outlier dalam data
(tidak seperti SVM).
sumber gbr:
https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-
imputation-with-examples-6022d9ca0779
30
Imputasi Regresi: Deterministik
● Deterministik
• Mengganti missing value dengan
prediksi yang tepat dari model regresi.
• Tidak mempertimbangkan variasi acak
di sekitar kemiringan (slope regresi).
• Nilai imputasi seringkali terlalu tepat
(precise) dan overestimasi dari korelasi
X-Y.
sumber gbr:
https://statisticsglobe.com/regression-imputation-stochastic-vs-deterministic/
31
Hands On
menghitung nilai statistik
Import Library
Output
Menentukan nilai
yang hilang
Output
df.loc[] --> memilih
melihat info dari table berdasarkan
dataframe lokasi
Output
Output
32
Hands On (Lanjutan)
Membuat Matriks,
figsize --> ukuran figure
Output
33
Hands On (Lanjutan)
Deterministic
Regression Imputation
Output
34
Hands On (Lanjutan)
membuat
chart
Output Output
35
Imputasi Regresi: Stokastik
● Stokastik
• Mengatasi masalah dalam imputasi
regresi deterministik.
• Menambahkan fitur “random error”
sehingga reproduksi korelasi X-Y lebih
tepat.
sumber gbr:
https://statisticsglobe.com/regression-imputation-stochastic-vs-deterministic/ 36
Hands On menghitung data statistik
import library
Menentukan nilai
yang hilang
Output
Output
Output Output
37
Hands On (Lanjutan)
membuat matriks
Output
Menggunakan Regresi
untuk memperhitungkan
data yang hilang
38
Hands On (Lanjutan)
Stochastic Regression
Imputation
39
Hands On (Lanjutan)
membuat chart
Output
40
Hands On (Lanjutan)
Output
41
Kesimpulan Teknik Imputasi
42
Mengatasi (Handling) Outlier (HO)
● Definisi Outlier:
• Titik data yang sangat berbeda dari
data lainnya.
• Pengamatan yang menyimpang dari
pola keseluruhan pada sampel.
● Penyebab:
• Error percobaan, salah input, error
instrumen, kesengajaan (untuk
pengujian), error pemrosesan data,
error sampling, kewajaran karena
keanehan dalam data (bukan error).
sumber gbr:
https://heartbeat.fritz.ai/hands-on-with-feature-engineering-techniques-dealing-with-outliers-fcc9f57cb63b
https://www.analyticsvidhya.com/blog/2021/03/zooming-out-a-look-at-outlier-and-how-to-deal-with-them-indata-science/
43
Mengatasi (Handling) Outlier (HO)
44
Deteksi Outlier
● Visualiasi dgn Boxplot dan Scatterplot
• Sebagian besar titik data terletak di tengah,
tetapi ada satu titik yang jauh dari
pengamatan lainnya; ini bisa menjadi outlier.
● Distribusi Normal
• Dalam distribusi normal, sekitar 99,7% data
berada dalam tiga standar deviasi dari mean.
• Jika ada pengamatan yang lebih dari tiga kali
standar deviasi, kemungkinan itu adalah
outlier.
● Z-score
46
Trimming vs Winsorizing
range [5,100].
Outlier tidak dibuang,
● Contoh kasus: laporan jumlah pasien namun dimasukan ke
yang ditangani tiap dokter/bulan (di dalam range terdekat.
Sehingga nilai mean
bawah 100 pasien), dengan 4% mengecil. Median dan
dilaporkan lebih dari 100 pasien. N tidak berubah.
sumber gbr: 47
https://protobi.com/post/extreme-values-winsorize-trim-or-retain
Hands On
Output
48
Discretization
● Definisi:
• Proses mengubah fungsi, model dan
variabel kontinu menjadi diskret (data
kontinu di Ukur (measured) vs data kontinu
di Hitung (counted)).
● Nama lain: Binning.
● Dasar Pertimbangan:
• Data kontinu memiliki derajat kebebasan
(DoF) yang tak hingga.
• Data kontinu lebih mudah dipahami dan
disimpan dalam bentuk kategori/grup
• misal berat badan < 65 kg (ringan);
65 – 80 kg (mid); > 80 kg (berat).
49
Discretization
Taksonomi Discretization
● Jenis:
• Supervised
• Decision Tree.
• Unsupervised
• Equal-width discretization.
• Equal-frequency
discretization.
• K-means discretization.
• Lainnya
• Custom discretization.
50
Binning
Ilustrasi binning untuk data numerik
● Pro:
• Dapat diterapkan pada data kategorik dan
numerik.
• Model lebih robust dan mencegah overfitting.
● Kontra:
• Meningkatnya biaya kinerja perhitungan.
• Mengorbankan informasi.
• Untuk kolom data numerik, dapat
menyebabkan redudansi untuk beberapa
algoritma.
• Untuk kolom data kategorik, label dengan
frekuensi rendah berdampak negatif pada
robustness model statistik.
• Untuk ukuran data dengan 100 ribu baris,
disarankan menggabungkan label/kolom
dengan record yang < 100 menjadi kategori
baru, misal “Lain-lain”.
51
Hands On
import pandas, numpy - bins --> mengelompokkan data
- binning dengan cut()
- membuat kategori harga
Output
52
Hands On (Lanjutan)
binning dengan qcut()
Output
53
Scaling (Penskalaan)
● Dasar:
• Sering diabaikan oleh pemula di Data Science.
• Data numerik (biasanya) tidak memiliki range.
range “Usia” vs range “Gaji” tidak sama
(karakteristik berbeda). Usia memiliki rentang
dari 1 sampai 150 (dalam tahun), sedangkan Gaji
memiliki rentang dari 10 ribu sampai 100 ribu
(dalam dolar). Untuk itu membandingkan perlu
scaling.
• Beberapa algoritma Machine Learning (regresi
• Dengan menggunakan rumus Euclidean Distance diatas, maka
linear dan logistik dan Neural Network; SVM, jelas bahwa hasil perhitungan pada kolom Usia dan Gaji akan
KNN, K-means; LDA; PCA) yang menggunakan memiliki jarak (distance) yang sangat jauh. Disinilah proses
Feature Scaling dibutuhkan.
teknik optimasi Euclidian Distance 2 poin (titik). • Feature Scaling adalah suatu cara untuk membuat numerical
data pada dataset memiliki rentang nilai (scale) yang sama.
Tidak ada lagi satu variabel data yang mendominasi variabel
data lainnya.
54
sumber gbr:
https://medium.com/machine-learning-id/melakukan-feature-scaling-pada-dataset-229531bb08de
Hands On
import library
membaca data
buat objek skalar dengan normalizer
sesuaikan scaler dengan data
mengubah data
Output
55
Scaling: Jenis
56
Scaling: Normalisasi
57
Hands On
import pandas menghitung mean
dan numpy
menghitung
max - min
membaca data
menerapkan
transformasi ke
data
Output
Output
58
Scaling: Standardisasi
● Tujuan: Berfokus pada mengubah data
mentah menjadi informasi yang dapat
digunakan sebelum dianalisis.
● Definisi: Teknik yang menskalakan
data shingga memiliki mean = 0 dan
standar deviasi =1
● Kontra:
• Menambah langkah dalam data preparation
• Waktu bertambah
sumber:
https://www.cnblogs.com/quinn-yann/p/9808247.html
59
Hands On
buat objek scaler
import library
sesuaikan scaler dengan data
membaca data mengubah data
kereta dan uji
Output
Output
60
Contoh Kasus Scaling
61
sumber gbr:
https://www.kdnuggets.com/2020/04/data-transformation-standardization-normalization.html
Contoh Kasus Scaling
● Ketika kita menghitung persamaan jarak
(distance) Euclidean, jumlah (x2-x1)² jauh
lebih besar daripada jumlah (y2-y1)² yang
berarti jarak Euclidean akan didominasi oleh
Gaji jika kita tidak menerapkan penskalaan.
Perbedaan Usia berkontribusi lebih sedikit
terhadap perbedaan keseluruhan.
● Oleh karena itu, kita harus menggunakan
penskalaan untuk membawa semua nilai ke
besaran yang sama dan dengan demikian,
menyelesaikan masalah ini.
62
Contoh Kasus Scaling
sumber gbr:
https://www.kdnuggets.com/2020/04/data-transformation-standardization-normalization.html
63
Referensi
● https://www.ucl.ac.uk/population-health-sciences/sites/population-health-sciences/files/quartagno_1.pdf
● https://rianneschouten.github.io/missing_data_science/assets/blogpost/blogpost.html
● https://towardsdatascience.com/tf-term-frequency-idf-inverse-document-frequency-from-scratch-in-python-
6c2b61b78558
● https://dataaspirant.com/nlp-text-preprocessing-techniques-implementation-python
● https://www.oreilly.com/library/view/blueprints-for-text/9781492074076/assets/btap_0401.png
● https://monkeylearn.com/unstructured-data
● https://medium.com/machine-learning-id/melakukan-feature-scaling-pada-dataset-229531bb08de
● https://protobi.com/post/extreme-values-winsorize-trim-or-retain
● https://heartbeat.fritz.ai/hands-on-with-feature-engineering-techniques-dealing-with-outliers-fcc9f57cb63b
● https://www.analyticsvidhya.com/blog/2021/05/detecting-and-treating-outliers-treating-the-odd-one-out/
64
Tools / Lab Online
● Jupyter Notebook
● Google Collabs
65
Summary
66
Quiz / Games
68