Foto User
EDA & Data Preprocessing on House Price Prediction

Ihsan Jatnika

Sosial Media


3 orang menyukai ini
Suka

Summary

Tujuan proyek ini adalah untuk menganalisis dan mempersiapkan dataset House Price Prediction agar dapat digunakan untuk pemodelan menggunakan algoritma machine learning.

Description

EDA and Data Preprocessing on House Price Prediction Dataset

Tujuan

Tujuan proyek ini adalah untuk menganalisis dan mempersiapkan dataset House Price Prediction agar dapat digunakan untuk pemodelan menggunakan algoritma machine learning.

Nama dataset (House Price Prediction) menunjukkan bahwa dataset ini diharapkan dapat digunakan untuk membuat model prediksi nilai price berdasarkan atribut suatu rumah. Maka proyek ini mengarah pada analisis dan persiapan data untuk keperluan jenis pemodelan prediksi/estimasi/regresi.

Load Data

Nama dataset: houseprice.csv

Sumber: https://www.kaggle.com/datasets/shree1992/housedata

 

Data Understanding

Berdasarkan penelusuran terhadap sumber data tidak diperoleh keterangan memadai terkait informasi dari setiap kolom yang ada dalam dataset. Namun dari informasi di atas diketahui bahwa dataset tersebut:

  1. memiliki 18 atribut/kolom dan terdiri dari 4600 data/baris
  2. terdapat 5 atribut bertipe object dan 13 atribut bertipe numerik.
  3. tidak ada missing value

Informasi statistik deskriptif di atas menunjukkan beberapa hal:

  1. Terdapat nilai minimum 0 untuk atribut price. Perlu dianalisis lebih lanjut untuk melihat jumlah datanya. Jika tidak signifikan maka saya cenderung untuk menghapus data tersebut.
  2. Terdapat beberapa atribut yang nilai max/min-nya jauh dari nilai mean +- std, seperti price, bedrooms, bathrooms, sqft_living, sqft_lot, sqft_above, dan sqft_basement. Atribut-atribut ini diduga memiliki nilai outlier.
  3. Terdapat beberapa atribut yang nilai max/min-nya tidak terlalu jauh dari nilai mean +- std tetapi tetap diduga memiliki nilai outlier, seperti floors dan condition.
  4. Terdapat atribut yang tidak memiliki nilai Q1 dan nilai tengah, seperti waterfront, view, dan sqft_basement. Perlu dianalisis lebih lanjut.
  5. Terdapat atribut yang nilainya numerik tetapi sebetulnya menunjukkan rentet waktu (time series), yaitu yr_built, dan yr_renovated.

 

EDA

Analisis Atribut Price

Tujuannya untuk memastikan atribut price sebagai kandidat label pada dataset berisi nilai yang relevan.

Langkah:

  1. Menghitung jumlah data yang nilai price = 0
  2. Jika prosentase jumlahnya tidak signifikan, hapus data tersebut

Jumlah data yang nilai price = 0 hanya 1,06%. Tindak lanjutnya adalah menghapus data dengan nilai price = 0, atau mengambil seluruh data yang nilai price != 0 (tidak sama dengan nol)

Jumlah data berkurang yang tadinya 4600 menjadi 4551

 

Analisis Korelasi

Tujuannya adalah untuk mengetahui korelasi (seberapa besar pengaruh) atribut-atribut dalam dataset terhadap nilai price.

Langkah:

  1. Mengambil seluruh atribut yang bertipe numerik
  2. Menggunakan fungsi corr() untuk melihat korelasi seluruh atribut terhadap nilai price

Jumlah atribut berkurang dari 18 menjadi 13 atribut.

Terlihat korelasi atribut-atribut terhadap nilai price tidak ada yang mencapai nilai 0.6. Hal ini menunjukkan lemahnya pengaruh atribut-atribut yang ada terhadap nilai price. Perlu dilakukan analisis lebih lanjut terhadap atribut-atribut tersebut.

 

Analisis Outlier

Analisis outlier dilakukan dengan menggunakan diagram boxplot untuk setiap atribut.

