Pertemuan 07: Hands-on Supervised Learning
Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:
- Mengimplementasikan full ML pipeline dari raw data hingga final model
- Menyelesaikan case study klasifikasi fasies seismik end-to-end
- Membuat model prediksi properti reservoir dari well log
- Melakukan interpretasi dan validasi hasil model dengan domain knowledge
- Mempresentasikan hasil analisis ML secara profesional
Ringkasan Materi
1. End-to-End ML Pipeline
Implementasi complete workflow dari raw data hingga model deployment mencakup tahapan: Data loading & inspection, Data preprocessing (cleaning, transformation), Feature engineering, Model selection & training, Hyperparameter tuning, Model evaluation, dan Result interpretation.
2. Case Study: Seismic Facies Classification
Practical implementation klasifikasi 9 tipe facies dari seismic attributes. Dataset: F3 Block North Sea dengan atribut amplitude, envelope, instantaneous frequency, phase, dll.
# Complete pipeline example
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
# 1. Load data
df = pd.read_csv('F3_seismic_facies.csv')
# 2. Prepare features and target
features = ['amplitude', 'envelope', 'inst_freq', 'inst_phase', 'sweetness']
X = df[features]
y = df['facies']
# 3. Split data
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
# 4. Scale features
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 5. Train model
model = RandomForestClassifier(
n_estimators=200,
max_depth=25,
min_samples_split=5,
class_weight='balanced',
random_state=42,
n_jobs=-1
)
model.fit(X_train_scaled, y_train)
# 6. Evaluate
y_pred = model.predict(X_test_scaled)
print(classification_report(y_test, y_pred))
print(f"Accuracy: {model.score(X_test_scaled, y_test):.3f}")
# 7. Feature importance
for feat, imp in zip(features, model.feature_importances_):
print(f"{feat}: {imp:.3f}")
3. Case Study: Well Log Property Prediction
Prediksi porositas dan permeabilitas dari well log curves. Input features: GR, RHOB, NPHI, DT, RESDEEP. Target: PHIT (total porosity) dan PERM (permeability).
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.linear_model import Ridge
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
import numpy as np
# Compare multiple models
models = {
'Ridge': Ridge(alpha=1.0),
'Random Forest': RandomForestRegressor(n_estimators=100, random_state=42),
'Gradient Boosting': GradientBoostingRegressor(n_estimators=100, random_state=42)
}
results = []
for name, model in models.items():
model.fit(X_train_scaled, y_train)
y_pred = model.predict(X_test_scaled)
r2 = r2_score(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
results.append({
'Model': name,
'R²': r2,
'MAE': mae,
'RMSE': rmse
})
# Display results
results_df = pd.DataFrame(results)
print(results_df)
4. Model Interpretation
- Feature Importance: Which well log curves matter most?
- Error Analysis: Where does model fail? Geological reasons?
- Prediction Confidence: Analyze prediction uncertainty
- Domain Validation: Do results make geological sense?
5. Best Practices Checklist
- Always validate with domain expert (geoscientist)
- Document all preprocessing steps for reproducibility
- Test model on completely unseen wells/seismic sections
- Compare ML results with physics-based methods
- Consider uncertainty quantification
- Clean, well-documented Jupyter notebook
- Technical report dengan methodology dan findings
- Visualizations dan interpretations
- Presentation slides (10-15 menit)
- Code yang reproducible dan modular
Resources Tambahan
Tugas & Latihan
- Complete end-to-end facies classification project dari raw seismic data hingga final model
- Implement well log property prediction dengan minimal 3 algorithms (comparison study)
- Create comprehensive technical report dengan visualizations dan interpretations
- Prepare presentation (10-15 menit) tentang methodology, findings, dan business insights
- Submit clean Jupyter notebook dengan dokumentasi lengkap dan reproducible results
Persiapan Pertemuan Selanjutnya
Pada pertemuan berikutnya, kita akan membahas , kita akan melakukan UTS (Ujian Tengah Semester). Pastikan Anda sudah:
- Review semua materi pertemuan 1-7
- Latihan soal-soal tentang data wrangling, EDA, supervised learning
- Pahami konsep-konsep fundamental ML dan aplikasinya di geofisika
- Persiapkan coding skills untuk potential practical exam