Tugas 3 Praktikum Sains Data: Klasifikasi Gambar
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 3 adalah:
Nama Lengkap_NPM_Kelas SIAK_Tugas3PrakSaindat.ipynb
Contoh penamaan yang benar:
William Rowan Hamilton_2201234567_Kelas H_Tugas3PrakSaindat.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_Tugas3PrakSaindat_revisi.ipynb (atau .zip)
William Rowan Hamilton_2201234567_Kelas H_Tugas3PrakSaindat_revisi2.ipynb
William Rowan Hamilton_2201234567_Kelas H_Tugas3PrakSaindat_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
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 3 Saindat: Dani (LINE: 123_dani)
- Umum: Zaki (LINE: linenyazaki)
Soal
Diberikan dataset gambar CIFAR-10 yang dapat dimuat menggunakan fungsi berikut di Python
from keras.datasets import cifar10
= cifar10.load_data() (X_train, y_train), (X_test, y_test)
Dataset ini berisi 60.000 gambar berwarna berukuran 32x32 piksel dalam 10 kelas berbeda, seperti: pesawat, mobil, burung, kucing, rusa, anjing, katak, kuda, kapal, dan truk. Dataset ini sudah terbagi menjadi 50.000 data latih dan 10.000 data uji. Tujuan Anda adalah membangun model klasifikasi untuk memprediksi kelas dari gambar-gambar ini (multi-class classification). Lakukan end-to-end Deep Learning, atau lebih tepatnya end-to-end CNN Image Classification, yang meliputi:
Langkah preprocessing yang sekiranya diperlukan.
EDA: Lakukan eksplorasi data dengan membuat visualisasi dari sebagian gambar dan distribusi kelas
Modelling: Buatlah minimal 2 model masing-masing:
Model CNN sederhana
Gunakan model berbasis transfer learning, seperti ResNet, VGGNet, EfficientNet, dsb., yaitu model yang sebelumnya sudah dilatih (pretrained) di dataset besar seperti ImageNet, lalu kalian adaptasikan untuk tugas klasifikasi pada CIFAR-10.
Evaluasi model klasifikasi: Untuk kedua model klasifikasi yang telah Anda bangun, lakukan evaluasi dengan:
- Menampilkan atau menghitung metrik evaluasi untuk klasifikasi multi-kelas (misalnya akurasi, precision, recall, F1-score, dsb).
- Menampilkan grafik garis (line plot) yang membandingkan train accuracy vs validation accuracy selama proses pelatihan.
- Berdasarkan hasil evaluasi tersebut, bandingkan performa kedua model dari sisi metrik evaluasi, jumlah total parameter, dan waktu komputasi (running time). Tentukan model mana yang menurut Anda paling baik secara keseluruhan, disertai dengan alasannya