Data Science: Housing Price Prediction

Muhammad Razi Fuadi

Sosial Media


0 orang menyukai ini
Suka

Summary

Proyek ini melibatkan exploration, preprocessing, and modeling of housing data untuk memprediksi harga rumah. Tujuannya adalah menerapkan teknik data science untuk membersihkan data, mengeksplorasi hubungan antara fitur-fitur, dan membangun model yang kuat untuk memprediksi harga rumah secara akurat.

Description

1. Tujuan

Tujuan utama dari projek ini adalah memprediksi harga rumah menggunakan berbagai fitur dari dataset perumahan yang diberikan. Hal ini meliputi:

  • Cleaning and preprocessing data.
  • Melakukan exploratory data analysis (EDA) untuk memahami data dengan lebih baik.
  • Membangun dan mengevaluasi model regresi.

2. Dataset

Dataset yang digunakan dalam proyek ini adalah housing.csv, yang mencakup fitur-fitur seperti:

  • longitude
  • latitude
  • housing_median_age
  • total_rooms
  • total_bedrooms
  • population
  • households
  • median_income
  • ocean_proximity
  • median_house_value

3. Metodologi

Memuat library

Memuat dan Memeriksa Data

kita memuat data dan memeriksanya untuk memahami struktur data serta mengidentifikasi masalah seperti nilai yang hilang atau duplikat.

 

4. Exploratory Data Analysis (EDA)

Menggunakan teknik visualisasi untuk mengeksplorasi distribusi data dan hubungan antara fitur-fitur.

 

Distribusi Fitur

Pada bagian ini, kita mengeksplorasi distribusi dari beberapa fitur dalam dataset menggunakan plot distribusi. Tujuan dari EDA adalah untuk memahami karakteristik data dan mengidentifikasi pola, tren, dan anomali dalam data.

Penjelasan:

  • Tujuan: Menampilkan distribusi fitur-fitur dalam dataset.
  • Plot: Kernel Density Estimate (KDE) plot digunakan untuk menunjukkan distribusi data secara halus.
  • Fitur yang dianalisis: longitude, latitude, housing_median_age, total_rooms, total_bedrooms, population, households, median_income, median_house_value.

 

Eksplorasi Fitur median_income

Eksplorasi fitur median_income bertujuan untuk melihat distribusi pendapatan median di daerah perumahan yang dianalisis.

Penjelasan:

  • count: Jumlah nilai unik dalam median_income.
  • mean: Rata-rata dari nilai median_income.
  • std: Standar deviasi dari nilai median_income, menunjukkan variasi data.
  • min: Nilai minimum median_income.
  • percentiles (25%, 50%, 75%): Nilai persentil, memberikan gambaran tentang distribusi data.

Penjelasan:

  • Data dibagi menjadi beberapa bin berdasarkan rentang nilai median_income.
  • Count plot: Menampilkan jumlah data dalam setiap bin.

 

Eksplorasi Fitur ocean_proximity

Eksplorasi fitur ocean_proximity bertujuan untuk melihat distribusi dari kedekatan rumah dengan laut.

Penjelasan:

  • count: Jumlah nilai dalam ocean_proximity.
  • unique: Jumlah kategori unik dalam ocean_proximity.
  • top: Kategori yang paling sering muncul.
  • freq: Frekuensi kemunculan kategori yang paling sering.

Penjelasan:

  • Count plot: Menampilkan jumlah data dalam setiap kategori ocean_proximity.
  • Order: Mengurutkan kategori berdasarkan frekuensi.
  • Persentase: Menampilkan persentase dari setiap kategori di atas batang plot.

Kesimpulan dari EDA:

  • Distribusi Fitur: Memberikan gambaran tentang bagaimana setiap fitur terdistribusi dalam dataset.
  • median_income: Menunjukkan bahwa sebagian besar pendapatan median berada di rentang 0-2.
  • ocean_proximity: Menunjukkan bahwa sebagian besar rumah berada dalam kategori "<1H OCEAN", artinya kebanyakan rumah berada dalam jarak kurang dari satu jam dari laut.

EDA ini membantu dalam memahami data dengan lebih baik sebelum melakukan pemodelan lebih lanjut, seperti regresi atau analisis lainnya.

5. Preprocessing Data