Diagram boxplot secara keseluruhan memperlihatkan:

  1. Hanya atribut floorsyr_built, dan yr_renovated yang tidak mengandung nilai outlier. Selain ketiga atribut tersebut seluruhnya mengandung nilai outlier.
  2. Bentuk boxplot untuk atribut pricesqft_lotwaterfrontview, dan yr_renovated tampak tidak proporsional. Perlu analisis lebih lanjut.

 

Data Preprocessing

Analisis Boxplot Tidak Proporsional dan Penanganannya

Menampilkan boxplot price, sqft_lot, waterfront, dan view

Berikut ini berturut-turut akan ditampilkan boxplot untuk atribut price, sqft_lot, waterfront, dan view.

Diagram boxplot di atas menunjukkan bahwa:

  1. Bentuk boxplot untuk atribut price dan sqft_lot sudah proporsional, hanya saja nilai outlier terlalu jauh di atas nilai mean sehingga menyebabkan bentuk boxplot pada diagram sebelumnya menjadi tidak proporsional.
  2. Bentuk boxplot untuk atribut waterfront dan view tetap tidak proporsional. Diduga terlalu banyak nilai 0. Oleh karena itu langkah berikutnya ada menghitung berapa banyak data yang bernilai 0.

 

Menghitung jumlah data yang atributnya bernilai 0

Hasil di atas menunjukkan bahwa terbukti hampir seluruh data pada atribut waterfront dan view bernilai 0 (4521 data dan 4103 data dari total 4551 data). Dengan demikian atribut waterfront dan view dapat dihapus karena tidak relevan.

Atribut sqft_basement juga cukup banyak yang bernilai 0. Namun nilai 0 pada atribut sqft_basement dapat bermakna bahwa rumah tersebut tidak memiliki basement.

Atribut yr_renovated juga cukup banyak yang bernilai 0. Namun karena nilai yr_renovated ini menunjukkan tahun dilakukannya renovasi rumah, maka nilai 0 bermakna rumah tersebut belum pernah direnovasi. Agar nilai yr_renovated tidak bernilai 0 dapat diganti dengan nilai yr_built. Nilai yr_renovated = yr_built akan bermakna sama dengan yr_renovated = 0, yaitu rumah tersebut belum pernah direnovasi.

 

Menghapus atribut waterfront dan view

 

Penanganan Outlier

Penanganan outlier dilakukan dengan melakukan imputasi menggunakan nilai mean, dengan mempertimbangkan jumlah outlier pada setiap atribut. Imputasi akan dilakukan jika jumlah outlier dianggap tidak akan mempengaruhi model yang akan dibuat.

Jumlah outlier setiap atribut berkisar antara 0 hingga 11,86%, sehingga dianggap tidak ada yang akan mempengaruhi model.

Atribut floors dan yr_built tidak memiliki nilai outlier.

Atribut yr_renovated dianggap tidak memiliki outlier. Ini disebabkan karena nilai sesungguhnya adalah nilai yang merupakan tahun dilakukannya renovasi. Sementara selebihnya diambil dari nilai yr_built.

 

Penanganan Oulier pada Label Price

Penanganan outlier pada label (price) cenderung dilakukan dengan menghapus data yang mengandung outlier, daripada melakukan imputasi, karena nilai yang lebih diharapkan pada label adalah nilai aktual.

Jumlah data berkurang sebanyak 240, dari 4551 menjadi 4311

 

Penanganan Outlier pada Atribut Lainnya

 

Analisis Korelasi

Setelah seluruh atribut tidak mengandung nilai outlier, maka kembali dilakukan analisis korelasi untuk melihat atribut-atribut mana yang paling mempengaruhi nilai price.

 

Kesimpulan

Hasil analisis korelasi menunjukkan atribut yang memiliki nilai korelasi >= 0,6 hanya atribut sqft_living. Maka secara umum dapat dimaknai sebagai berikut:

  1. Model yang akan dihasilkan cenderung sederhana, yaitu hanya bergantung pada nliai sqft_living.
  2. Secara umum atribut dalam dataset kurang relevan.
  3. Perlu eksplorasi lebih lanjut terhadap data, seperti misalnya melakukan transformasi fitur, atau penambahan fitur yang lebih relevan.

Informasi Course Terkait
  Kategori: Data Science / Big Data
  Course: Persiapan Sertifikasi Internasional CDSP (Certified Data Science Practitioner)