Each worksheet now includes Ringkasan Materi, Template A.x, 3 exercises with example answers, and reflection prompts. Synced from rti-20252 student repo.
162 lines
5.6 KiB
Markdown
162 lines
5.6 KiB
Markdown
# WS-13: Data Preprocessing
|
||
|
||
> **Bab 13 — Preprocessing & Persiapan Data untuk Analisis**
|
||
|
||
---
|
||
|
||
## Ringkasan Materi
|
||
|
||
### Data Refinement Pipeline
|
||
|
||
```
|
||
Raw Data → Cleaning → Transformation → Normalization → Processed Data → Analysis Ready
|
||
```
|
||
|
||
Setiap tahap memiliki tujuan berbeda. **Preprocessing bukan langkah teknis biasa** — setiap keputusan preprocessing adalah keputusan riset yang bisa mengubah kesimpulan.
|
||
|
||
### Empat Prinsip Preprocessing
|
||
|
||
| Prinsip | Deskripsi |
|
||
|---------|----------|
|
||
| **Consistency** | Metode sama untuk data yang sama |
|
||
| **Transparency** | Setiap langkah terdokumentasi |
|
||
| **Reproducibility** | Orang lain bisa mengulang dengan hasil sama |
|
||
| **Minimal Distortion** | Ubah sesedikit mungkin; jika normalisasi tidak perlu, jangan lakukan |
|
||
|
||
### Cleaning Triad
|
||
|
||
| Masalah | Strategi | Risiko |
|
||
|---------|---------|--------|
|
||
| **Missing values** | | |
|
||
| — Listwise deletion | Missing < 5%, random | Data loss |
|
||
| — Mean/median imputation | Sedikit missing, dist. normal | Mengurangi variabilitas |
|
||
| — Model-based imputation | Banyak missing, pola sistematis | Introduces dependency |
|
||
| — Flag & separate | Missing karena alasan substantif | Kompleksitas analisis |
|
||
| **Duplikat** | Identifikasi → verifikasi → hapus | False positive (data mirip ≠ duplikat) |
|
||
| **Error format** | Standardisasi tipe, encoding | Kehilangan informasi saat konversi |
|
||
|
||
### Normalisasi — Kapan & Metode Mana
|
||
|
||
| Metode | Formula | Output | Sensitif Outlier? |
|
||
|--------|---------|--------|-------------------|
|
||
| Min-max | (x-min)/(max-min) | [0, 1] | Ya |
|
||
| Z-score | (x-mean)/std | Unbounded | Lebih robust |
|
||
| Robust scaling | (x-median)/IQR | Unbounded | Paling robust |
|
||
|
||
**Kunci:** Parameter normalisasi harus dihitung dari **training set saja** — bukan seluruh data. Pelanggaran = **data leakage**.
|
||
|
||
### Data Leakage Prevention
|
||
|
||
Data leakage terjadi ketika informasi dari test set "bocor" ke preprocessing:
|
||
- Normalisasi parameter dari seluruh dataset ← **SALAH**
|
||
- Cross-validation dilakukan sebelum split ← **SALAH**
|
||
- Feature selection menggunakan label test set ← **SALAH**
|
||
|
||
### Jebakan Kognitif
|
||
|
||
1. "Preprocessing cuma teknis — tidak perlu detail" → bisa ubah kesimpulan
|
||
2. "Lebih banyak preprocessing = lebih bersih = lebih baik" → over-processing distorsi data
|
||
3. "Normalisasi selalu diperlukan" → belum tentu, tergantung metode analisis
|
||
4. "Imputation sama untuk semua situasi" → strategi harus sesuai konteks
|
||
|
||
---
|
||
|
||
## Template A.13 — Preprocessing Documentation Log
|
||
|
||
```
|
||
PREPROCESSING LOG
|
||
|
||
Dataset : ____________________
|
||
Jumlah data awal : ____________________
|
||
|
||
Cleaning:
|
||
| Masalah | Jumlah Kasus | Penanganan | Justifikasi |
|
||
|---------|-------------|------------|-------------|
|
||
| Missing | | | |
|
||
| Duplikat| | | |
|
||
| Error | | | |
|
||
|
||
Transformation:
|
||
| Transformasi | Variabel | Detail | Alasan |
|
||
|-------------|----------|--------|--------|
|
||
| | | | |
|
||
|
||
Normalization:
|
||
Metode : ____________________
|
||
Alasan : ____________________
|
||
Parameter : (dihitung dari: training set / seluruh data)
|
||
|
||
Leakage Check:
|
||
[ ] Parameter normalisasi dari training set saja
|
||
[ ] Tidak ada informasi test set dalam preprocessing
|
||
[ ] Cross-validation dilakukan setelah split
|
||
|
||
Jumlah data akhir : ____________________
|
||
Script tersedia : [ ] Ya → path: ____ | [ ] Belum
|
||
```
|
||
|
||
---
|
||
|
||
## Latihan 1 — Cleaning Plan
|
||
|
||
Periksa dataset Anda (atau dataset contoh) dan dokumentasikan masalah yang ditemukan.
|
||
|
||
| Masalah | Jumlah Kasus | Penanganan | Justifikasi |
|
||
|---------|-------------|------------|-------------|
|
||
| *Contoh: Missing di kolom "label"* | *12 dari 500 (2.4%)* | *Listwise deletion* | *< 5%, distribusi random (MCAR)* |
|
||
| | | | |
|
||
| | | | |
|
||
| | | | |
|
||
|
||
**Jumlah data sebelum cleaning:** ____
|
||
**Jumlah data setelah cleaning:** ____
|
||
**Persentase data yang hilang/berubah:** ____%
|
||
|
||
---
|
||
|
||
## Latihan 2 — Normalisasi Decision
|
||
|
||
Tentukan apakah data Anda perlu normalisasi, dan jika ya, metode apa yang tepat.
|
||
|
||
| Variabel | Range Asli | Distribusi | Outlier? | Metode Normalisasi | Alasan |
|
||
|----------|-----------|-----------|----------|-------------------|--------|
|
||
| *Contoh: response_time* | *0.1 – 45.2s* | *Right-skewed* | *Ya (45.2s)* | *Robust scaling* | *Ada outlier, perlu robust* || *Contoh: accuracy_score* | *0.72 – 0.95* | *Normal, narrow* | *Tidak* | *Tidak perlu* | *Sudah dalam [0,1], metode berbasis distance tidak digunakan* || | | | | | |
|
||
| | | | | | |
|
||
|
||
**Apakah normalisasi diperlukan?** [ ] Ya / [ ] Tidak
|
||
**Justifikasi:**
|
||
> ___________________________________________________
|
||
|
||
**Leakage check:**
|
||
- [ ] Parameter dihitung dari training set saja
|
||
- [ ] Normalisasi diterapkan setelah train-test split
|
||
|
||
---
|
||
|
||
## Latihan 3 — Preprocessing Report
|
||
|
||
Buat ringkasan preprocessing lengkap — dokumentasi yang cukup bagi orang lain untuk mereplikasi.
|
||
|
||
```
|
||
PREPROCESSING SUMMARY
|
||
|
||
1. Dataset: ____________________
|
||
2. Data awal: ____ records, ____ features
|
||
3. Cleaning:
|
||
- Missing values: ____ kasus, metode: ____
|
||
- Duplikat: ____ kasus, tindakan: ____
|
||
- Error: ____ kasus, tindakan: ____
|
||
4. Transformation: ____________________
|
||
5. Normalisasi: ____ (metode), parameter dari ____
|
||
6. Data akhir: ____ records, ____ features
|
||
7. Leakage check: [ ] Lulus / [ ] Ada masalah
|
||
```
|
||
|
||
---
|
||
|
||
## Refleksi
|
||
|
||
> Apakah Anda pernah melakukan normalisasi "karena biasa dilakukan" tanpa mempertimbangkan apakah benar-benar diperlukan? Apa risiko over-preprocessing?
|
||
|
||
> ___________________________________________________
|
||
> ___________________________________________________
|