Tugas 1 Praktikum Sains Data: Model Regresi
Kembali ke Sains Data
Petunjuk Umum
Kerjakan secara individu.
Kerjakan tugas ini menggunakan bahasa pemrograman Python dengan file format berupa interactive Python notebook (yaitu file berbentuk .ipynb BUKAN .py), yang bisa dibuat misalnya menggunakan Jupyter Notebook atau Google Colaboratory.
Harap sertakan penjelasan untuk setiap proses secara singkat di samping potongan kode (bisa dengan teks / text box maupun dengan comment, ‘#’).
Format nama file untuk Tugas 1 adalah:
Nama Lengkap_NPM_Kelas SIAK_Tugas1PrakSaindat.ipynb
Contoh penamaan yang benar:
William Rowan Hamilton_2201234567_Kelas H_Tugas1PrakSaindat.ipynb
Untuk mengumpulkan lebih dari satu file, gunakan
.zip
dengan format nama yang sama (dan file.ipynb
yang di dalamnya juga masih menggunakan format nama yang sama).Apabila ada yang ingin direvisi setelah pengumpulan, lakukan pengumpulan ulang di Google Forms yang sama, tambahkan keterangan bahwa ada revisi, dan tambahkan kata “revisi” pada bagian akhir nama file, contohnya menjadi
William Rowan Hamilton_2201234567_Kelas H_Tugas1PrakSaindat_revisi.ipynb (atau .zip)
William Rowan Hamilton_2201234567_Kelas H_Tugas1PrakSaindat_revisi2.ipynb
William Rowan Hamilton_2201234567_Kelas H_Tugas1PrakSaindat_revisi3.ipynb
(tentunya gunakan
.zip
kalau ada lebih dari satu file yang ingin dikumpulkan)(Revisi boleh dilakukan berkali-kali selama masa pengerjaan.)
Pengumpulan tugas dilakukan ke Google Forms berikut ini, sesuai dengan kelas Anda di SIAK NG (link akan selalu sama untuk semua tugas praktikum Sains Data):
Kelas A: https://forms.gle/bR6xj1u7kmKCnoRA7
Kelas B: https://forms.gle/5ZQgBXDLKiPXjQqP7
Dengan durasi pengerjaan sekitar 1 (satu) bulan, tenggat waktu (deadline) pengumpulan Tugas 1 ini (termasuk revisi) adalah:
Sabtu, 10 Mei 2024, pukul 23.59 WIB.
Mohon manfaatkan waktu Anda dengan baik (seperti mencicil pengerjaan, bahkan sudah selesai dari jauh-jauh hari) agar mengumpulkan tugas sebelum deadline. Keterlambatan pengumpulan bisa dikenakan pengurangan nilai atau bahkan dianggap tidak mengumpulkan, tergantung kesepakatan dari dosen. Meskipun demikian, lebih baik terlambat mengumpulkan daripada tidak mengumpulkan sama sekali.
Gunakan module (python package) yang telah dipelajari di praktikum atau kelas. Anda diperbolehkan untuk menggunakan module (python package) lain dengan catatan bahwa Anda harus menuliskan penjelasan singkat mengenai module tersebut.
Untuk setiap proses sains data (pembersihan data, transformasi data, EDA, dan pemodelan) yang dilakukan Anda diperlukan untuk menuliskan justifikasi-nya. Justifikasi yang dimaksud dapat berupa penjelasan singkat mengenai proses yang dilakukan, dan penjelasan mengenai alasan mengapa anda melakukan proses tersebut.
Sesuai standar Universitas Indonesia, plagiarisme dilarang keras dan bisa menyebabkan nilai tugas praktikum menjadi nol untuk semua pihak yang terlibat, tanpa peringatan apapun. Namun, Anda boleh memanfaatkan kode apapun yang ada di modul praktikum.
Narahubung:
- Tugas 1 Saindat: Pandu (LINE: pandu.adj)
- Umum: Zaki (LINE: linenyazaki)
Soal
Dataset yang digunakan adalah dataset harga properti rumah, house_prices.csv
, yang bisa di-download dari tautan berikut:
Di dataset ini, fitur target yang ingin diprediksi adalah harga properti rumah (SalePrice
) dalam satuan dollar. Perhatikan, fitur ini berupa harga, sehingga metode machine learning yang cocok untuk prediksi adalah metode regresi.
Jika ingin melihat deskripsi lebih rinci mengenai tiap fitur pada dataset, silahkan buka file .txt
berikut:
Lakukan end-to-end machine learning, atau lebih tepatnya end-to-end regression, yang meliputi:
Langkah preprocessing yang sekiranya diperlukan: bisa meliputi transformasi data, seleksi fitur, imputasi, encoding, standarisasi, normalisasi, dsb. Berikan juga keterangan/penjelasan, mengapa Anda melakukan langkah preprocessing tersebut.
EDA: cobalah menduga, kira-kira fitur/kolom/variabel apa saja yang memiliki hubungan yang erat atau menarik? Lakukan eksplorasi dengan membuat visualisasi dari fitur-fitur tersebut. Anda bebas membuat plot apa saja yang sekiranya cocok.
Lalu, tuliskan penjelasan atau interpretasi Anda untuk tiap hasil visualisasi (misalnya dugaan Anda benar/salah, atau Anda memperoleh informasi/insight baru dari visualisasi tersebut).
Lakukan train-test-split (rasionya bebas, misal 80:20). Jangan lupa gunakan suatu
random_state
.Modelling: Buatlah minimal 2 model regresi linier sederhana atau regresi linier berganda. Gunakan fitur terbaik berdasarkan hasil EDA yang dilakukan sebelumnya sebagai variabel prediktor dari model. Jelaskan pula mengapa fitur yang anda pilih merupakan fitur terbaik. Kemudian, lakukan fitting dataset pada model tersebut dan tampilkan (boleh secara pemrograman maupun manual) taksiran koefisien-koefisien yang diperoleh dalam bentuk rumus umum regresi, yaitu (masukkan nilai-nilai \(\beta\) yang sesuai):
\[\hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x\]
(untuk regresi linier sederhana), atau
\[\hat{y} = \hat{\beta}_0 + \hat{\beta}_1 x_1 + \hat{\beta}_2 x_2 + \dots\]
(untuk regresi linier berganda)
Berikan interpretasi dari setiap koefisien-koefisien yang didapat tersebut.
Evaluasi model regresi: untuk model-model regresi yang telah Anda buat, hitunglah metrik evaluasi untuk regresi, seperti MSE (mean squared error), \(R^2\), dll. kemudian berikan interpretasinya. Terakhir berikan kesimpulan dari model yang sudah anda buat, model regresi mana yang terbaik? apakah model tersebut sudah cukup baik?