Bab 1: Pengantar Pembelajaran Mesin (Introduction to ML)
๐ฏ Hasil Pembelajaran (Learning Outcomes)
Setelah mempelajari bab ini, Anda akan mampu:
Memahami konsep fundamental machine learning dan keterkaitan dengan AI/Data Science
Menjelaskan perbedaan antara tiga tipe pembelajaran: supervised, unsupervised, dan reinforcement learning
Mengidentifikasi masalah ML yang cocok untuk supervised vs unsupervised learning
Mendeskripsikan workflow lengkap pengembangan ML project dari problem definition hingga deployment
Menerapkan best practices dalam setup environment Python untuk ML
Mendiskusikan pertimbangan etika dan tanggung jawab dalam membangun sistem ML
1.1 Pengantar: Mengapa Machine Learning Penting?
Machine Learning (Pembelajaran Mesin) telah merevolusi cara kita memecahkan masalah. Dari rekomendasi produk di Netflix hingga diagnosis medis yang lebih akurat, dari autonomous vehicles hingga deteksi fraud yang real-timeโsemuanya dimungkinkan oleh teknologi ML.
๐ก Definisi Machine Learning
Machine Learning adalah bidang studi yang memberikan kemampuan kepada komputer untuk belajar dari data tanpa perlu diprogram secara eksplisit untuk setiap skenario spesifik.
Dalam bab ini, kita akan membangun fondasi pemahaman tentang apa itu machine learning, mengapa penting, dan bagaimana cara kerjanya. Ini adalah landasan untuk semua yang akan kita pelajari di bab-bab berikutnya.
Pertanyaan Utama:
Apa yang membedakan Machine Learning dari programming tradisional?
Mengapa Machine Learning menjadi begitu penting?
Bagaimana cara kerja sistem ML secara fundamental?
1.2 Apa Itu Machine Learning?
1.2.1 Definisi dan Konteks
Machine Learning adalah subset dari Artificial Intelligence (AI) yang fokus pada pengembangan sistem yang dapat belajar dan meningkat dari pengalaman tanpa perlu reprogramming manual.
Perbedaan kunci antara Traditional Programming dan Machine Learning:
Traditional Programming:
Input Data + Explicit Rules (if-then-else, logic) โ Output
Machine Learning:
Input Data + Output Examples (Labels) โ Rules Learned โ Predictions
Dalam traditional programming, kita menulis aturan eksplisit. Dalam ML, kita memberikan contoh dan membiarkan algoritma menemukan aturannya sendiri.
1.2.2 Sejarah Singkat dan Evolusi
Machine Learning bukan konsep baru. Perjalanannya dimulai dari:
Tahun
Event
Signifikansi
1956
Konferensi Dartmouth
Kelahiran term โArtificial Intelligenceโ
1966
ELIZA chatbot
Simulasi psikiater pertama
1974-1980
AI Winter
Ekspektasi tinggi, hasil rendah
1997
Deep Blue vs Kasparov
Computer mengalahkan world chess champion
2011
IBM Watson
Menang di Jeopardy!
2012
AlexNet
Revolusi deep learning dengan GPU
2016
AlphaGo vs Lee Sedol
AI mengalahkan Go master
2020-Present
Large Language Models
ChatGPT, GPT-4, era generative AI
๐ Pembelajaran dari Sejarah
Setiap โAI Winterโ mengajarkan kita tentang pentingnya ekspektasi realistis dan pemahaman mendalam tentang keterbatasan teknologi. Jangan percaya hype, fokus pada fundamentals.
1.2.3 Aplikasi ML di Dunia Real
Machine Learning digunakan di berbagai industri:
Domain
Aplikasi
Impact
Healthcare
Diagnosis penyakit, prediksi pasien risiko tinggi
Menyelamatkan nyawa, reduce costs
Finance
Deteksi fraud, prediksi market, credit scoring
Keamanan, efisiensi
E-commerce
Rekomendasi produk, demand forecasting
Meningkatkan sales, customer satisfaction
Transportation
Autonomous vehicles, route optimization
Safety, efficiency
Manufacturing
Predictive maintenance, quality control
Downtime reduction
Media/Entertainment
Content recommendations, generative content
User engagement
Security
Anomaly detection, threat prediction
Cybersecurity
1.3 Konsep Fundamental Machine Learning
1.3.1 Tiga Tipe Utama Learning
Machine Learning dapat dikategorikan berdasarkan cara sistem belajar:
Code
graph LR A["Machine Learning"] --> B["Supervised Learning"] A --> C["Unsupervised Learning"] A --> D["Reinforcement Learning"] B --> B1["Classification \n Labeled Data \n Predict Categories"] B --> B2["Regression \n Labeled Data \n Predict Values"] C --> C1["Clustering \n Find Patterns \n No Labels"] C --> C2["Dimensionality Reduction \n Feature Extraction \n Data Compression"] D --> D1["Agent Learning \n Reward/Penalty \n Sequential Decisions"] style B fill:#bbdefb style C fill:#c8e6c9 style D fill:#ffe0b2 style B1 fill:#90caf9 style B2 fill:#90caf9 style C1 fill:#a5d6a7 style C2 fill:#a5d6a7 style D1 fill:#ffcc80
graph LR
A["Machine Learning"] --> B["Supervised Learning"]
A --> C["Unsupervised Learning"]
A --> D["Reinforcement Learning"]
B --> B1["Classification \n Labeled Data \n Predict Categories"]
B --> B2["Regression \n Labeled Data \n Predict Values"]
C --> C1["Clustering \n Find Patterns \n No Labels"]
C --> C2["Dimensionality Reduction \n Feature Extraction \n Data Compression"]
D --> D1["Agent Learning \n Reward/Penalty \n Sequential Decisions"]
style B fill:#bbdefb
style C fill:#c8e6c9
style D fill:#ffe0b2
style B1 fill:#90caf9
style B2 fill:#90caf9
style C1 fill:#a5d6a7
style C2 fill:#a5d6a7
style D1 fill:#ffcc80
Tiga Tipe Utama Machine Learning
Supervised Learning (Pembelajaran Terawasi)
Dalam supervised learning, model belajar dari data berlabel (labeled data), artinya setiap data input memiliki label output yang benar.
Dalam reinforcement learning, agent belajar melalui interaksi dengan environment, menerima reward atau penalty.
Karakteristik:
Agent belajar dari rewards/penalties
Sequential decision making
Fokus pada policy optimization
Contoh aplikasi:
AlphaGo bermain Go melawan opponents
Autonomous vehicles learning navigation
Game AI learning strategy optimal
Robot manipulation tasks
1.3.2 Key Concepts: Features, Labels, dan Dataset
Sebelum memahami algoritma, penting mengerti struktur data dalam ML:
Features (Fitur/Input Variables - X):
Input variables yang digunakan model untuk membuat prediksi
Juga disebut โattributesโ atau โindependent variablesโ
Contoh: untuk prediksi harga rumah โ ukuran, lokasi, umur bangunan
Target/Label (Target Variable - Y):
Output yang ingin diprediksi
Juga disebut โdependent variableโ
Contoh: untuk prediksi harga rumah โ harga rumah
Dataset:
Kumpulan semua data point (samples)
Setiap data point punya features (X) dan label (Y)
Code
import pandas as pd# Contoh sederhana dataset untuk prediksi harga rumahdata = {'Ukuran_m2': [100, 150, 200, 250, 300],'Jumlah_Kamar': [2, 3, 4, 4, 5],'Umur_Tahun': [5, 10, 15, 3, 1],'Harga_Miliar': [0.5, 0.8, 1.2, 1.5, 2.0] # Target/Label}df = pd.DataFrame(data)print("๐ Dataset Contoh:")print(df)print("\n"+"="*60)print("๐ Identifikasi Bagian:")print("Features (X): Kolom pertama sampai ketiga")print(" โ Ukuran_m2, Jumlah_Kamar, Umur_Tahun")print("\nTarget (Y): Kolom 'Harga_Miliar'")print(" โ Nilai yang ingin diprediksi")
1.3.3 Train, Validation, dan Test Set
Salah satu konsep paling penting dalam ML adalah tidak boleh mengevaluasi model pada data yang sama yang digunakan untuk training.
Mengapa? Karena model bisa โmenghafalโ training data (overfitting) tanpa benar-benar generalize.
Pembagian Dataset:
Training Set (60-80%): Data untuk melatih model
Validation Set (10-20%): Data untuk tuning hyperparameter
Test Set (10-20%): Data untuk evaluasi final (TIDAK boleh disentuh selama training!)
Code
graph LR A["Raw Dataset \n 100%"] --> B["Training Set \n 70%"] A --> C["Validation Set \n 15%"] A --> D["Test Set \n 15%"] B --> E["Train Model"] C --> F["Tune Hyperparameters"] D --> G["Final Evaluation"] style E fill:#bbdefb style F fill:#fff9c4 style G fill:#c8e6c9
graph LR
A["Raw Dataset \n 100%"] --> B["Training Set \n 70%"]
A --> C["Validation Set \n 15%"]
A --> D["Test Set \n 15%"]
B --> E["Train Model"]
C --> F["Tune Hyperparameters"]
D --> G["Final Evaluation"]
style E fill:#bbdefb
style F fill:#fff9c4
style G fill:#c8e6c9
Pembagian Dataset untuk Training ML Model
โ ๏ธ Data Leakage Warning!
Jangan pernah melakukan hal-hal ini:
Preprocessing semua data bersama-sama sebelum split (akan bias)
Menggunakan test set untuk tuning hyperparameter
Mengevaluasi pada training data saja
Scale/normalize data sebelum train-test split
Golden Rule: Test set harus truly unseen selama development phase!
1.3.4 Overfitting dan Underfitting
Saat melatih model, kita menghadapi trade-off penting antara kompleksitas model dan kemampuan generalisasi:
Underfitting:
Model terlalu sederhana untuk data
Training accuracy rendah, test accuracy juga rendah
Model gagal menangkap pola penting
Sebab: Model complexity terlalu rendah, tidak cukup data
Overfitting:
Model terlalu kompleks, โmenghafalโ training data detail
Training accuracy tinggi, test accuracy rendah
Model gagal generalisasi ke data baru
Sebab: Model complexity terlalu tinggi, overtraining
Good Fit:
Balanced complexity
Training dan test accuracy keduanya tinggi
Model generalize dengan baik ke data baru
Tujuan: Yang kita inginkan!
Code
graph LR A["Model Complexity"] -->|Terlalu Rendah| B["Underfitting \n High Bias \n Low Variance"] A -->|Optimal| C["Good Fit \n Balanced \n Best Performance"] A -->|Terlalu Tinggi| D["Overfitting \n Low Bias \n High Variance"] style B fill:#ffcdd2 style C fill:#c8e6c9 style D fill:#ffcdd2
graph LR
A["Model Complexity"] -->|Terlalu Rendah| B["Underfitting \n High Bias \n Low Variance"]
A -->|Optimal| C["Good Fit \n Balanced \n Best Performance"]
A -->|Terlalu Tinggi| D["Overfitting \n Low Bias \n High Variance"]
style B fill:#ffcdd2
style C fill:#c8e6c9
style D fill:#ffcdd2
Underfitting vs Overfitting vs Good Fit
Cara mengatasi:
Problem
Solusi
Underfitting
Tambah data, tambah feature, gunakan model lebih kompleks
Overfitting
Gunakan regularization, kurangi feature, gunakan model lebih sederhana
1.3.5 Bias-Variance Tradeoff
Dua konsep penting yang mempengaruhi model generalization:
Bias = Seberapa jauh prediksi model secara konsisten dari nilai sebenarnya (underfitting) Variance = Seberapa banyak prediksi berubah jika kita melatih dengan data yang berbeda (overfitting)
High Bias + Low Variance: Underfitting (terlalu sederhana)
Low Bias + High Variance: Overfitting (terlalu kompleks)
Low Bias + Low Variance: Ideal! (apa yang kita inginkan)
Strategi:
Tambah data training โ reduce variance
Tambah model complexity โ reduce bias
Gunakan cross-validation โ better estimate
Gunakan regularization โ reduce variance
1.4 Workflow Pengembangan Machine Learning
Membangun sistem ML yang baik adalah proses sistematis, bukan random. Berikut adalah workflow lengkap:
Code
flowchart TD A["๐ฏ Problem Definition"] --> B["๐ Data Collection"] B --> C["๐งน Data Preprocessing"] C --> D["๐ Exploratory Analysis"] D --> E["โ๏ธ Feature Engineering"] E --> F["๐ค Model Selection"] F --> G["๐ Model Training"] G --> H["โ Model Evaluation"] H --> I{Performance OK?} I -->|No| J["๐ Tune & Iterate"] J --> F I -->|Yes| K["๐ฆ Model Deployment"] K --> L["๐ก Monitoring"] L --> M{Issues?} M -->|Yes| N["๐ง Maintenance"] N --> F M -->|No| O["โ Production"] style A fill:#e1f5ff style K fill:#c8e6c9 style O fill:#a5d6a7 style I fill:#fff9c4 style M fill:#fff9c4
flowchart TD
A["๐ฏ Problem Definition"] --> B["๐ Data Collection"]
B --> C["๐งน Data Preprocessing"]
C --> D["๐ Exploratory Analysis"]
D --> E["โ๏ธ Feature Engineering"]
E --> F["๐ค Model Selection"]
F --> G["๐ Model Training"]
G --> H["โ Model Evaluation"]
H --> I{Performance OK?}
I -->|No| J["๐ Tune & Iterate"]
J --> F
I -->|Yes| K["๐ฆ Model Deployment"]
K --> L["๐ก Monitoring"]
L --> M{Issues?}
M -->|Yes| N["๐ง Maintenance"]
N --> F
M -->|No| O["โ Production"]
style A fill:#e1f5ff
style K fill:#c8e6c9
style O fill:#a5d6a7
style I fill:#fff9c4
style M fill:#fff9c4
Complete Machine Learning Development Workflow
Mari kita bahas setiap langkah:
Step 1: Problem Definition (๐ฏ)
Langkah pertama dan paling penting adalah memahami masalah dengan jelas.
Pertanyaan yang harus dijawab:
Apa yang ingin kita prediksi/optimalkan?
Apa problem type? (Classification, Regression, Clustering, dsb)
Apa business metrics/success criteria?
Apa constraints? (Latency, computational resources, ethical considerations)
Bagaimana hasil akan digunakan dalam practice?
๐ก Real-world Example: Netflix Churn Prediction
Problem: Netflix ingin mengurangi customer churn (pelanggan yang cancel)
Clear Problem Definition:
Task: Memprediksi customer mana yang berisiko cancel dalam 3 bulan
Problem Type: Binary Classification
Success Metric: Recall โฅ 85%
Use Case: Proactive retention campaign
Business Value: Reduce churn โ increase lifetime value
Step 2: Data Collection (๐)
Kualitas data menentukan kualitas model. โGarbage in, garbage out.โ
Tujuan:
Kumpulkan data relevan untuk problem
Pastikan sufficient volume
Dokumentasikan sumber data
Pertimbangan:
Apakah data memiliki signal yang cukup?
Apakah available features relevant dengan target?
Bagaimana distribusi data? (Balanced/imbalanced?)
Apakah ada data quality issues?
Step 3: Data Preprocessing (๐งน)
Data real-world selalu โkotorโ. Preprocessing adalah ~70% pekerjaan data science!
Aktivitas utama:
Handle missing values
Remove/treat outliers
Encode categorical variables
Scale/normalize numerical features
Handle class imbalance (jika applicable)
Klik untuk melihat contoh data preprocessing
import pandas as pdimport numpy as np# Dataset dengan issuesraw_data = {'Age': [25, 35, np.nan, 45, 50, 200], # Missing & outlier'Income': [30000, 50000, 45000, np.nan, 75000, 80000],'City': ['Jakarta', 'Bandung', 'Jakarta', 'Surabaya', 'Jakarta', 'Medan'],'IsCustomer': [1, 1, 0, 1, 1, 1]}df_raw = pd.DataFrame(raw_data)print("๐ด RAW DATA (Problems):")print(df_raw)print("\nโ ๏ธ Issues detected:")print("- Missing values: Age (row 2), Income (row 3)")print("- Outlier: Age = 200 (unrealistic untuk usia)")print("- Categorical: City needs encoding for ML")print("\n"+"="*70)print("โ AFTER PREPROCESSING:")df_clean = df_raw.copy()# Handle outliersdf_clean['Age'] = df_clean['Age'].clip(18, 80) # Realistic age range# Fill missing valuesdf_clean['Age'].fillna(df_clean['Age'].median(), inplace=True)df_clean['Income'].fillna(df_clean['Income'].mean(), inplace=True)# Encode categoricaldf_clean['City_encoded'] = pd.factorize(df_clean['City'])[0]df_clean = df_clean.drop('City', axis=1)print(df_clean)print("\nโจ Data ready for modeling!")
Step 4: Exploratory Data Analysis (๐)
Sebelum modeling, kita harus understand data secara mendalam.
Aktivitas:
Univariate analysis (distribusi setiap feature)
Bivariate analysis (relationship antara features)
Multivariate analysis (pattern dalam keseluruhan)
Visualisasi dan statistik deskriptif
Output: Insights tentang data, feature importance, potential issues
Step 5: Feature Engineering (โ๏ธ)
Transform raw data menjadi features yang lebih predictive.
Teknik:
Create polynomial features
Interaction terms
Domain-specific features
Feature selection untuk menghilangkan features tidak penting
Contoh:
Raw features: BirthDate, CurrentDate
โ Engineered feature: Age = CurrentDate - BirthDate
โ Better for ML model!
Step 6: Model Selection (๐ค)
Pilih algorithm yang sesuai dengan problem type dan karakteristik data.
Pertimbangan:
Problem type (Classification/Regression/Clustering?)
Data volume (berapa samples?)
Feature dimensionality (berapa features?)
Interpretability requirements
Computational resources available
Best Practice: Start simple, kemudian add complexity jika diperlukan.
Step 7: Model Training (๐)
Latih model pada training set.
Klik untuk melihat contoh training model
from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LogisticRegression# Load sample datairis = load_iris()X, y = iris.data, iris.target# Split train-test (80-20)X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)# Scale features (important for many algorithms)scaler = StandardScaler()X_train_scaled = scaler.fit_transform(X_train)X_test_scaled = scaler.transform(X_test)# Train modelmodel = LogisticRegression(max_iter=200, random_state=42)model.fit(X_train_scaled, y_train)print("โ Model trained successfully!")print(f"\n๐ Training accuracy: {model.score(X_train_scaled, y_train):.4f}")print(f"๐ Test accuracy: {model.score(X_test_scaled, y_test):.4f}")
Step 8: Model Evaluation (โ )
Evaluasi dengan metrics yang sesuai untuk problem type.
Machine Learning bukan neutral technology. Keputusan dalam setiap step development bisa punya ethical implications yang besar.
1.6.1 Bias dalam ML
Sumber bias:
Data bias - Training data tidak representative dari real-world
Algorithm bias - Algoritma inherently biased
Human bias - Biases dalam problem definition, feature selection
Contoh nyata:
Hiring algorithm yang biased terhadap perempuan
Healthcare algorithm yang underperform untuk minority groups
Loan approval system yang discriminate based on protected attributes
1.6.2 Fairness, Accountability, dan Transparency
Principles untuk ethical ML:
Fairness: Model treat different groups fairly, tidak ada discrimination
Accountability: Clear responsibility untuk model decisions
Transparency: Model decisions harus explainable/interpretable
1.6.3 Privacy Concerns
Issues:
Model bisa memorize sensitive training data
Adversarial attacks bisa extract private information
GDPR โright to be forgottenโ vs model predictions
1.6.4 Best Practices untuk Ethical ML
โ Ethical ML Practices
Understand your data: Dari mana data? Apa limitations-nya?
Check for bias: Apakah model perform equally well untuk semua groups?
Be transparent: Explain model decisions ke stakeholders
Consider impact: Bagaimana model decisions mempengaruhi users?
Have governance: Processes untuk monitoring dan addressing issues
Document decisions: Keep track of why certain choices were made
1.7 Case Study: Churn Prediction untuk Telekomunikasi
Mari aplikasikan konsep-konsep ini pada case study nyata.
Problem Definition
Objective: Prediksi pelanggan yang akan churn (cancel) dalam 3 bulan
Problem Type: Binary Classification
Success Metric: Recall โฅ 85% (identify 85% of actual churners)
Data Collection & Exploration
Dataset: 7043 customers
Features: Demographics, usage patterns, billing info
Target: Churn (Yes/No)
Class balance: ~26% churn (imbalanced)
Preprocessing
Handle missing values
Encode categorical variables
Scale numerical features
Handle class imbalance dengan SMOTE
Modeling
Tried several algorithms:
Logistic Regression: 80% recall
Random Forest: 87% recall โ Selected
Gradient Boosting: 85% recall
Results
Test Recall: 87.3% โ (exceeds 85% goal)
Precision: 54.2%
Business impact: Saves millions dalam revenue melalui proactive retention
๐งช Hands-on Exercise 1
Objektif: Practice fundamental concepts dengan kode
Instruksi:
Buka Jupyter notebook
Import libraries yang diperlukan (pandas, numpy, sklearn)
Load Iris dataset
Explore data (shape, summary statistics)
Split into train (80%) dan test (20%)
Scale features dengan StandardScaler
Train LogisticRegression classifier
Evaluate dengan accuracy, precision, recall
Bonus: Visualize confusion matrix
๐ Review Questions
Conceptual Questions
Jelaskan dengan jelas perbedaan antara supervised learning dan unsupervised learning. Berikan 2 contoh untuk masing-masing dan jelaskan mengapa klasifikasi tersebut tepat.
Dalam konteks classification vs regression, jelaskan perbedaan kedua problem types. Kapan kita gunakan classification? Kapan regression? Berikan contoh nyata untuk masing-masing.
Jelaskan fenomena overfitting dan underfitting. Bagaimana cara mendeteksi keduanya? Apa strategi untuk mengatasinya?
Mengapa penting untuk memiliki separate test set yang tidak disentuh selama training phase? Apa yang terjadi jika kita evaluate model pada training data saja?
Jelaskan bias-variance tradeoff. Bagaimana tradeoff ini mempengaruhi generalization ability model?
Practical Questions
Diberikan problem: โPrediksi apakah email masuk adalah spam atau bukan.โ Ini classification atau regression? Supervised atau unsupervised? Jelaskan alasan.
Jelaskan langkah-langkah apa yang akan Anda lakukan untuk membangun ML model untuk problem di nomor 6.
Jika training accuracy = 95% tetapi test accuracy = 60%, apa yang terjadi? Apa solusi yang Anda rekomendasikan dan mengapa?
Anda punya dataset dengan 1000 samples. Berapa yang Anda alokasikan untuk training, validation, dan test? Jelaskan alasan di balik pilihan Anda.
Dataset Anda sangat imbalanced: 95% negative class, 5% positive class. Bagaimana Anda akan handle imbalance ini? Apa metrik evaluasi yang sesuai?
๐ฏ Key Takeaways:
โ Machine Learning adalah teknologi powerful untuk memecahkan complex problems dari data
โ Ada tiga tipe utama: supervised (labeled), unsupervised (no labels), reinforcement (reward)
โ ML workflow adalah systematic process dari problem definition hingga monitoring
โ Ethical considerations harus menjadi bagian integral dari development, bukan afterthought
โ Tools Python (pandas, sklearn, matplotlib) membuat ML accessible dan powerful
โ Bias-variance tradeoff adalah fundamental concept yang mengatur model generalization
๐ References dan Resources
Bacaan Lebih Lanjut
Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
Mรผller, A. C., & Guido, S. (2016). Introduction to Machine Learning with Python. OโReilly.
James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning.
Google ML Crash Course: https://developers.google.com/machine-learning/crash-course
Tools & Platforms
Jupyter Notebook: https://jupyter.org/
Anaconda Distribution: https://www.anaconda.com/
Kaggle Notebooks: https://www.kaggle.com/code
โจ Kesimpulan
Anda sekarang memiliki pemahaman fundamental tentang Machine Learning:
Apa itu ML dan mengapa penting
Tiga tipe learning dan kapan menggunakannya
Workflow lengkap dari problem definition hingga deployment
Tools dan environment untuk ML development
Ethical considerations dalam ML
Di Bab 2 (Data Preprocessing & EDA), kita akan deep dive ke dalam aspek kritis: bagaimana mempersiapkan data berkualitas tinggi untuk modeling. Data quality adalah fondasi dari model quality! ๐
---title: "Bab 1: Pengantar Pembelajaran Mesin"subtitle: "Konsep Fundamental dan Workflow Pengembangan"number-sections: false---# Bab 1: Pengantar Pembelajaran Mesin (Introduction to ML) {#sec-chapter-01}::: {.callout-note}## ๐ฏ Hasil Pembelajaran (Learning Outcomes)Setelah mempelajari bab ini, Anda akan mampu:1. **Memahami** konsep fundamental machine learning dan keterkaitan dengan AI/Data Science2. **Menjelaskan** perbedaan antara tiga tipe pembelajaran: supervised, unsupervised, dan reinforcement learning3. **Mengidentifikasi** masalah ML yang cocok untuk supervised vs unsupervised learning4. **Mendeskripsikan** workflow lengkap pengembangan ML project dari problem definition hingga deployment5. **Menerapkan** best practices dalam setup environment Python untuk ML6. **Mendiskusikan** pertimbangan etika dan tanggung jawab dalam membangun sistem ML:::## 1.1 Pengantar: Mengapa Machine Learning Penting?Machine Learning (Pembelajaran Mesin) telah merevolusi cara kita memecahkan masalah. Dari rekomendasi produk di Netflix hingga diagnosis medis yang lebih akurat, dari autonomous vehicles hingga deteksi fraud yang real-timeโsemuanya dimungkinkan oleh teknologi ML.::: {.callout-note}## ๐ก Definisi Machine Learning**Machine Learning** adalah bidang studi yang memberikan kemampuan kepada komputer untuk **belajar dari data tanpa perlu diprogram secara eksplisit** untuk setiap skenario spesifik.:::Dalam bab ini, kita akan membangun fondasi pemahaman tentang apa itu machine learning, mengapa penting, dan bagaimana cara kerjanya. Ini adalah landasan untuk semua yang akan kita pelajari di bab-bab berikutnya.**Pertanyaan Utama:**- Apa yang membedakan Machine Learning dari programming tradisional?- Mengapa Machine Learning menjadi begitu penting?- Bagaimana cara kerja sistem ML secara fundamental?---## 1.2 Apa Itu Machine Learning?### 1.2.1 Definisi dan KonteksMachine Learning adalah subset dari **Artificial Intelligence (AI)** yang fokus pada pengembangan sistem yang dapat **belajar dan meningkat dari pengalaman tanpa perlu reprogramming manual**.**Perbedaan kunci antara Traditional Programming dan Machine Learning:**```Traditional Programming:Input Data + Explicit Rules (if-then-else, logic) โ OutputMachine Learning:Input Data + Output Examples (Labels) โ Rules Learned โ Predictions```Dalam traditional programming, kita menulis aturan eksplisit. Dalam ML, kita memberikan contoh dan membiarkan algoritma menemukan aturannya sendiri.### 1.2.2 Sejarah Singkat dan EvolusiMachine Learning bukan konsep baru. Perjalanannya dimulai dari:| Tahun | Event | Signifikansi ||-------|-------|-------------|| 1956 | Konferensi Dartmouth | Kelahiran term "Artificial Intelligence" || 1966 | ELIZA chatbot | Simulasi psikiater pertama || 1974-1980 | AI Winter | Ekspektasi tinggi, hasil rendah || 1997 | Deep Blue vs Kasparov | Computer mengalahkan world chess champion || 2011 | IBM Watson | Menang di Jeopardy! || 2012 | AlexNet | Revolusi deep learning dengan GPU || 2016 | AlphaGo vs Lee Sedol | AI mengalahkan Go master || 2020-Present | Large Language Models | ChatGPT, GPT-4, era generative AI |::: {.callout-tip}## ๐ Pembelajaran dari SejarahSetiap "AI Winter" mengajarkan kita tentang pentingnya ekspektasi realistis dan pemahaman mendalam tentang keterbatasan teknologi. Jangan percaya hype, fokus pada fundamentals.:::### 1.2.3 Aplikasi ML di Dunia RealMachine Learning digunakan di berbagai industri:| Domain | Aplikasi | Impact ||--------|----------|--------|| **Healthcare** | Diagnosis penyakit, prediksi pasien risiko tinggi | Menyelamatkan nyawa, reduce costs || **Finance** | Deteksi fraud, prediksi market, credit scoring | Keamanan, efisiensi || **E-commerce** | Rekomendasi produk, demand forecasting | Meningkatkan sales, customer satisfaction || **Transportation** | Autonomous vehicles, route optimization | Safety, efficiency || **Manufacturing** | Predictive maintenance, quality control | Downtime reduction || **Media/Entertainment** | Content recommendations, generative content | User engagement || **Security** | Anomaly detection, threat prediction | Cybersecurity |---## 1.3 Konsep Fundamental Machine Learning### 1.3.1 Tiga Tipe Utama LearningMachine Learning dapat dikategorikan berdasarkan cara sistem belajar:```{mermaid}%%| fig-cap: Tiga Tipe Utama Machine Learninggraph LR A["Machine Learning"] --> B["Supervised Learning"] A --> C["Unsupervised Learning"] A --> D["Reinforcement Learning"] B --> B1["Classification \n Labeled Data \n Predict Categories"] B --> B2["Regression \n Labeled Data \n Predict Values"] C --> C1["Clustering \n Find Patterns \n No Labels"] C --> C2["Dimensionality Reduction \n Feature Extraction \n Data Compression"] D --> D1["Agent Learning \n Reward/Penalty \n Sequential Decisions"] style B fill:#bbdefb style C fill:#c8e6c9 style D fill:#ffe0b2 style B1 fill:#90caf9 style B2 fill:#90caf9 style C1 fill:#a5d6a7 style C2 fill:#a5d6a7 style D1 fill:#ffcc80```#### **Supervised Learning (Pembelajaran Terawasi)**Dalam supervised learning, **model belajar dari data berlabel** (labeled data), artinya setiap data input memiliki label output yang benar.**Karakteristik:**- Membutuhkan labeled training data- Output target sudah diketahui- Dapat mengukur akurasi dengan jelas**Dua kategori utama:**| Problem Type | Tujuan | Output | Contoh | Algoritma | Metrik ||-------------|--------|--------|--------|-----------|--------|| **Classification** (Klasifikasi) | Memprediksi kategori/kelas | Diskrit (kategori terbatas) | Email spam/bukan spam, Cat/Dog/Bird, Approval/Reject | Logistic Regression, Decision Tree, SVM, Random Forest | Accuracy, Precision, Recall, F1-Score || **Regression** (Regresi) | Memprediksi nilai numerik kontinu | Nilai real numbers | Prediksi harga rumah, suhu besok, gaji berdasarkan pengalaman | Linear Regression, Decision Tree Regressor, SVR | MAE, RMSE, Rยฒ |::: {.callout-important}## ๐ Perbedaan Kritis: Classification vs Regression**Classification:** "Apakah email ini spam?" โ Yes/No (Diskrit)**Regression:** "Berapa harga rumah ini?" โ 2.5 miliar (Kontinyu)Perbedaan ini penting karena menentukan algoritma dan metrik evaluasi yang digunakan!:::#### **Unsupervised Learning (Pembelajaran Tanpa Pengawasan)**Dalam unsupervised learning, **model belajar dari data tanpa label**, menemukan pola dan struktur tersembunyi.**Karakteristik:**- Tidak membutuhkan labeled data- Output target tidak diketahui- Fokus pada penemuan pola dan struktur**Dua kategori utama:**| Problem Type | Tujuan | Output | Contoh | Algoritma | Metrik / Benefit ||-------------|--------|--------|--------|-----------|------------------|| **Clustering** (Pengelompokan) | Mengelompokkan data serupa bersama | Cluster assignments | Segmentasi customer (high-value, medium, budget), document clustering | K-Means, Hierarchical Clustering, DBSCAN | Silhouette Score, Davies-Bouldin Index || **Dimensionality Reduction** | Mengurangi jumlah fitur sambil menjaga informasi | Data dengan dimensi lebih rendah | Visualisasi data tinggi-dimensi, feature extraction | PCA, t-SNE, UMAP | Visualisasi, computational efficiency, noise reduction |#### **Reinforcement Learning (Pembelajaran Penguatan)**Dalam reinforcement learning, **agent belajar melalui interaksi dengan environment**, menerima reward atau penalty.**Karakteristik:**- Agent belajar dari rewards/penalties- Sequential decision making- Fokus pada policy optimization**Contoh aplikasi:**- AlphaGo bermain Go melawan opponents- Autonomous vehicles learning navigation- Game AI learning strategy optimal- Robot manipulation tasks---### 1.3.2 Key Concepts: Features, Labels, dan DatasetSebelum memahami algoritma, penting mengerti struktur data dalam ML:**Features (Fitur/Input Variables - X):**- Input variables yang digunakan model untuk membuat prediksi- Juga disebut "attributes" atau "independent variables"- Contoh: untuk prediksi harga rumah โ ukuran, lokasi, umur bangunan**Target/Label (Target Variable - Y):**- Output yang ingin diprediksi- Juga disebut "dependent variable"- Contoh: untuk prediksi harga rumah โ harga rumah**Dataset:**- Kumpulan semua data point (samples)- Setiap data point punya features (X) dan label (Y)```{python}#| echo: true#| eval: trueimport pandas as pd# Contoh sederhana dataset untuk prediksi harga rumahdata = {'Ukuran_m2': [100, 150, 200, 250, 300],'Jumlah_Kamar': [2, 3, 4, 4, 5],'Umur_Tahun': [5, 10, 15, 3, 1],'Harga_Miliar': [0.5, 0.8, 1.2, 1.5, 2.0] # Target/Label}df = pd.DataFrame(data)print("๐ Dataset Contoh:")print(df)print("\n"+"="*60)print("๐ Identifikasi Bagian:")print("Features (X): Kolom pertama sampai ketiga")print(" โ Ukuran_m2, Jumlah_Kamar, Umur_Tahun")print("\nTarget (Y): Kolom 'Harga_Miliar'")print(" โ Nilai yang ingin diprediksi")```---### 1.3.3 Train, Validation, dan Test SetSalah satu konsep paling penting dalam ML adalah **tidak boleh mengevaluasi model pada data yang sama yang digunakan untuk training**.**Mengapa?** Karena model bisa "menghafal" training data (overfitting) tanpa benar-benar generalize.**Pembagian Dataset:**- **Training Set (60-80%):** Data untuk melatih model- **Validation Set (10-20%):** Data untuk tuning hyperparameter- **Test Set (10-20%):** Data untuk evaluasi final (TIDAK boleh disentuh selama training!)```{mermaid}%%| fig-cap: "Pembagian Dataset untuk Training ML Model"graph LR A["Raw Dataset \n 100%"] --> B["Training Set \n 70%"] A --> C["Validation Set \n 15%"] A --> D["Test Set \n 15%"] B --> E["Train Model"] C --> F["Tune Hyperparameters"] D --> G["Final Evaluation"] style E fill:#bbdefb style F fill:#fff9c4 style G fill:#c8e6c9```::: {.callout-warning}## โ ๏ธ Data Leakage Warning!**Jangan pernah melakukan hal-hal ini:**- Preprocessing semua data bersama-sama sebelum split (akan bias)- Menggunakan test set untuk tuning hyperparameter- Mengevaluasi pada training data saja- Scale/normalize data sebelum train-test split**Golden Rule:** Test set harus truly unseen selama development phase!:::---### 1.3.4 Overfitting dan UnderfittingSaat melatih model, kita menghadapi trade-off penting antara kompleksitas model dan kemampuan generalisasi:**Underfitting:**- Model terlalu sederhana untuk data- Training accuracy rendah, test accuracy juga rendah- Model gagal menangkap pola penting- **Sebab:** Model complexity terlalu rendah, tidak cukup data**Overfitting:**- Model terlalu kompleks, "menghafal" training data detail- Training accuracy tinggi, test accuracy rendah- Model gagal generalisasi ke data baru- **Sebab:** Model complexity terlalu tinggi, overtraining**Good Fit:**- Balanced complexity- Training dan test accuracy keduanya tinggi- Model generalize dengan baik ke data baru- **Tujuan:** Yang kita inginkan!```{mermaid}%%| fig-cap: "Underfitting vs Overfitting vs Good Fit"graph LR A["Model Complexity"] -->|Terlalu Rendah| B["Underfitting \n High Bias \n Low Variance"] A -->|Optimal| C["Good Fit \n Balanced \n Best Performance"] A -->|Terlalu Tinggi| D["Overfitting \n Low Bias \n High Variance"] style B fill:#ffcdd2 style C fill:#c8e6c9 style D fill:#ffcdd2```**Cara mengatasi:**| Problem | Solusi ||---------|--------|| Underfitting | Tambah data, tambah feature, gunakan model lebih kompleks || Overfitting | Gunakan regularization, kurangi feature, gunakan model lebih sederhana |---### 1.3.5 Bias-Variance TradeoffDua konsep penting yang mempengaruhi model generalization:**Bias** = Seberapa jauh prediksi model secara konsisten dari nilai sebenarnya (underfitting)**Variance** = Seberapa banyak prediksi berubah jika kita melatih dengan data yang berbeda (overfitting)```High Bias + Low Variance: Underfitting (terlalu sederhana)Low Bias + High Variance: Overfitting (terlalu kompleks)Low Bias + Low Variance: Ideal! (apa yang kita inginkan)```**Strategi:**- Tambah data training โ reduce variance- Tambah model complexity โ reduce bias- Gunakan cross-validation โ better estimate- Gunakan regularization โ reduce variance---## 1.4 Workflow Pengembangan Machine LearningMembangun sistem ML yang baik adalah proses sistematis, bukan random. Berikut adalah workflow lengkap:```{mermaid}%%| fig-cap: "Complete Machine Learning Development Workflow"flowchart TD A["๐ฏ Problem Definition"] --> B["๐ Data Collection"] B --> C["๐งน Data Preprocessing"] C --> D["๐ Exploratory Analysis"] D --> E["โ๏ธ Feature Engineering"] E --> F["๐ค Model Selection"] F --> G["๐ Model Training"] G --> H["โ Model Evaluation"] H --> I{Performance OK?} I -->|No| J["๐ Tune & Iterate"] J --> F I -->|Yes| K["๐ฆ Model Deployment"] K --> L["๐ก Monitoring"] L --> M{Issues?} M -->|Yes| N["๐ง Maintenance"] N --> F M -->|No| O["โ Production"] style A fill:#e1f5ff style K fill:#c8e6c9 style O fill:#a5d6a7 style I fill:#fff9c4 style M fill:#fff9c4```Mari kita bahas setiap langkah:### **Step 1: Problem Definition** (๐ฏ)Langkah pertama dan **paling penting** adalah memahami masalah dengan jelas.**Pertanyaan yang harus dijawab:**- Apa yang ingin kita prediksi/optimalkan?- Apa problem type? (Classification, Regression, Clustering, dsb)- Apa business metrics/success criteria?- Apa constraints? (Latency, computational resources, ethical considerations)- Bagaimana hasil akan digunakan dalam practice?::: {.callout-tip}## ๐ก Real-world Example: Netflix Churn Prediction**Problem:** Netflix ingin mengurangi customer churn (pelanggan yang cancel)**Clear Problem Definition:**- **Task:** Memprediksi customer mana yang berisiko cancel dalam 3 bulan- **Problem Type:** Binary Classification- **Success Metric:** Recall โฅ 85%- **Use Case:** Proactive retention campaign- **Business Value:** Reduce churn โ increase lifetime value:::### **Step 2: Data Collection** (๐)Kualitas data menentukan kualitas model. "Garbage in, garbage out."**Tujuan:**- Kumpulkan data relevan untuk problem- Pastikan sufficient volume- Dokumentasikan sumber data**Pertimbangan:**- Apakah data memiliki signal yang cukup?- Apakah available features relevant dengan target?- Bagaimana distribusi data? (Balanced/imbalanced?)- Apakah ada data quality issues?### **Step 3: Data Preprocessing** (๐งน)Data real-world selalu "kotor". Preprocessing adalah ~70% pekerjaan data science!**Aktivitas utama:**- Handle missing values- Remove/treat outliers- Encode categorical variables- Scale/normalize numerical features- Handle class imbalance (jika applicable)```{python}#| echo: true#| eval: true#| code-fold: true#| code-summary: "Klik untuk melihat contoh data preprocessing"import pandas as pdimport numpy as np# Dataset dengan issuesraw_data = {'Age': [25, 35, np.nan, 45, 50, 200], # Missing & outlier'Income': [30000, 50000, 45000, np.nan, 75000, 80000],'City': ['Jakarta', 'Bandung', 'Jakarta', 'Surabaya', 'Jakarta', 'Medan'],'IsCustomer': [1, 1, 0, 1, 1, 1]}df_raw = pd.DataFrame(raw_data)print("๐ด RAW DATA (Problems):")print(df_raw)print("\nโ ๏ธ Issues detected:")print("- Missing values: Age (row 2), Income (row 3)")print("- Outlier: Age = 200 (unrealistic untuk usia)")print("- Categorical: City needs encoding for ML")print("\n"+"="*70)print("โ AFTER PREPROCESSING:")df_clean = df_raw.copy()# Handle outliersdf_clean['Age'] = df_clean['Age'].clip(18, 80) # Realistic age range# Fill missing valuesdf_clean['Age'].fillna(df_clean['Age'].median(), inplace=True)df_clean['Income'].fillna(df_clean['Income'].mean(), inplace=True)# Encode categoricaldf_clean['City_encoded'] = pd.factorize(df_clean['City'])[0]df_clean = df_clean.drop('City', axis=1)print(df_clean)print("\nโจ Data ready for modeling!")```### **Step 4: Exploratory Data Analysis** (๐)Sebelum modeling, kita harus understand data secara mendalam.**Aktivitas:**- Univariate analysis (distribusi setiap feature)- Bivariate analysis (relationship antara features)- Multivariate analysis (pattern dalam keseluruhan)- Visualisasi dan statistik deskriptif**Output:** Insights tentang data, feature importance, potential issues### **Step 5: Feature Engineering** (โ๏ธ)Transform raw data menjadi features yang lebih predictive.**Teknik:**- Create polynomial features- Interaction terms- Domain-specific features- Feature selection untuk menghilangkan features tidak penting**Contoh:**```Raw features: BirthDate, CurrentDateโ Engineered feature: Age = CurrentDate - BirthDateโ Better for ML model!```### **Step 6: Model Selection** (๐ค)Pilih algorithm yang sesuai dengan problem type dan karakteristik data.**Pertimbangan:**- Problem type (Classification/Regression/Clustering?)- Data volume (berapa samples?)- Feature dimensionality (berapa features?)- Interpretability requirements- Computational resources available**Best Practice:** Start simple, kemudian add complexity jika diperlukan.### **Step 7: Model Training** (๐)Latih model pada training set.```{python}#| echo: true#| eval: true#| code-fold: true#| code-summary: "Klik untuk melihat contoh training model"from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LogisticRegression# Load sample datairis = load_iris()X, y = iris.data, iris.target# Split train-test (80-20)X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)# Scale features (important for many algorithms)scaler = StandardScaler()X_train_scaled = scaler.fit_transform(X_train)X_test_scaled = scaler.transform(X_test)# Train modelmodel = LogisticRegression(max_iter=200, random_state=42)model.fit(X_train_scaled, y_train)print("โ Model trained successfully!")print(f"\n๐ Training accuracy: {model.score(X_train_scaled, y_train):.4f}")print(f"๐ Test accuracy: {model.score(X_test_scaled, y_test):.4f}")```### **Step 8: Model Evaluation** (โ )Evaluasi dengan metrics yang sesuai untuk problem type.```{python}#| echo: true#| eval: true#| code-fold: true#| code-summary: "Klik untuk melihat model evaluation"from sklearn.metrics import ( classification_report, confusion_matrix, accuracy_score)# Predictionsy_pred = model.predict(X_test_scaled)# Evaluation metricsprint("๐ Classification Report:")print(classification_report(y_test, y_pred, target_names=iris.target_names))print("\n๐ฏ Confusion Matrix:")print(confusion_matrix(y_test, y_pred))print(f"\nโ Overall Test Accuracy: {accuracy_score(y_test, y_pred):.4f}")```### **Step 9: Iterate & Improve** (๐)Jika performance tidak memuaskan, kembali ke langkah sebelumnya:- Tune hyperparameters- Try different algorithms- Get more/better data- Engineer better features- Adjust class weights (jika imbalanced)### **Step 10: Deployment** (๐ฆ)Deploy model ke production environment.**Considerations:**- API endpoint untuk predictions- Batch processing jika diperlukan- Model versioning dan tracking- A/B testing sebelum full rollout### **Step 11: Monitoring & Maintenance** (๐ก๐ง)Monitor model performance di production.**Metrik untuk dipantau:**- Prediction latency- Model accuracy (jika ground truth tersedia)- Data drift (apakah input distribution berubah?)- Concept drift (apakah relationship berubah?)---## 1.5 Tools dan Environment Setup### 1.5.1 Python Ecosystem untuk ML**Core Libraries:**1. **NumPy** - Numerical computing - Arrays, matrices, mathematical operations - Foundation untuk kebanyakan libraries lain2. **Pandas** - Data manipulation - DataFrames untuk data wrangling - Data cleaning, exploratory analysis - SQL-like operations pada data3. **Scikit-learn** - Classical ML algorithms - Supervised learning (classification, regression) - Unsupervised learning (clustering, dimensionality reduction) - Model selection dan evaluation tools4. **Matplotlib & Seaborn** - Data visualization - Create plots, charts, visualizations - Statistical graphics5. **Jupyter/IPython** - Interactive development - Notebooks untuk exploration dan teaching - Code, visualizations, narrative dalam satu document**For Deep Learning (akan di-cover di chapter 5+):**- TensorFlow/Keras- PyTorch- JAX### 1.5.2 Environment Setup::: {.callout-note}## ๐ง Installation Guide**Complete installation guide tersedia di Appendix A: Installation Guide.****Quick Setup:**```bash# Create virtual environmentpython-m venv ml-envsource ml-env/bin/activate# Install essential packagespip install numpy pandas scikit-learn matplotlib seaborn jupyter```Lihat appendix untuk:- Detailed instructions untuk berbagai OS- Troubleshooting tips- Virtual environment best practices:::---## 1.6 Ethical Considerations dalam MLMachine Learning bukan neutral technology. Keputusan dalam setiap step development bisa punya ethical implications yang besar.### 1.6.1 Bias dalam ML**Sumber bias:**1. **Data bias** - Training data tidak representative dari real-world2. **Algorithm bias** - Algoritma inherently biased3. **Human bias** - Biases dalam problem definition, feature selection**Contoh nyata:**- Hiring algorithm yang biased terhadap perempuan- Healthcare algorithm yang underperform untuk minority groups- Loan approval system yang discriminate based on protected attributes### 1.6.2 Fairness, Accountability, dan Transparency**Principles untuk ethical ML:**- **Fairness:** Model treat different groups fairly, tidak ada discrimination- **Accountability:** Clear responsibility untuk model decisions- **Transparency:** Model decisions harus explainable/interpretable### 1.6.3 Privacy Concerns**Issues:**- Model bisa memorize sensitive training data- Adversarial attacks bisa extract private information- GDPR "right to be forgotten" vs model predictions### 1.6.4 Best Practices untuk Ethical ML::: {.callout-tip}## โ Ethical ML Practices1. **Understand your data:** Dari mana data? Apa limitations-nya?2. **Check for bias:** Apakah model perform equally well untuk semua groups?3. **Be transparent:** Explain model decisions ke stakeholders4. **Consider impact:** Bagaimana model decisions mempengaruhi users?5. **Have governance:** Processes untuk monitoring dan addressing issues6. **Document decisions:** Keep track of why certain choices were made:::---## 1.7 Case Study: Churn Prediction untuk TelekomunikasiMari aplikasikan konsep-konsep ini pada case study nyata.### Problem Definition- **Objective:** Prediksi pelanggan yang akan churn (cancel) dalam 3 bulan- **Problem Type:** Binary Classification- **Success Metric:** Recall โฅ 85% (identify 85% of actual churners)### Data Collection & Exploration- Dataset: 7043 customers- Features: Demographics, usage patterns, billing info- Target: Churn (Yes/No)- Class balance: ~26% churn (imbalanced)### Preprocessing- Handle missing values- Encode categorical variables- Scale numerical features- Handle class imbalance dengan SMOTE### ModelingTried several algorithms:- Logistic Regression: 80% recall- **Random Forest: 87% recall** โ Selected- Gradient Boosting: 85% recall### Results- Test Recall: 87.3% โ (exceeds 85% goal)- Precision: 54.2%- Business impact: Saves millions dalam revenue melalui proactive retention---## ๐งช Hands-on Exercise 1**Objektif:** Practice fundamental concepts dengan kode**Instruksi:**1. Buka Jupyter notebook2. Import libraries yang diperlukan (pandas, numpy, sklearn)3. Load Iris dataset4. Explore data (shape, summary statistics)5. Split into train (80%) dan test (20%)6. Scale features dengan StandardScaler7. Train LogisticRegression classifier8. Evaluate dengan accuracy, precision, recall**Bonus:** Visualize confusion matrix---## ๐ Review Questions### Conceptual Questions1. Jelaskan dengan jelas perbedaan antara **supervised learning** dan **unsupervised learning**. Berikan 2 contoh untuk masing-masing dan jelaskan mengapa klasifikasi tersebut tepat.2. Dalam konteks **classification vs regression**, jelaskan perbedaan kedua problem types. Kapan kita gunakan classification? Kapan regression? Berikan contoh nyata untuk masing-masing.3. Jelaskan fenomena **overfitting dan underfitting**. Bagaimana cara mendeteksi keduanya? Apa strategi untuk mengatasinya?4. Mengapa penting untuk memiliki **separate test set** yang tidak disentuh selama training phase? Apa yang terjadi jika kita evaluate model pada training data saja?5. Jelaskan **bias-variance tradeoff**. Bagaimana tradeoff ini mempengaruhi generalization ability model?### Practical Questions6. Diberikan problem: "Prediksi apakah email masuk adalah spam atau bukan." Ini classification atau regression? Supervised atau unsupervised? Jelaskan alasan.7. Jelaskan langkah-langkah apa yang akan Anda lakukan untuk membangun ML model untuk problem di nomor 6.8. Jika training accuracy = 95% tetapi test accuracy = 60%, apa yang terjadi? Apa solusi yang Anda rekomendasikan dan mengapa?9. Anda punya dataset dengan 1000 samples. Berapa yang Anda alokasikan untuk training, validation, dan test? Jelaskan alasan di balik pilihan Anda.10. Dataset Anda sangat imbalanced: 95% negative class, 5% positive class. Bagaimana Anda akan handle imbalance ini? Apa metrik evaluasi yang sesuai?---## ๐ฏ Key Takeaways:โ Machine Learning adalah teknologi powerful untuk memecahkan complex problems dari dataโ Ada tiga tipe utama: **supervised** (labeled), **unsupervised** (no labels), **reinforcement** (reward)โ ML workflow adalah systematic process dari problem definition hingga monitoringโ **Ethical considerations** harus menjadi bagian integral dari development, bukan afterthoughtโ Tools Python (pandas, sklearn, matplotlib) membuat ML accessible dan powerfulโ **Bias-variance tradeoff** adalah fundamental concept yang mengatur model generalization---## ๐ References dan Resources### Bacaan Lebih Lanjut- Goodfellow, I., Bengio, Y., & Courville, A. (2016). *Deep Learning*. MIT Press.- Mรผller, A. C., & Guido, S. (2016). *Introduction to Machine Learning with Python*. O'Reilly.- James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). *An Introduction to Statistical Learning*.### Online Resources- Scikit-learn Documentation: https://scikit-learn.org/- Kaggle Datasets: https://www.kaggle.com/datasets- Papers with Code: https://paperswithcode.com/- Google ML Crash Course: https://developers.google.com/machine-learning/crash-course### Tools & Platforms- Jupyter Notebook: https://jupyter.org/- Anaconda Distribution: https://www.anaconda.com/- Kaggle Notebooks: https://www.kaggle.com/code---## โจ KesimpulanAnda sekarang memiliki pemahaman fundamental tentang **Machine Learning**:- Apa itu ML dan mengapa penting- Tiga tipe learning dan kapan menggunakannya- Workflow lengkap dari problem definition hingga deployment- Tools dan environment untuk ML development- Ethical considerations dalam MLDi **Bab 2 (Data Preprocessing & EDA)**, kita akan deep dive ke dalam aspek kritis: bagaimana mempersiapkan data berkualitas tinggi untuk modeling. Data quality adalah fondasi dari model quality! ๐---