riset-teknologi-informasi/worksheets/ws-13-preprocessing.md
hb_alim b488de8a09 feat: rewrite all 16 worksheets with full learning material
Each worksheet now includes Ringkasan Materi, Template A.x,
3 exercises with example answers, and reflection prompts.
Synced from rti-20252 student repo.
2026-03-31 10:58:25 +07:00

162 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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?
> ___________________________________________________
> ___________________________________________________