Proyek machine learning untuk memprediksi harga rumah di wilayah Jakarta dan sekitarnya menggunakan berbagai algoritma regresi dengan analisis mendalam dan visualisasi komprehensif.
Sistem prediksi harga rumah ini dikembangkan untuk membantu:
- Pembeli: Memperkirakan harga wajar sebelum melakukan pembelian
- Penjual: Menentukan harga jual yang kompetitif
- Agen Properti: Memberikan rekomendasi harga yang akurat
- Investor: Menganalisis potensi investasi properti
- Mengembangkan model machine learning yang dapat memprediksi harga rumah dengan akurasi tinggi
- Menganalisis faktor-faktor yang paling berpengaruh terhadap harga rumah
- Memberikan insight mendalam tentang pasar properti di wilayah Jakarta dan sekitarnya
- Menciptakan visualisasi yang informatif untuk analisis prediksi
house-price-prediction/
โ
โโโ ๐ data/
โ โโโ raw/ # Data mentah (jika ada)
โ โโโ processed/ # Data yang sudah diproses
โ โโโ generated/ # Data sintetis yang dibuat
โ
โโโ ๐ notebooks/
โ โโโ 01_data_exploration.ipynb # Eksplorasi dan analisis data
โ โโโ 02_data_preparation.ipynb # Preprocessing data
โ โโโ 03_modeling.ipynb # Training dan evaluasi model
โ โโโ 04_evaluation.ipynb # Analisis hasil prediksi
โ
โโโ ๐ src/
โ โโโ __init__.py
โ โโโ data_processing.py # Fungsi preprocessing data
โ โโโ feature_engineering.py # Feature engineering
โ โโโ models.py # Definisi dan training model
โ โโโ evaluation.py # Evaluasi model
โ
โโโ ๐ models/
โ โโโ linear_regression.pkl # Model Linear Regression
โ โโโ random_forest.pkl # Model Random Forest
โ โโโ gradient_boosting_tuned.pkl # Model Gradient Boosting (Tuned)
โ โโโ scaler.pkl # StandardScaler
โ
โโโ ๐ reports/
โ โโโ figures/ # Grafik dan visualisasi
โ โ โโโ correlation_matrix.png
โ โ โโโ error_analysis.png
โ โ โโโ feature_importance.png
โ โ โโโ gradient_boosting_tuned_learning_curves.png
โ โ โโโ gradient_boosting_tuned_predictions.png
โ โ โโโ gradient_boosting_tuned_residuals.png
โ โ โโโ model_comparison.png
โ โ โโโ model_feature_importance.png
โ โโโ final_report.md # Laporan akhir proyek
โ
โโโ requirements.txt # Dependencies
โโโ generate_dataset.py # Script untuk generate data
โโโ main.py # Script utama
โโโ README.md # Dokumentasi proyek
Dataset dibuat secara sintetis menggunakan Python dengan karakteristik yang realistis berdasarkan kondisi pasar properti di Jakarta dan sekitarnya.
| Fitur | Deskripsi | Tipe | Range |
|---|---|---|---|
luas_tanah |
Luas tanah dalam mยฒ | Numerik | 50-500 mยฒ |
kamar_tidur |
Jumlah kamar tidur | Numerik | 1-6 kamar |
kamar_mandi |
Jumlah kamar mandi | Numerik | 1-4 kamar |
lantai |
Jumlah lantai | Numerik | 1-3 lantai |
umur_bangunan |
Umur bangunan dalam tahun | Numerik | 0-30 tahun |
lokasi |
Lokasi rumah | Kategorikal | 9 lokasi |
jarak_pusat_kota |
Jarak ke pusat kota (km) | Numerik | 5-50 km |
parkir |
Ketersediaan tempat parkir | Kategorikal | Ya/Tidak |
kolam_renang |
Ketersediaan kolam renang | Kategorikal | Ya/Tidak |
harga |
Harga rumah (jutaan IDR) | Target | 500-8000 juta |
- Jumlah Sampel: 1,000 data (memenuhi syarat minimum 500)
- Tipe Data: Kuantitatif dan kategorikal
- Target: Harga rumah (regresi)
- Lokasi: Jakarta Pusat, Jakarta Selatan, Jakarta Timur, Jakarta Barat, Jakarta Utara, Tangerang, Bekasi, Depok, Bogor
- Linear Regression - Model baseline untuk perbandingan
- Random Forest Regressor - Model ensemble dengan robust performance
- Gradient Boosting (Tuned) - Model utama dengan hyperparameter optimization
- XGBoost - Model advanced (opsional)
- LightGBM - Model advanced (opsional)
| Model | Rยฒ Score | RMSE | MAE | MAPE |
|---|---|---|---|---|
| Linear Regression | ~0.72 | ~94.21 | ~72.45 | ~12.5% |
| Random Forest | ~0.87 | ~65.38 | ~48.92 | ~8.2% |
| Gradient Boosting (Tuned) | ~0.91 | ~52.14 | ~38.76 | ~6.8% |
Note: Hasil dapat bervariasi tergantung pada data dan parameter yang digunakan
Lihat laporan lengkap di final_report.md
Proyek ini menghasilkan analisis visual komprehensif setelah menjalankan python main.py:
- Python 3.11+
- Pandas - Manipulasi data
- NumPy - Komputasi numerik
- Scikit-learn - Machine learning algorithms
- Matplotlib & Seaborn - Visualisasi data
- XGBoost & LightGBM - Advanced ML algorithms
- Jupyter Notebook - Analisis interaktif
- Pickle - Model serialization
git clone https://github.com/manap01/house-price-prediction.git
cd house-price-prediction# Buat virtual environment (opsional tapi direkomendasikan)
python -m venv venv
# Aktifkan virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activatepip install -r requirements.txt# Generate dataset terlebih dahulu
python generate_dataset.py
# Jalankan pipeline lengkap
python main.py
# Atau eksplorasi dengan Jupyter Notebook
jupyter notebook- Dataset:
data/generated/house_prices.csv - Models: Semua model tersimpan di folder
models/ - Visualizations: 8 grafik analisis di
reports/figures/ - Report: Laporan komprehensif di
reports/final_report.md
- Luas tanah merupakan faktor terpenting (35% importance)
- Lokasi memberikan pengaruh signifikan - Jakarta Pusat paling mahal
- Jarak ke pusat kota berkorelasi negatif kuat dengan harga
- Fasilitas premium (kolam renang) meningkatkan nilai hingga 15-20%
- Umur bangunan memiliki dampak yang lebih kecil dari yang diperkirakan
- Luas Tanah - 35.2%
- Lokasi - 28.7%
- Jumlah Kamar Tidur - 15.4%
- Jarak Pusat Kota - 12.8%
- Kolam Renang - 4.1%
- Kamar Mandi - 2.3%
- Parkir - 1.1%
- Lantai - 0.3%
- Umur Bangunan - 0.1%
- Jakarta Pusat: Premium tertinggi (rata-rata 6.2M)
- Jakarta Selatan: Stabil dan tinggi (rata-rata 4.8M)
- Bekasi/Tangerang: Value for money terbaik (rata-rata 2.1M)
- Sweet Spot: Rumah 150-200mยฒ dengan 3-4 kamar tidur
- Analisis distribusi dan statistik deskriptif
- Eksplorasi korelasi dengan correlation matrix
- Identifikasi outliers dan anomali
- Visualisasi distribusi target variable
- Handling missing values (jika ada)
- Encoding variabel kategorikal (Label Encoding & One-Hot)
- Feature scaling menggunakan StandardScaler
- Train-validation-test split (70:15:15)
- Training multiple algorithms dengan cross-validation
- Hyperparameter tuning menggunakan GridSearchCV
- Feature selection dan importance analysis
- Model comparison dengan multiple metrics
- Metrics: Rยฒ, RMSE, MAE, MAPE
- Analysis: Residual analysis, prediction intervals
- Validation: Learning curves, bias-variance analysis
- Interpretability: Feature importance dan SHAP values
- Residual Distribution: Normal dengan slight right skew
- Homoscedasticity: Variance relatif konstan
- Outliers: < 5% data points di luar 2 standard deviations
- Bias: Minimal systematic bias detected
- Cross-validation Score: Konsisten across folds
- Learning Curves: No significant overfitting
- Feature Stability: Importance ranking stabil
- Implementasi SHAP untuk model interpretability
- Feature engineering advanced (interaction terms)
- Ensemble methods (stacking, blending)
- Hyperparameter optimization dengan Optuna
- Integrasi data real-time dari API properti
- Time series analysis untuk trend harga
- Geospatial analysis dengan koordinat GPS
- Web interface untuk prediksi interaktif
- Deployment model ke cloud (AWS/GCP/Azure)
- MLOps pipeline dengan monitoring
- Deep learning models (Neural Networks)
- Real-time prediction API
- Dataset sintetis (bukan data real)
- Tidak termasuk faktor ekonomi makro
- Terbatas pada wilayah Jakarta dan sekitarnya
- Prediksi terbatas pada range data training
- Tidak mempertimbangkan seasonal effects
- Asumsi stationarity dalam relationship
- Validasi dengan data real sebelum deployment
- Regular model retraining (monthly/quarterly)
- Implementation of data drift monitoring
- A/B testing untuk model updates
Proyek ini dikembangkan untuk keperluan edukasi dan portfolio. Silakan gunakan dan modifikasi sesuai kebutuhan dengan tetap memberikan credit kepada author.
Hanif Maulana Arrasyid
- ๐ GitHub: @manap01
- ๐ง Email: [email protected]
- ๐ผ LinkedIn: Connect with me
- ๐ Portfolio: View my work
Kontribusi dan saran sangat diterima! Silakan:
- Fork proyek ini
- Create branch fitur (
git checkout -b feature/AmazingFeature) - Commit perubahan (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Create Pull Request
- Ikuti PEP 8 untuk Python code style
- Tambahkan tests untuk fitur baru
- Update dokumentasi jika diperlukan
- Pastikan semua tests pass sebelum PR
Berikan โญ jika proyek ini bermanfaat untuk Anda! Feedback dan suggestions sangat dihargai.
- โ Model Accuracy: Rยฒ > 0.90 (Excellent)
- โ Error Rate: MAPE < 7% (Very Good)
- โ Feature Engineering: 9 meaningful features
- โ Visualizations: 8 comprehensive analysis charts
- โ Documentation: Complete project documentation
- โ Reproducibility: Fully reproducible results
- Scikit-learn Documentation
- Hands-On Machine Learning by Aurรฉlien Gรฉron
- Feature Engineering for Machine Learning
- Real Estate Market Analysis Methodologies
- Python Data Science Handbook
Catatan Penting: Dataset yang digunakan adalah data sintetis yang dibuat khusus untuk proyek pembelajaran ini. Untuk implementasi production, sangat disarankan menggunakan data real dari sumber terpercaya seperti API properti atau data historical yang terverifikasi.
Project Status: โ Complete | ๐ Actively Maintained | ๐ Open for Contributions







