# THE EXHAUSTIVE CHEATSHEET UTS: FUNDAMENTALS OF DATA ANALYTICS --- ## WEEK 1: INTRODUCTION TO DATA ANALYTICS & BIG DATA ### 1. Definisi & Konsep Dasar * **Data Literacy:** Kemampuan untuk mengeksplorasi (*explore*), memahami (*understand*), dan mengomunikasikan (*communicate*) dengan menggunakan data. * **Data Analytics:** Praktik memeriksa data untuk menjawab pertanyaan, mengidentifikasi tren, dan mengekstrak *insight* untuk pengambilan keputusan (*Decision Making*). * **Data Science:** Disiplin ilmu yang lebih luas, menggabungkan matematika, statistik, pemrograman, dan *domain knowledge* untuk membangun sistem AI/algoritma prediktif. ### 2. Siklus Hidup (Data Science Life Cycle) & Peran 1. **Collection & Cleaning** $\rightarrow$ Dikerjakan oleh **Data Engineers**. 2. **Exploratory Data Analysis (EDA)** $\rightarrow$ Dikerjakan oleh **Data Analysts**. 3. **Model Building & Deployment** $\rightarrow$ Dikerjakan oleh **Machine Learning Engineers**. * **Data Scientists** menguasai seluruh spektrum di atas (Mulai dari *Handling Missing Data* hingga *Storytelling*). ### 3. Empat Tipe Model Analitika Data (Maturity Levels) 1. **Descriptive Analytics:** Menjelaskan keadaan bisnis saat ini melalui data historis. *"Apa yang terjadi?"* 2. **Diagnostic Analytics:** Menjelaskan mengapa suatu masalah terjadi dengan melihat data historis. *"Mengapa ini terjadi?"* 3. **Predictive Analytics:** Memproyeksikan atau memprediksi hasil masa depan berdasarkan data historis. *"Apa yang kemungkinan akan terjadi?"* 4. **Prescriptive Analytics:** Menggunakan hasil analitik prediktif dan pengetahuan lain untuk menyarankan upaya terbaik di masa depan. *"Apa yang harus kita lakukan agar hal itu terjadi/tidak terjadi?"* ### 4. Big Data (Karakteristik 5V) Data disebut "Big Data" jika memenuhi: * **Volume:** Kuantitas data yang dihasilkan dan disimpan sangat masif (Petabytes, Exabytes). Contoh: Walmart menyimpan 2.5 Petabytes data transaksi. * **Variety:** Jenis dan sifat data yang sangat beragam (Teks, Audio, Video, Sensor, Log Web). * **Velocity:** Kecepatan data yang dihasilkan secara *real-time* dan terus-menerus. Contoh: LHC di CERN menghasilkan 15 Petabytes/tahun; 41 juta pesan WhatsApp per menit. * **Veracity:** Kualitas, akurasi, dan tingkat kepercayaan dari data tersebut. * **Value:** Utilitas/nilai bisnis yang bisa diekstrak dari data. ### 5. Jenis-jenis Data Berdasarkan Struktur * **Structured Data:** Disimpan dalam *Databases* Relasional (RDBMS) yang kaku (baris dan kolom). * **Semi-Structured Data:** Formatnya lebih fleksibel tapi masih punya tag/pola. Contoh: *XML, JSON, Email, Web Pages (HTML)*. * **Unstructured Data:** Tidak memiliki struktur yang jelas, paling cepat pertumbuhannya. Contoh: *Audio, Video, Image, Natural Language (Teks Bebas), Documents*. ### 6. Pentingnya Framework (Metodologi) ![image](https://hackmd.io/_uploads/rJHoiNTibg.png) * *Mengapa butuh framework?* Karena pengembangan sistem AI berbasis data **BUKAN** sekadar (Data + Algoritma ML). Ia butuh proses iteratif (berulang). Sebagian besar proyek AI-DS gagal (85% menurut Gartner 2016) karena masalah bisnis yang tidak jelas, data yang buruk, atau SDM yang kurang. * **Contoh Framework Teknis:** * **KDD:** *Knowledge Discovery and Data Mining* (Fayyad, 1996). Tahapan: *Data $\rightarrow$ Selection $\rightarrow$ Preprocessing $\rightarrow$ Transformation $\rightarrow$ Data Mining $\rightarrow$ Evaluation $\rightarrow$ Knowledge*. * **SEMMA:** Dari SAS Institute (*Sample, Explore, Modify, Model, Assess*). * **Contoh Framework Bisnis:** * **CRISP-DM:** *Cross-Industry Standard Process for Data Mining* (Paling populer). Terdiri dari 6 tahap: *Business Understanding $\rightleftarrows$ Data Understanding $\rightarrow$ Data Preparation $\rightleftarrows$ Modeling $\rightarrow$ Evaluation $\rightarrow$ Deployment*. * **TDSP:** *Team Data Science Process* dari Microsoft. * **SKKNI No 299 Thn 2020:** Standar Kompetensi Kerja Nasional Indonesia untuk AI & Data Science (terdiri dari 21 unit kompetensi dasar). ![image](https://hackmd.io/_uploads/SyGjhEpjZg.png) ### 7. Pentingnya Data Visualization * Mengubah data kompleks menjadi pola visual (warna, ukuran, bentuk) agar mudah diinterpretasikan oleh manusia. * **Awal tahap analitik:** Digunakan untuk menentukan hubungan fitur dan jenis analisis. * **Akhir tahap analitik:** Digunakan untuk menginterpretasi hasil komputasi, monitoring, dan kontrol (contoh: Dashboard). --- ## WEEK 2: BUSINESS UNDERSTANDING (CRISP-DM TAHAP 1) ### 1. Rincian Tahap Business Understanding Ini adalah tahap untuk mengubah "Masalah Bisnis" menjadi "Tujuan Data Science". Terdapat 4 tugas utama: 1. **Determine Business Objectives:** Apa latar belakangnya? Apa kriteria sukses secara bisnis? (Misal: Turunkan kredit macet bank sebesar 10%). 2. **Assess Situation:** Inventarisasi sumber daya (*inventory of resources*), persyaratan, asumsi, kendala (*constraints*), biaya & manfaat (*cost & benefits*), serta risiko. 3. **Determine Data Science Goals:** Apa tugas analitik yang tepat? Apa kriteria sukses secara metrik model? (Misal: Buat model Klasifikasi dengan F1-Score > 80%). 4. **Produce Project Plan:** Membuat Work Breakdown Structure (WBS), jadwal, dan alokasi tim. ### 2. Menentukan Tugas Analytics (Tasks of AI-DS) & Metrik Evaluasi Tugas analitik harus dipilih berdasarkan tujuan bisnis: * **Regression (Regresi):** Estimasi/prediksi nilai kontinu (angka). *Metrik: Root Mean Squared Error (RMSE), R-Square.* * **Classification (Klasifikasi):** Prediksi kelas diskrit (kategori pasti). *Metrik: Precision, Recall, F1-Score, Accuracy.* * **Clustering (Pengelompokan):** Pengelompokan item berdasarkan kemiripan *tanpa label yang sudah ada* (Unsupervised). *Metrik: Jaccard Index, Silhouette Score.* * **Recommendation Systems:** Memberikan saran yang dipersonalisasi (Rekomendasi saham/film). * **Anomaly Detection:** Klasifikasi kelainan/penyimpangan (Outlier) dari perilaku normal (baseline). Contoh: Deteksi Fraud. * **Sequence Mining:** Menemukan pola urutan kejadian (kategorikal/simbolik). Contoh: Memprediksi klik e-commerce berikutnya. ### 3. Analytics Base Table (ABT) & Fitur Data * **ABT:** Bentuk struktur data final (baris dan kolom) yang siap dimasukkan ke algoritma pembelajaran. * **Descriptive Features:** Kolom-kolom input yang digunakan untuk memprediksi. * **Target Feature / Concept:** Kolom output/hasil yang ingin diprediksi. * Dalam pembuatan fitur, data mentah (*Raw Data*) seringkali diolah menjadi fitur turunan (**Derived Features**) seperti *Averaging, Ratio*, atau *Mapping* agar lebih relevan dengan solusi analitik (Misal: dari data tanggal lahir diturunkan menjadi data "Umur"). --- ## WEEK 3: DATA UNDERSTANDING I (Koleksi & Eksplorasi) ### 1. Data Sources (Sumber Data) * **Primary Data:** Dikumpulkan tangan pertama oleh peneliti. Sangat spesifik, *up-to-date*, tapi butuh waktu lama dan mahal. Contoh: *Surveys (Interviews, FGD, Questionnaire), Experiment (Lab, Simulation), Observation*. * **Secondary Data:** Dikumpulkan oleh pihak lain. Ketersediaan tinggi, cepat didapat, tapi kita tidak punya kontrol atas proses koleksinya dan bisa jadi kedaluwarsa. Contoh: *Databases internal, Social Media, IoT, Remote Sensing, Published Data Repositories (Kaggle, UCI, Data.go.id)*. * *Google Dataset Search:* Mesin pencari khusus dataset. ### 2. Hierarki Struktur Data * **Data Item (Datum):** Unit terkecil (nilai tunggal untuk variabel tertentu). * **Data / Record:** Kumpulan data item yang membawa makna utuh untuk satu objek spesifik (satu baris data). * **Dataset:** Kumpulan dari banyak data (seluruh tabel). * **Metadata:** "Data yang mendeskripsikan data lain" (Kamus data). Contoh: Menjelaskan bahwa kolom "make" bertipe string dan artinya adalah nama pabrikan. ### 3. The Importance of Data Quality (GIGO Paradigm) * *“AI is only as good as the data you give it.”* (Data harus representatif). * **GIGO (Garbage In - Garbage Out):** Data sampah masuk ke model sempurna $\rightarrow$ Hasilnya sampah. Data sempurna masuk ke model sampah $\rightarrow$ Hasilnya sampah. Keduanya harus bagus. ### 4. Data Quality Metrics (6 Dimensi Utama) 1. **Accuracy:** Seberapa akurat data mencerminkan realitas. 2. **Completeness:** Seberapa lengkap data (tidak ada *missing values*). 3. **Consistency:** Seberapa seragam format data di berbagai sistem/waktu. 4. **Validity:** Seberapa patuh data terhadap aturan format baku (misal: format tanggal). 5. **Timeliness:** Seberapa relevan/terkini data tersebut saat dibutuhkan. 6. **Uniqueness:** Tidak ada baris entri data yang terduplikasi. ### 5. Data Retrieval (Teknik Pengambilan Data) 1. **API (Application Programming Interface):** Mengambil data terstruktur dari server (misal Kaggle API dengan `kaggle.json`). 2. **Web Scraping:** Mengekstrak data secara paksa dari kode HTML halaman web (untuk data semi/unstructured). Menggunakan *Requests* dan *BeautifulSoup*. 3. **Relational Database (RDB):** Akses langsung menggunakan *query* SQL via konektor Python (`pandas.read_sql`). ### 6. Exploratory Data Analysis (EDA) Proses investigasi awal untuk menemukan pola, mengidentifikasi anomali, dan melihat hubungan antar variabel. * **Berdasarkan Variabel:** *Univariate* (1 variabel), *Bivariate* (2 variabel), *Multivariate* (>2 variabel). * **Berdasarkan Metode:** *Graphical* (Visual/Chart) vs *Non-graphical* (Statistik Deskriptif). * **Langkah-langkah EDA:** Load Data $\rightarrow$ Cek Tipe Data (Distinguish Attributes) $\rightarrow$ Univariate Analysis $\rightarrow$ Bivariate/Multivariate Analysis $\rightarrow$ Detect Aberrant & Missing Values $\rightarrow$ Detect Outliers $\rightarrow$ Feature Engineering $\rightarrow$ Collect Insight. ### 7. Memilih Grafik (How to choose the right chart) * **SPLOM (Scatter Plot Matrix):** Untuk membandingkan SEMUA fitur kontinu secara matriks. * **Scatter Plot:** 2 fitur kontinu (Angka vs Angka). * **Small Multiple Bar Plots / Stacked Bar Plots:** 2 fitur kategorikal (Kategori vs Kategori). * **Box Plots / Small Multiple Histograms:** 1 fitur kontinu vs 1 fitur kategorikal (Angka vs Kategori). ### 8. Python untuk Data Analytics (Libraries Utama) * **Pandas:** Untuk struktur data tabular (DataFrame/Series). * **NumPy:** Untuk array, matriks, dan komputasi saintifik (*Scientific Computing*). * **SciPy:** Untuk aljabar linear, integral, optimasi, persamaan diferensial. * **Matplotlib & Seaborn:** Untuk visualisasi (grafik, heatmap, violin plot). * **Scikit-Learn:** Algoritma untuk Machine Learning (Regresi, Klasifikasi, Evaluasi). * **Statsmodels:** Untuk model statistik inferensial dan uji hipotesis. * *(No-Code Tools alternatif: Orange, KNIME, WEKA, RapidMiner).* --- ## WEEK 4: DATA UNDERSTANDING II (STATISTICS) Statistik adalah ilmu merencanakan pengumpulan, penyajian, analisis, dan penggunaan data untuk membuat keputusan di tengah ketidakpastian (*variability*). Area Statistik terbagi dua: **Descriptive Statistics** dan **Inferential Statistics**. ### A. DESCRIPTIVE STATISTICS (Meringkas Data Sampel) #### 1. Types of Data / Levels of Measurement * **Kualitatif / Kategorikal:** * **Nominal:** Label murni, tidak ada kasta (Diskrit). Contoh: Gender, Status kepemilikan rumah (1=Milik sendiri, 2=Sewa). * **Ordinal:** Ada tingkatan/ranking, tapi jarak antar tingkatan tidak pasti (Diskrit). Contoh: Kepuasan pelanggan (1=Sangat tidak puas, 4=Sangat puas). * **Kuantitatif / Numerik:** * **Interval:** Ada jarak yang pasti, tapi NOL tidak mutlak (Bisa bernilai negatif). (Diskrit/Kontinu). Contoh: Suhu Celcius, Tahun, Skor IQ. * **Ratio:** Ada jarak pasti dan NOL MUTLAK (Tidak ada nilai negatif, berarti benar-benar tidak ada). (Diskrit/Kontinu). Contoh: Jumlah bohlam rusak, Berat badan, Tinggi, Harga. #### 2. Measures of Central Tendency (Ukuran Pemusatan) Menggambarkan posisi tengah dari sekumpulan data. * **Mean ($\bar{x}$):** Rata-rata aritmatika. Digunakan untuk data Numerik (Interval/Ratio) yang **TIDAK Miring (No Skewed)** dan tidak ada outlier ekstrim. * **Median ($\tilde{x}$):** Nilai tengah setelah data diurutkan. Kebal terhadap outlier. Digunakan untuk data **Ordinal** ATAU data Numerik (Interval/Ratio) yang **Miring (Skewed)**. Jika $n$ ganjil $\rightarrow$ ambil tepat di tengah. Jika $n$ genap $\rightarrow$ rata-rata dari dua nilai di tengah. * **Mode:** Nilai yang paling sering muncul. Berguna untuk data **Nominal**. #### 3. Measures of Variation (Ukuran Penyebaran) Menggambarkan seberapa jauh data tersebar dari pusatnya. * **Range:** (Nilai Maksimum) - (Nilai Minimum). * **Sample Variance ($s^2$):** Rata-rata dari kuadrat selisih setiap nilai dengan Mean. Rumus: $\sum (x_i - \bar{x})^2 / (n - 1)$. * **Standard Deviation ($s$):** Akar kuadrat dari variance. Mengukur sebaran aktual nilai di dalam dataset. * **Percentiles:** Membagi data berurutan menjadi 100 bagian. Q1 = 25th percentile, Q2 (Median) = 50th percentile, Q3 = 75th percentile. * **Interquartile Range (IQR):** Q3 - Q1. Merupakan rentang di mana 50% data inti berada (di dalam kotak Boxplot). * **Coefficient of Variation (CV):** Rasio Standar Deviasi terhadap Mean ($s / \bar{x} \cdot 100\%$). Digunakan untuk membandingkan variabilitas dua dataset yang rata-ratanya berbeda. #### 4. Bentuk Distribusi (Shape) * **Skewness (Kemiringan / Asimetri):** * *Negative Skew (Kiri):* Ekor panjang ke arah angka kecil. Urutan: Mean < Median < Mode. * *Normal / No Skew:* Simetris sempurna. Urutan: Mean = Median = Mode. * *Positive Skew (Kanan):* Ekor panjang ke arah angka besar. Urutan: Mode < Median < Mean. * **Kurtosis (Keruncingan):** Mengukur puncak (pear) / tinggi distribusi dan tebalnya ekor (membantu deteksi keberadaan outlier). * *Leptokurtic (>3):* Puncak sangat runcing, ekor tebal (banyak outlier). * *Mesokurtic (~3):* Lonceng normal. * *Platykurtic (<3):* Puncak datar/penyet, ekor tipis (sedikit outlier). #### 5. Bivariate Relationship * Menggunakan **Correlation Matrix** (Pearson) untuk melihat hubungan antar 2 variabel. * Korelasi negatif: Jika 1 naik, yang lain turun. * Korelasi positif: Jika 1 naik, yang lain naik. --- ### B. INFERENTIAL STATISTICS (Menarik Kesimpulan Populasi) Menggunakan hasil sampel untuk membuat estimasi atau keputusan mengenai populasi secara keseluruhan. * **Estimation:** Memperkirakan rata-rata populasi menggunakan rata-rata sampel. * **Hypothesis Testing (Uji Hipotesis):** Menguji klaim secara statistik. **(HAFALKAN TABEL DI BAWAH INI!)** * **Numeric vs Numeric** $\rightarrow$ **Correlation Test** (Pearson/Spearman). * **Categorical vs Categorical** $\rightarrow$ **Chi-Squared Test** (Melihat tabel kontingensi/stacked bar chart). * **Numeric vs Categorical (Tepat 2 Grup/Kategori)** $\rightarrow$ **T-Test** (Bandingkan rata-rata 2 kelompok, misal: Pria vs Wanita). Visualnya: Distribution Plot. * **Numeric vs Categorical (Lebih dari 2 Grup)** $\rightarrow$ **ANOVA Test** (Bandingkan rata-rata >2 kelompok, misal: Kelas A vs B vs C). Visualnya: Box Plot. --- ## WEEK 5: DATA PREPARATION I (CLEANING & TABULAR) ### 1. Masalah Dirty Data (Pandangan Statistik) Data sampel praktis jarang yang ideal karena: * **Distortion:** Data korup/rusak akibat proses sistem. * **Selection Bias:** Peluang sampel diambil bergantung pada nilainya (Bias survei). * **Censorship (Left/Right):** Pengguna masuk/keluar dari pengawasan kita, memotong garis waktu data. * **Dependence:** Sampel yang seharusnya independen ternyata saling mempengaruhi (misal: tren viral di media sosial). * *Tantangan Data Sensor:* Hati-hati! "Too much cleaning and you lose detail" (Pembersihan berlebihan pada data log/sensor bisa merusak pola asli gerakan/perilaku). ### 2. Tujuan Data Cleaning Meningkatkan akurasi, memfasilitasi analitik yang efektif, serta meningkatkan integritas dan kualitas data. ### 3. Proses Data Cleansing (5 Tahap Utama) 1. **Deduplicate:** Menghapus baris yang ganda persis. (Di Python: `df.duplicated().sum()` lalu `df.drop_duplicates()`). 2. **Fixing Structural Errors:** Memperbaiki inkonsistensi nama, salah ketik (*typos*), huruf besar-kecil (*capitalization*), atau tipe data yang salah masuk kolom (Misal: ada huruf di kolom angka). 3. **Handling Missing Data:** Mengatasi nilai kosong (Null/NaN/NA). 4. **Outlier Identification:** Mencari nilai ekstrim. 5. **Validation:** Tahap akhir, memeriksa apakah data kini akurat, lengkap, konsisten, uniform, dan "Make Sense" (masuk akal) untuk membuktikan teori awal. ### 4. Menangani Missing Values (Data Kosong) * **Drop (Hapus):** * *Sangat berisiko!* Kehilangan banyak informasi berharga. * Hanya boleh menghapus FITUR/KOLOM (Column/Feature) jika data yang kosong **> 60%**. * Hanya boleh menghapus INSTANCE (Row/Record) yang kehilangan hampir seluruh nilainya. * **Imputation (Isi paksa berdasarkan observasi lain):** * *Continuous features:* Isi menggunakan *Mean* atau *Median*. * *Categorical features:* Isi menggunakan *Mode* (Modus). * *Predictive Model:* Membuat model ML khusus (misal KNN) untuk menebak isi kolom yang kosong berdasarkan kolom lainnya. * **ATURAN EMAS:** Dilarang keras melakukan imputasi (sangat direkomendasikan JANGAN dipakai) jika data yang kosong **> 50%**. Jangan juga dipakai jika kosongnya >30% namun informasi penting. ### 5. Menangani Outliers (Pencilan) * **Deteksi:** Visual (Scatter plot, Box plot, Histogram), Statistik (Z-Score, IQR), Probabilitas/Model (Gaussian distribution). * *IQR (Interquartile Range):* Tangguh (*Robust*) terhadap data miring (*Skewed*) dan tidak berasumsi data normal. Kekurangan: Terlalu sensitif untuk dataset kecil, dan bisa menandai terlalu banyak data wajar jika distribusinya memang asimetris panjang. * *Z-Score:* Cocok hanya untuk data yang sudah berdistribusi **Normal** (membentuk lonceng sempurna). Mengukur seberapa jauh nilai menyimpang dari rata-rata dalam satuan *standard deviation*. Kekurangan: Sangat rapuh (*Not Robust*) terhadap outlier yang sudah ada di dalamnya, karena outlier ikut menggeser nilai *mean* dan *standard deviation*. Tidak cocok untuk data miring. * **Penanganan (Handling):** Outliers bisa disimpan (*keep*), diubah (*modify*), atau dibuang (*discard*). * *Clamp Transformation / Winsorizing:* Teknik paling gampang. Menjepit semua nilai di atas ambang atas (upper threshold) menjadi sama dengan ambang atas, dan nilai di bawah ambang bawah (lower threshold) menjadi ambang bawah. (Misal batas atas 100, kalau ada nilai 150 $\rightarrow$ dipaksa jadi 100). Ambang batas bisa menggunakan Percentile. ### 6. Database Relasional (SQL & Tabel) * **Kenapa RDB?** Bahasa SQL ekspresif, mendukungan akses bersamaan (*Concurrency*), mematuhi prinsip ACID (*Atomicity, Consistency, Isolation, Durability*), dan akses persisten yang cepat sejak 1923 (Edgar Codd). * **Istilah Database:** * *Field:* Item data terkecil (satu "sel" di spreadsheet). * *Record/Row:* Sekelompok *fields* terkait yang memiliki makna satu kesatuan. * *Column/Attribute:* Kumpulan *fields* yang punya kategori sama. * *Primary Key:* Kolom unik pengenal utama satu baris. * *Table:* Kumpulan records untuk tujuan tertentu. * *Database:* Kumpulan tabel yang saling berelasi, dilengkapi *indexes, stored procedures, triggers*. * *Schema:* Spesifikasi terperinci dari struktur database. * *DBMS:* Sistem pengontrol definisi, akses, dan manipulasi database. * **Relasi Tabel:** One-to-Many (satu orang tua, banyak anak), Many-to-Many (banyak pembeli, banyak produk, via tabel perantara), One-to-One (satu KTP, satu orang). ### 7. Pivot Table & Slicers * *Fungsi:* Tabel ringkasan khusus untuk mereorganisasi dan mengagregasi data dari DataFrame / Spreadsheet besar secara visual **tanpa perlu menulis rumus matematis/formula**. * *Operasi:* Drag and drop area (Rows, Columns, Values, Filters). *Pivot* (memutar) baris jadi kolom. Mengubah operasi kalkulasi (*Sum, Average, Count*). * *Slicers:* Komponen filter visual interaktif dengan tombol tekan. Membantu melihat status filter aktif secara sekilas saat memfilter banyak item. * *Calculated Field:* Membuat bidang kolom hitungan baru (Misal: 3% Bonus dari Total Net Sales) berdasarkan operasi sum/rata-rata kolom lain di Pivot Table. * *Python Equivalent:* Fungsi `pandas.pivot_table(df, values='x', index='y', columns='z', aggfunc='mean')` dan fungsi `pandas.DataFrame.groupby('x')['y'].mean()`. --- ## WEEK 6: DATA PREPARATION II (FEATURE ENGINEERING) ### 1. Feature Creation (Membuat Fitur Baru) Proses menghasilkan fitur baru berdasarkan *domain knowledge* (pengetahuan bisnis) atau dari pengamatan pola data untuk membuat model ML lebih informatif. * **Binning (Discretization):** Mengubah data angka (kontinu) menjadi data rentang kategori (diskrit) berupa himpunan interval (bins). *Contoh: Horsepower 48-288 dibagi menjadi bins 'Low' (<100), 'Medium' (101-200), 'High' (>200).* Berguna mengurangi *noise* dan membuat pengelompokan analisis lebih stabil. * **Splitting (Extracting sub-features):** Memecah satu fitur menjadi beberapa komponen baru. *Contoh: Teks "alfa-romero" dipecah menjadi kolom 'Brand'="alfa" dan 'Model'="romero".* * **Calculated New Features:** Operasi matematika dari fitur yang sudah ada. *Contoh: Membuat kolom 'price_per_horsepower' dengan membagi 'price' / 'horsepower'.* ### 2. Featurization: Categorical Data Encoding (SANGAT PENTING!) * **Tujuan:** Menerjemahkan data teks/label (*Categorical*) menjadi format angka (*Numerical*) agar algoritma Machine Learning bisa memprosesnya (karena ML adalah matematika murni). Mencegah bias dan salah tafsir. #### A. Label Encoding * Mengganti setiap kategori dengan bilangan bulat acak secara unik. (Contoh: Red=0, Green=1, Blue=2). * *Pros:* Sederhana, hemat memori. Sangat cocok untuk model berbasis Pohon Keputusan (*Decision Trees, Random Forest, XGBoost*). * *Cons:* Menimbulkan **Tingkatan Palsu (Implicit Order)**. Algoritma non-pohon (seperti Linear Regression / KNN) bisa salah mengartikan bahwa "Blue (2) dua kali lebih besar/penting dari Green (1)", padahal mereka setara. Sangat dilarang untuk variabel *Nominal*. #### B. One-Hot Encoding (OHE / Dummy Variable) * Mengubah satu kolom kategori menjadi beberapa kolom biner (0 dan 1). Nilai 1 berarti 'Ya', 0 berarti 'Tidak'. (Contoh: Kolom 'Warna' dihapus, diganti jadi kolom 'Warna_Merah', 'Warna_Hijau', 'Warna_Biru'). * *Pros:* Paling adil. Tidak menimbulkan asumsi kasta/urutan palsu. Sangat didukung luas oleh model linear (Logistic Regression) dan Neural Networks. * *Cons:* **Kutukan Dimensi (Curse of Dimensionality)**. Membuat tabel menjadi sangat lebar (*High Dimensionality* / *Sparse Data*) jika ada 100 kategori unik, maka bertambah 100 kolom baru yang isinya mayoritas nol. Solusinya: Hanya ambil Top-10 kategori, sisanya digabung jadi 'Other'. #### C. Ordinal Encoding * Sama seperti Label Encoding (memetakan kategori ke angka bulat seperti 1, 2, 3), **TETAPI** khusus digunakan untuk data yang memang **Punya Tingkatan/Urutan Alami (Ordered Data)**. * *Contoh:* Poor=1, Good=2, Very Good=3, Excellent=4. Pendidikan SD=1, SMP=2, SMA=3. * *Pros:* Mempertahankan urutan hierarki yang benar secara matematis. Mengurangi dimensi tabel. * *Cons:* Tidak cocok untuk kategori nominal (kategori yang setara). #### D. Target Encoding (Mean Target Encoding) * Mengganti kategori dengan nilai rata-rata (*Mean*) dari kolom Variabel Target (jawaban) untuk kategori tersebut. * *Contoh:* Pada prediksi gaji, kategori "Insinyur" diganti dengan 0.8 (artinya rata-rata 80% Insinyur bergaji tinggi), dan "Perawat" diganti 0.3. * *Pros:* Sangat berguna untuk fitur dengan kardinalitas tinggi (Kategori sangat banyak seperti ZIP code / ID Produk). Menangkap hubungan langsung kategori dengan target. * *Cons:* Rawan **Overfitting** (model menjadi "hafal" jawaban alih-alih belajar pola), harus pakai teknik pelicinan (*smoothing/statistical techniques*). --- ## WEEK 7: DATA PREPARATION III (OPTIMASI FITUR) ### 1. Feature Selection (Menyeleksi Kolom yang Bagus) * **Kenapa perlu seleksi?** Mengurangi redundansi (multikolinearitas), membuang kolom tidak relevan, menyederhanakan model agar mudah diinterpretasikan, **meningkatkan waktu *training* komputer**, dan **mencegah *Overfitting* & "Dimension Explosion"**. #### A. Filter Method (Metode Saringan Awal) * Independen (terlepas) dari model ML apa pun. Mengevaluasi korelasi tiap fitur terhadap target menggunakan **ukuran statistik** sebelum proses *training*. * *Pros:* Cepat. * *Cons:* Cenderung meloloskan 2 fitur yang redundan/mirip karena ia menilai fitur satu per satu tanpa melihat kombinasinya. * **HAFALKAN PENGGUNAAN METODE INI (Berdasarkan Tipe Data):** * Input *Numeric* $\rightarrow$ Output *Numeric*: Pakai **Pearson’s** atau **Spearman’s Correlation**. * Input *Numeric* $\rightarrow$ Output *Categorical*: Pakai **ANOVA Test**. * Input *Categorical* $\rightarrow$ Output *Numeric*: Pakai **Kendall’s Tau**. * Input *Categorical* $\rightarrow$ Output *Categorical*: Pakai **Chi-Square** atau **Mutual Information**. #### B. Wrapper Method (Metode Pembungkus / RFE) * Menggunakan **model prediktif ML itu sendiri** untuk menilai kombinasi (*subset*) dari berbagai fitur secara *try and error*. * *Algoritma Populer:* **Recursive Feature Elimination (RFE)**. * *Pros:* Sangat akurat untuk model spesifik yang digunakan. * *Cons:* Komputasinya sangat-sangat berat, lambat, dan memakan waktu karena harus melatih ulang model berkali-kali (*huge number of computations*). #### C. Embedded Method (Metode Tertanam / Penalti) * Seleksi fitur dilakukan **sebagai bagian dari proses konstruksi model itu sendiri**. * *Algoritma Populer:* Metode Regularisasi/Hukuman (**Lasso Regression** & **Ridge Regression**). Mereka memperkenalkan "kendala" (*constraints*) agar saat model dilatih, fitur yang bobotnya jelek otomatis ditekan menjadi nol (0) atau mendekati nol. * *Pros:* Menekan kompleksitas model dan otomatis mengurangi jumlah fitur. ### 2. Feature Extraction (Ekstraksi Fitur / Dimensionality Reduction) * **Bedanya dengan Seleksi:** Kalau seleksi itu membuang fitur jelek dan menyisakan yang bagus (apel busuk dibuang). Kalau Ekstraksi itu memasukkan SEMUA fitur ke dalam "Juicer/Extractor" dan memeras inti sarinya menjadi fitur-fitur baru (gabungan linear). Data asli hilang. * **Principal Component Analysis (PCA):** Algoritma reduksi dimensi (ekstraktor) paling populer di dunia. Bekerja dengan mengidentifikasi garis (*hyperplane*) yang paling dekat dengan sebaran data, lalu memproyeksikan data ke garis tersebut. * *Trik Swiss Roll:* Menggepengkan/memproyeksikan data 3D menjadi bidang 2D secara serampangan akan menumpuk-numpuk *(squash)* data yang berbeda (*Swiss roll form*). PCA harus digunakan dengan bijak untuk 'membuka gulungan' (*unroll the manifold*) tanpa merusak pola aslinya. * *Efek pada Akurasi:* Mengurangi dimensi (sebelum *training*) biasanya **mempercepat *training***, namun **TIDAK SELALU** meningkatkan akurasi/solusi (kadangkala batas keputusan malah jadi lebih rumit). Semua bergantung pada tipe dataset. * *Trik Penentuan Dimensi:* Jangan menebak angkanya! Atur parameter `n_components` menjadi rasio variansi yang ingin dipertahankan. (Gunakan nilai pecahan *float* misal **0.95**, artinya pertahankan 95% nutrisi/informasi asli data, biarkan Python mencari tahu berapa jumlah dimensi optimalnya). ### 3. Feature Scaling (Menyamaratakan Skala Angka) * **Tujuan Utama:** Memastikan **SEMUA FITUR memberikan kontribusi yang adil** pada model. Mencegah fitur bernilai puluhan ribu (misal gaji) "mendominasi/menindas" fitur bernilai puluhan (misal usia). * **Manfaat:** Mempercepat proses belajar mesin mencapai kesempurnaan (*converge faster*). #### Aturan Keras Penggunaan Scaling (KELUAR DI UJIAN): 1. **KAPAN?** Harus menjadi langkah yang **PALING TERAKHIR** di tahap *data preprocessing* (setelah cleaning, imputasi, pembuatan fitur, dan split *train/test*). 2. **DIMANA?** Scaling HANYA boleh diterapkan pada data Pelatihan (*Training Data*), bukan seluruh data, untuk mencegah kecurangan *Data Leakage*. 3. **APA YANG DI-SCALE?** **HANYA fitur bertipe Numerik (Angka)**. JANGAN MENSKALAKAN fitur kategori (apalagi hasil One-Hot Encoding 0/1). JANGAN PERNAH menskalakan Kolom Target (*Target Variable*). 4. **ALGORITMA APA YANG BUTUH?** * **WAJIB** untuk algoritma yang pakai Gradient Descent dan Fungsi Kerugian/Loss (Linear Regression, Logistic Regression, Neural Networks). * **WAJIB** untuk algoritma berbasis perhitungan jarak / Distance (seperti **KNN**, SVM). * **SAMA SEKALI TIDAK PERLU** untuk algoritma berbasis Pohon (*Tree-based* seperti **Decision Tree, Random Forest, XGBoost**). Pohon hanya membelah data, tidak peduli dengan skala. #### Metode Scaling * **Standardization / Standard Scaling / Z-Score:** * *Rumus:* `X(scaled) = (Xi - Mean) / Standard Deviation`. * *Hasil:* Distribusi data akan berpusat di Rata-rata = 0, dengan Standar Deviasi = 1. Angkanya bisa berwujud positif/negatif desimal. * *Karakteristik:* **Paling ideal** digunakan jika data mentahnya memang sudah memiliki bentuk kurva lonceng normal. Tidak membatasi angka ke rentang pasti, tapi sangat **sensitif terhadap outlier**. * **Normalization / Min-Max Scaling:** * *Rumus:* `X(scaled) = (Xi - Xmin) / (Xmax - Xmin)`. * *Hasil:* Secara paksa menjepit semua angka asli agar mutlak berada di antara **rentang angka 0 hingga 1**. * *Karakteristik:* Sangat mempertahankan bentuk distribusi/pola grafis aslinya. Karena batas terendahnya pasti jadi 0, sangat berguna pada matriks yang berisi data jarang (Sparse Data). Sama-sama **sangat sensitif terhadap outlier**. --- DATA PREP I – DATA CLEANING 1. Sebuah Ɵm data menemukan bahwa dua fitur dalam dataset, yaitu “jumlah pembelian” dan “total pengeluaran”, memiliki hubungan yang sangat kuat karena total pengeluaran merupakan hasil perkalian jumlah pembelian dengan harga. Hal ini dapat menyebabkan redundansi informasi dalam model. Masalah yang terjadi adalah: a. DistorƟon b. SelecƟon bias c. LeŌ censorship d. Dependence Jawaban: d 2. Dalam sebuah dataset kesehatan, hanya pasien yang memiliki nilai tekanan darah di atas batas tertentu yang dicatat dan dianalisis, sementara data pasien dengan nilai rendah Ɵdak tersedia. Kondisi ini disebut: a. DistorƟon b. SelecƟon bias c. LeŌ censorship d. Dependence Jawaban: c 3. Salah satu metode yang umum digunakan untuk menangani missing value pada data numerik adalah: a. Menghapus seluruh dataset b. MengganƟ dengan nilai median dari kolom tersebut c. MengganƟ dengan nilai maksimum d. Mengacak nilai secara random Jawaban: b 4. Salah satu cara handling outlier adalah dengan melakukan clamp transformaƟon. Penjelasan yang tepat mengenai proses ini adalah: a. Menghapus seluruh data yang berada di luar rentang tertentu b. MengganƟ nilai outlier dengan nilai rata-rata c. Membatasi nilai data agar berada dalam batas minimum dan maksimum tertentu d. Mengalikan nilai ekstrem dengan konstanta tertentu Jawaban: c 5. Salah satu metode yang umum digunakan untuk mengidenƟfikasi outlier dalam data numerik adalah: a. InterquarƟle Range (IQR) b. One-hot encoding c. Normalisasi min-max d. Label encoding Jawaban: a DATA PREP II – FEATURE CREATION & FEATURIZATION 1. Dalam proses featurizaƟon, data kategorikal perlu diubah menjadi bentuk numerik agar dapat diproses oleh model machine learning. Teknik yang digunakan adalah: a. StandardizaƟon b. NormalizaƟon c. Encoding d. Sampling Jawaban: c 2. Sebuah dataset berisi kolom “usia” dengan nilai numerik. Data scienƟst mengelompokkan usia menjadi beberapa kategori seperƟ “anak-anak”, “remaja”, “dewasa”, dan “lansia”. Proses ini merupakan contoh dari: a. Binning b. Spliƫng c. CreaƟng new features d. Encoding Jawaban: a 3. Label encoding paling cocok digunakan untuk: a. Tree-based models b. Natural language processing c. Neural network models d. LogisƟc regression Jawaban: a 4. Sebuah kolom “jenis kelamin” dengan nilai {“Laki-laki”, “Perempuan”} diubah menjadi dua kolom biner terpisah (misalnya “is_Laki-laki” dan “is_Perempuan”). Teknik ini merupakan contoh: a. Label encoding b. One-hot encoding c. Ordinal encoding d. Target encoding Jawaban: b 5. Salah satu kekurangan dari ordinal encoding adalah: a. Menambah dimensi data secara signifikan b. Tidak cocok untuk data nominal karena memberi urutan semu c. Tidak dapat digunakan pada tree-based models d. Menghilangkan informasi kategorikal sepenuhnya Jawaban: b DATA PREP III – FEATURE SELECTION 1. Proses feature selecƟon bertujuan untuk: a. Menambah jumlah fitur agar model lebih kompleks b. Memilih fitur yang paling relevan untuk meningkatkan performa model c. Mengubah data kategorikal menjadi numerik d. Menghapus seluruh data yang memiliki missing value Jawaban: b 2. Metode yang melakukan proses seleksi fitur secara langsung di dalam proses pelaƟhan model machine learning disebut: a. Filter b. Wrapper c. Embedded d. Clustering Jawaban: c 3. Metode yang melakukan seleksi fitur berdasarkan ranking menggunakan ukuran staƟsƟk (misalnya korelasi atau chi-square) disebut: a. Filter b. Wrapper c. Embedded d. Clustering Jawaban: a 4. Manakah dari kasus berikut yang paling tepat menggunakan Principal Component Analysis (PCA)? a. Dataset memiliki banyak fitur numerik yang saling berkorelasi Ɵnggi dan ingin direduksi dimensinya tanpa kehilangan terlalu banyak informasi b. Dataset memiliki banyak missing value dan perlu dilakukan imputasi c. Dataset memiliki data kategorikal yang perlu diubah menjadi numerik d. Dataset memiliki outlier yang perlu dihapus Jawaban: a 5. StandardizaƟon dalam feature scaling adalah: a. Mengubah nilai data ke rentang 0 hingga 1 b. Mengurangi jumlah fitur dalam dataset c. Mengubah data sehingga memiliki rata-rata 0 dan standar deviasi 1 d. Menghapus nilai ekstrem dari dataset Jawaban: c Yang bukan merupakan tahapan dalam manajemen proyek adalah... A) Data cleaning dan pre-processing B) Situation assessment C) Cost-benefit analysis D) Project plan ANSWER: A Yang merupakan contoh tugas analitik CLUSTERING adalah... A) Memprediksi harga rumah berdasarkan luas bangunan dan lokasi B) Memberikan rekomendasi saham yang berpotensi memberikan keuntungan tertinggi C) Mengklasifikasikan pasien ke dalam kategori kanker jinak atau ganas berdasarkan hasil pemeriksaan medis D) Mengelompokkan nasabah perbankan berdasarkan kemiripan pola transaksi tanpa kategori awal ANSWER: D Tujuan dari cost-benefit analysis adalah... A) Menghitung total biaya operasional suatu proyek tanpa mempertimbangkan manfaat yang dihasilkan B) Membandingkan total biaya dan total manfaat suatu alternatif keputusan untuk menentukan kelayakan atau nilai ekonominya C) Mengidentifikasi seluruh risiko teknis dalam suatu proyek sebelum implementasi D) Mengoptimalkan parameter teknis agar performa sistem menjadi maksimal tanpa mempertimbangkan aspek finansial ANSWER: B Exploratory Data Analysis (EDA) dapat digunakan untuk menunjukkan perilaku antar-variabel sebagai berikut, kecuali... A) Comparison B) Composition C) Relationship D) Optimization ANSWER: D Langkah pertama dalam Exploratory Data Analysis (EDA) adalah... A) Distinguish attributes B) Univariate analysis C) Bivariate analysis D) Detect outliers ANSWER: A Yang termasuk dalam Data Quality Metrics adalah... A) Model interpretability B) Complexity C) Accuracy D) Training speed ANSWER: C We need data for the following reasons, except... A) To eliminate the need for human judgment in decision making B) To provide input to study a situation C) To assist in formulating alternative courses of action D) To satisfy curiosity ANSWER: A What does Q3 data (third quartile) mean? A) Value of x25% such that 25% of all values of x are less than x25% B) Maximum value C) Median D) Value of x75% such that 75% of all values of x are less than x75% ANSWER: D