Menangani nilai yang hilang, mengonversi variabel kategori, dan melakukan skala fitur.

Menangani nilai yang hilang

Mengonversi fitur kategori

Membagi data

Melakukan skala data

 

6. Pelatihan dan Evaluasi Model

Membangun dan mengevaluasi model Regresi Linier.

Regresi Linear

Regresi linear adalah teknik dasar dalam statistik dan machine learning yang digunakan untuk memodelkan hubungan antara variabel dependen (target) dan satu atau lebih variabel independen (fitur). Tujuan regresi linear adalah menemukan garis lurus yang paling baik menjelaskan hubungan antara variabel tersebut.

Kegunaan:

  • Prediksi: Menggunakan fitur untuk memprediksi nilai target.
  • Analisis: Memahami hubungan linier antara fitur dan target.
  • Penjelasan: Membantu dalam memahami kontribusi setiap fitur terhadap nilai target.

Hasil:

  • Training Accuracy: 63.69%
  • Testing Accuracy: 62.84%
  • R2 Score: 0.628388
  • Adjusted R2 Score: 0.628156
  • Mean Squared Error (MSE): 4,877,557,662.94
  • Mean Absolute Error (MAE): 51,282.86

 

Ridge Regression

Ridge regression adalah bentuk regularisasi dari regresi linear yang menambahkan penalti untuk koefisien yang besar ke fungsi loss. Ini membantu mencegah overfitting dengan mengurangi kompleksitas model. Penalti yang digunakan adalah kuadrat dari koefisien (L2 regularization).

Kegunaan:

  • Mengurangi overfitting dengan menambahkan penalti terhadap besar koefisien.
  • Menghasilkan model yang lebih stabil ketika ada multikolinieritas (hubungan antar fitur) dalam data.

Hasil:

  • Training Accuracy: 63.69%
  • Testing Accuracy: 62.84%
  • R2 Score: 0.628426
  • Adjusted R2 Score: 0.628194
  • Mean Squared Error (MSE): 4,877,051,315.98
  • Mean Absolute Error (MAE): 51,278.56

Lasso Regression

Lasso regression juga merupakan bentuk regularisasi dari regresi linear yang menambahkan penalti untuk koefisien yang besar ke fungsi loss, tetapi penalti yang digunakan adalah nilai absolut dari koefisien (L1 regularization). Lasso regression memiliki kemampuan untuk melakukan seleksi fitur dengan menetapkan beberapa koefisien menjadi nol.

Kegunaan:

  • Mengurangi overfitting dengan menambahkan penalti terhadap besar koefisien.
  • Melakukan seleksi fitur otomatis dengan menetapkan beberapa koefisien menjadi nol, sehingga menghasilkan model yang lebih sederhana.

Hasil:

  • Training Accuracy: 63.69%
  • Testing Accuracy: 62.84%
  • R2 Score: 0.628393
  • Adjusted R2 Score: 0.628161
  • Mean Squared Error (MSE): 4,877,492,371.21
  • Mean Absolute Error (MAE): 51,282.58

 

Ketiga model ini memiliki performa yang serupa, tetapi ada beberapa perbedaan penting yang perlu diperhatikan:

  • Ridge Regression memiliki R2 Score dan Adjusted R2 Score yang sedikit lebih tinggi dibandingkan dengan Regresi Linear dan Lasso Regression, serta MAE yang sedikit lebih rendah, yang menunjukkan bahwa Ridge Regression sedikit lebih baik dalam memprediksi harga rumah.
  • Lasso Regression melakukan seleksi fitur, yang bisa menghasilkan model yang lebih sederhana dan lebih mudah diinterpretasi.
  • Regresi Linear adalah model paling dasar dan tidak menggunakan regularisasi, sehingga bisa lebih rentan terhadap overfitting jika fitur-fiturnya memiliki multikolinieritas atau terlalu banyak fitur dibandingkan dengan jumlah data.

Model Ridge Regression tampaknya memberikan performa terbaik dalam hal R2 Score dan MAE, menjadikannya pilihan yang baik untuk prediksi harga rumah dalam konteks data ini.

Informasi Course Terkait
  Kategori: Data Science / Big Data
  Course: Analisa Data Spatial Machine Learning Menggunakan R