Fira Yusi Rukmana
Portofolio ini dikerjakan untuk melengkapi tugas akhir free course bisa.ai Data Science yang saya ikuti. Tugas yang diberikan yaitu membuat klasifikasi data menggunakan machine learning dengan jupyter notebook pada komputer ataupun google colaboratory dengan mengambil dataset dari kaggle.com. Studi kasus yang diambil yaitu menganalisis dataset titanic dan memprediksi survived dari penumpang kapal. Metode yang digunakan yaitu:
Hasil yang diperoleh yaitu dari 12 kolom, hanya 7 kolom yang digunakan untuk analisis data. Akurasi yang diperoleh dari algortima naive bayes yaitu 82%.
Description
Classification yaitu proses memprediksi kelas atau label dalam sebuah kumpulan dataset yang terdiri dari variabel dependent atau atribut. Metode classification diterapkan pada data supervised yaitu data yang telah memiliki label atau kelas. Untuk melakukan klasifikasi, saya menggunakan salah satu algoritma dari machine learning yaitu naive bayes. Naive bayes adalah metode klasifikasi data berdasarkan probabilitas dari suatu peristiwa yang telah terjadi. Metode ini cocok untuk klasifikasi binner dan multiclass. Teknik ini dapat dimanfaatkan untuk mengevaluasi banyak hal, seperti perkiraan cuaca. Perkiraan cuaca akan memprediksi apakah besok akan cerah atau tidak dan lain sebagainya.
Dataset
Dataset yang digunakan berdasarkan dari data open source kaggle (https://www.kaggle.com/code/abhishekmamidi/titanic-data-preprocessing-and-visualization/data?select=train.csv) yang mana jumlah data sebanyak 891 baris dengan 12 kolom yang terdiri dari:
Dataset ini nantinya akan di-split untuk dijadikan sebagai data training dan data testing. Sebelum itu data harus dipastikan bersih, tidak terdapat data kosong dan format data sesuai (tidak berantakan).
Exploratory Data Analysis
Pada tahap ini langkah yang dilakukan yaitu pertama mengetahui tipe data pada masing-masing kolom. Hasil yang ditemukan kita harus melakukan encoding pada beberapa kolom seperti kolom ‘sex’ yang masih memuat nilai female dan male.
Kemudian kita mengecek apakah terdapat data kosong. Ternyata ada 3 kolom yang memuat data kosong yaitu age, cabin dan embarked. Untuk kolom age bisa kita handling dengan menggunakan median atau mean. Kemudian untuk kolom cabin, karena dirasa tidak begitu memiliki pengaruh pada proses analisis maka bisa di hapus. Dan untuk kolom embarked hanya terdapat 2 data kosong, maka 2 data tersebut bisa kita hapus karena tidak terllau banyak jumlah data kosongnya.
Kemudian memahami satu per satu deksripsi masing-masing kolom dan nilai yang merepresentasikan dari sebuah data objek. Dari hasil tersebut ternyata kolom pasenger, name, dan ticket tidak memiliki pengaruh pada target. Sehingga bisa dihapus. Kemudian kita bisa membuat kolom baru untuk menjumlahkan antara kolom jumlah sibsp dan parch.
Selanjutnya saya melakukan visualisasi data terhadap beberapa kolom, hasil yang ditemukan sebagai berikut:
Pre-Processing
Setelah itu masuk ke tahap pre-processing. Pada tahap ini hal yang dilakukan yaitu:
Hasil dataset yang diperoleh dari tahap ini yaitu 891 baris dan 8 kolom. Kemudian masing masing kolom memuat tipe data integer atau float sehingga dataset siap untuk dilakukan modelling. Sebelum melakukan modelling, saya mencoba mencari nilai korelasi dari masing-masing kolom, hasil yang didapat yaitu sebagai berikut:
Korelasi terbagi menjadi dua nilai yaitu korelasi positif dan korelasi negatif, sehingga nilai yang mendekati tengah atau 0 artinya tidak memiliki korelasi. Dari hasil korelasi tersebut didapatkan beberapa kesimpulan yaitu:
Dari hasil yang diperoleh pada perhitungan korelasi, kita bisa menggunakan atau memilih atribut yang memiliki kontribusi atau memiliki korelasi paling tinggi dengan target yaitu kolom title, pclass, age.
Sebelum masuk ke tahap modelling kita harus membedakan antara data atribut dan data target. Setelah itu kita membagi dataset menjadi data training dan data testing. Pembagian antara data training dan data testing yaitu 70% dan 30%.
Modelling
Pada tahap ini yang dilakukan yaitu melakukan pelatihan pada data training dengan menggunakan algoritma naive bayes. Algoritma naive bayes merupakan salah satu algoritma kalsifikasi pada machine learning. Algortima ini bisa dikatakan sederhana karena hanya melakukan prediksi berdasarkan peluang dari sebuah kejadian yang telah terjadi.
Pada tahap ini dilakukan 4 jenis data yaitu:
7 kolom terdiri dari kolom: Pclass, Sex, Age, Fare, Embarked, FamilySize, Title
3 kolom terdiri dari kolom: Title,Ppclass, Age
No | Jumlah kolom yang digunakan | Normalisasi | Akurasi |
1 | 7 kolom | Tidak | 0.80 |
2 | 7 kolom | Ya | 0.82 |
3 | 3 kolom | Tidak | 0.75 |
4 | 3 kolom | Ya | 0.73 |
Dari hasil diatas kita bisa melihat ternyata model yang dibangun dari 7 kolom secara rerata akurasi yang dihasilkan cukup baik. Bisa diartikan bahwa nilai korelasi yang digunakan untuk memilih atribut apa yang akan dianalisis sepenuhnya kurang tepat. Hal tersebut bisa dilihat dari akurasi dengan menggunakan 3 kolom. Kemudian untuk dataset yang dianalisis bernilai real atau harus melalui tahap normalisasi skala nilai masing-masing atribut ternyata akurasi yang dihasilkan tidak jauh berbeda.
Source Code
https://colab.research.google.com/drive/1lJPnbg8kYDJsdCojqXEJp-CviS-oA-iK?usp=sharing