Skip to content

rifaldomalau/California-Housing-Dataset

Repository files navigation

🏠 Prediksi Harga Rumah: Perbandingan Ridge, Lasso, & Elastic Net Regression

Project ini nyoba ngebandingin tiga model regression yang sama-sama dari keluarga Linear Regression, tapi beda gaya dalam “mengatur koefisien” biar gak overfitting:

  • 🧘 Ridge Regression → ngecilin koefisien, tapi gak hapus fitur.
  • ✂️ Lasso Regression → bisa hapus fitur yang dianggap gak penting.
  • ⚖️ Elastic Net Regression → kombinasi dua gaya di atas (lebih fleksibel).

Dataset yang dipakai: California Housing Dataset — berisi 20.640 data wilayah di California lengkap sama fitur-fitur seperti MedInc, HouseAge, AveRooms, AveOccup, Latitude, dan Longitude.


💡 Tujuan

Ngebandingin performa ketiga model regression dalam menebak harga median rumah (MedHouseVal) berdasarkan fitur lingkungan dan sosial ekonomi.


🧩 Struktur Dataset

Kolom Keterangan
MedInc Pendapatan rata-rata per blok (x10,000 USD)
HouseAge Umur rata-rata rumah di area itu
AveRooms Jumlah rata-rata kamar per rumah
AveBedrms Jumlah rata-rata kamar tidur
Population Total penduduk
AveOccup Rata-rata penghuni per rumah
Latitude Garis lintang
Longitude Garis bujur
MedHouseVal Harga median rumah (target)

⚙️ Langkah Utama

1️⃣ Import Dataset

Pake fetch_california_housing dari sklearn.datasets. Data otomatis keambil langsung dari library scikit-learn.

2️⃣ Pisahin Fitur & Target

X = df.drop('MedHouseVal', axis=1)  # fitur
y = df['MedHouseVal']               # target (harga rumah)

axis=1 artinya kita hapus kolom target dari kolom horizontal (kolom, bukan baris).

3️⃣ Bagi Data jadi Training & Testing

Pake train_test_split() biar AI bisa belajar dari 80% data dan diuji di 20% sisanya.

4️⃣ Standarisasi Data

Biar tiap fitur punya skala seimbang (ngindarin dominasi fitur gede kayak pendapatan).

5️⃣ Latih 3 Model Sekaligus

ridge_model = Ridge(alpha=1.0)
lasso_model = Lasso(alpha=0.1)
elastic_model = ElasticNet(alpha=0.1, l1_ratio=0.5)
  • alpha = seberapa keras “hukuman” buat koefisien besar.
  • l1_ratio (khusus ElasticNet) = seimbangin antara gaya Lasso (L1) dan Ridge (L2).

6️⃣ Evaluasi Hasil

Gunain dua metrik:

  • MSE (Mean Squared Error) → seberapa jauh prediksi dari nilai asli.
  • R² Score → seberapa kuat model ngejelasin variabel target.

7️⃣ Visualisasi

Dibikin grafik batang buat ngebandingin nilai MSE dan R² semua model biar lebih mudah liat siapa jagonya.


📊 Hasil Singkat

Model MSE ↓ R² ↑ Catatan
Ridge Paling stabil Tinggi Cocok buat data multikolinearitas
Lasso Sedikit lebih tinggi Turun dikit Cocok buat seleksi fitur
Elastic Net Seimbang Konsisten Kombinasi terbaik overall

🖥️ Cara Jalanin Project

  1. Clone atau download repo ini.

    git clone https://github.com/rifaldomalau/California-Housing-Dataset.git
    cd California-Housing-Dataset
  2. Install dependencies:

    pip install -r requirements.txt
  3. Jalankan notebook:

    jupyter notebook California-Housing-Dataset.ipynb
  4. Baca setiap cell karena semua code udah dikasih komentar penjelasan lengkap 👀


💬 Catatan

  • Model bisa di-tuning lagi dengan grid search biar hasilnya makin optimal.
  • Ridge cocok kalau semua fitur relevan.
  • Lasso bagus buat “nyaring” fitur.
  • Elastic Net aman buat kombinasi keduanya.

📌 Project by: Hot Malau 📅 Tema: Supervised Learning – Regression (Regularized Linear Models) 🚀 Tools: Python + Scikit-learn + Matplotlib + Seaborn + Pandas

About

Artificial Intelligence -> Machine Learning (ML) -> Supervised Learning -> Regression -> Ridge Regression + Lasso Regression + Elastic Net Regression

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors