Ihsan Jatnika
Tujuan proyek ini adalah untuk menganalisis dan mempersiapkan dataset House Price Prediction agar dapat digunakan untuk pemodelan menggunakan algoritma machine learning.
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
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:
Informasi statistik deskriptif di atas menunjukkan beberapa hal:
Tujuannya untuk memastikan atribut price sebagai kandidat label pada dataset berisi nilai yang relevan.
Langkah:
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
Tujuannya adalah untuk mengetahui korelasi (seberapa besar pengaruh) atribut-atribut dalam dataset terhadap nilai price.
Langkah:
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 dilakukan dengan menggunakan diagram boxplot untuk setiap atribut.
Diagram boxplot secara keseluruhan memperlihatkan:
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:
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 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 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
Setelah seluruh atribut tidak mengandung nilai outlier, maka kembali dilakukan analisis korelasi untuk melihat atribut-atribut mana yang paling mempengaruhi nilai price.
Hasil analisis korelasi menunjukkan atribut yang memiliki nilai korelasi >= 0,6 hanya atribut sqft_living. Maka secara umum dapat dimaknai sebagai berikut: