Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 13
LAPORAN TUGAS
CODING MACHINE LEARNING
DATASET BRAIN TUMOR
Oleh : Cornelia Luba Tara Boro NIM 2118060
INSTITUT TEKNOLOGI NASIONAL MALANG
MEI 2024 1. Import Library yang akan digunakan. Terdapat beragam library yang dapat digunakan pada proses image preprocessing, diantaranya adalah natsort yang berfungsi untuk melakukan sorting pada data output hasil running program, Matplotlib.pyplot, plotly, seaborn yang digunakan untuk visualisasi data contohnya untuk menampilkan citra. Numpy untuk melakukan operasi pada citra, melakukan operasi matematika pada array dan matriks. Library os yang digunakan memanipulasi path file serta library panda yang digunakan untuk menganalisis data serta membaca data dalam bentuk csv hingga manipulasi data, dll.
Gambar 1 Import Library
2. Selain itu juga digunakan library cv2 OpenCV (Open Source Computer Vision Library) yang digunakan untuk membaca citra, memproses dan melakukan operasi pada citra. Matplotlib digunakan untuk visualisasi data. Skimage digunakan untuk membaca gambar dari file. Xgboost digunakan untuk algoritma pembelajaran mesin untuk metode yang akan digunakan. PIL.Image digunakan untuk memanipulasi gambar.
Gambar 2 Import Library
3. Selain itu juga digunakan beberapa library lainnya seperti sklearn dan mlxtend yang digunakan untuk mengakses algoritma-algoritma machine learning yang akan digunakan pada saat akan memproses dataset dengan menggunakan metode machine learning tertentu.
Gambar 3 Import Library
4. Setelah melakukan import library, selanjutnya adalah melakukan koneksi dengan google drive untuk dapat membaca dataset yang telah disiapkan sebelumnya. Pada tahap ini digunakan variabel pd yaitu menggunakan library panda untuk membaca dataset dalam format csv yang telah disimpan pada drive pada alamat yang dituliskan.
Gambar 4 Koneksi ke Google Drive
5. Pada langkah ini dilakukan pelatihan model dengan menggunakan metode Random Forest. Pada source code dibawah ini digunakan algoritma RandomForestClassifier untuk proses klasifikasi, nilai 100 pada n_estimators artinya adalah akan dibuat sebanyak 100 pohon keputusan. Selnajurnya data yang digunakan adalah X_train (dataset pelatihan, yaitu input) dan Y_train (variabel target, yaitu output yang akan dilakukan prediksi. Kemudian akan dilakukan prediksi dengan menggunakan metode predict. Selanjutnya ditampilkan visualisasi nilai prediksi dengan nilai actual dalam bentuk diagram plot serta nilai confusion matriksnyaa. Selain itu, juga dilakukan perhitugan score akurasi model serta nilai rata-rata skor presisi untuk mengukur seberapa baik model dapat menjaga Tingkat presisi. Gambar 5 Membaca Data dari Dataset 6. Berikut adalah hasil dari source code diatas. Nilai biner adalah nilai hasil prediksi yang dilakukan dengan method predict pada 100 data pertama pada dataset. Selanjutnya adalah diagram plot nilai prediksi dengan nilai actual yang menunjukan bahwa tingkat akurasi yang tinggi dengan nilai sebesae 98.672%
Gambar 6 Visualisasi nilai prediksi dengan nilai actual
7. Berikut adalah hasil output dari source code pada langkah 5, yaitu nilai confusion matriks yang menunjukan bahwa tingkat akurasi yang tinggi didukung dengan nilai akurasi model dengan nilai 0.98 dan nilai precision- recall yang tinggi yang menunjukan bahwa model yang dikembangkan memiliki kemampuan efektif dalam identifikasi dan akurat dalam prediksi.
Gambar 7 Confusion Matrik
8. Selanjutnya adalah menghitung decision boundary berdasarkan fitur homogeneity dan skewness. Sama seperti tahap sebelumnya, pada tahap ini juga akan digunakan 100 decision tree dalam proses pelatihan model. Data yang digunakan adalah data X_train_feature dan y_train_feature. Selanjutnya data tersebut ditampilkan dalam bentuk decision boundery. Kemudian, dilakukan prediksi Berdasarkan data X_test_feature dan menghitung nilai akurasi dari model yang dikembangkan. Gambar 8 Mrotde Random Forrest 9. Berikut adalah hasil dari distribusinya. Segitiga oranye merepresentasikan sel tumor dan kotak biru merepresentasikan tumor. Terlihat bahwa segitiga oranye berada disebelah kiri decision yang artinya homogeneity kurang dari 0 dan sebaliknya untuk kotak bewarna biru. Jika diliat dari gambar dibawah menunjukan bahwa telag berhaisl memisahkan kelas 0 dan kelas 1 dengan cukup baik, walaupun ada sedikit area tumpeng tindih.
Gambar 9 Decision Boundary
10. Selanjutnya adalah dengan menggunakan metode KNN. Pada tahapan ini digunakan algoritma KNeighboarsDClassier dengan total nilai terdekat atau tetangga terdekat adalah sebanyak 5. Data yang digunakan adalah data X_train dan Y_train. Kemudian dilakukan prediksi terhadap data tersebut, lalu hasil dari metode ini ditampilkan dalm bentuk diagram plot dan cinfusion matriks. Dilakukan perhitungan akurasi presisi dalam menggunakan metode KNN.
Gambar 10 Metode KNN
11. Berikut adalah hasil output dari source code diatas. Nilai biner merupakan nilai hasil prediksi dan yang ditampilkan tersebut adalah data pertama hingga data ke-seratus. Selanjutnya adalah diagram plot yang menunjukan perbandingan antara nilia prediksi dan nilai actual yang menunjukan bahwa tingkat akurasi sangat tinggi karena diagram warna merah dan biru berada pada titik yang sama dan dapat dilihat juga bahwa tingkat akurasi mencapai nilai 98.539%
Gambar 11 Output Metode KNN
12. Berikut adalah lanjutan output yaitu berupa confusion matrik yang menunjukan bahwa nilai akurasi cukup tinggi dengan diperoleh nilai rata-rata precision-recall sebesar 0,98.
Gambar 12 Output Metode KNN
13. Berikutnya adalah menghitung decision boundary atau batas Keputusan. Pada metode KNN, batas Keputusan tidak berbentuk garis lurus seperti metode sebelumnya karena batas Keputusan dipengaruhi oleh nilai k atau jumlah tetangga terdekat, pada contoh ini digunakan k=5. Dapat dilihat dari gambar dibawah ini, walaupun terdapat beberapa bagian yang masih tumpeng tindih dan tidak sesuai dengan batas Keputusan, tapi model KNN telah berhasil mengklasifikasikan data tumor dan bukan tumor dengan cukup baik.
Gambar 13 Output Metode KNN
14. Selanjutnya membuat visualisasi untuk membandingkan skor pada tiap pengujian untuk setiap metode, yaitu metode yang digunakan adalah 'Logistic Regression Score', 'Support Vector Machine Score', 'Naive Bayes Score', 'Decision Tree Score', 'Random Forest Score', 'K-Nearest Neighbor Score', metode-metode tersebut dijadikan model untuk kemudian akan dibuatkan nilai dari hasil perhtiungan tiap metode menggunakan diagram batang. Selain itu, juga nilai score tiap metode disimpan menggunakan variabel score. Selanjutnya adalah membuat series pandas yang berisi nilai skor akurasi dengan menggunakan model sebagai indeksnya. Kemudian mengatur ukuran diagram dan membuat diagram batang dengan menampilkan nilai akurasi pada atas diagram sesuai dengan model masing-masing.
Gambar 14 Membuat Perbadingan Skor Pengujian tiap Metode
15. Berikut adalah output dari source code diatas. Berdasarkan gambar dibawah ini terlihat bahwa setiap metode telah berhasil melakukan klasifikasi dengan baik karena nilai akurasi pada tiap metode rata-rata berada pada nilai 0.99 dan 0.97.
Gambar 15 Diagram Perbandingan Skor Pengujian tiap Metode
16. Berikutnya adalah melakukan perbandingan untuk setiap confusion matriks dari setiap metode. Confusion matriks dari setiap metode ditampilkan dengan menggunakan figure dan disusun seperti dibawah ini. Setiap confusion matriks juga diberikan heatmap untuk mempermudah dalam membaca kesimpulan dan confusion matriks tersebut.
Gambar 16 Perbandingan Confusion Matriks
17. Hasil output confusion matrix. Berdasarkan hasil berikut terlihat bahwa metode SVM, Random Forest dan Decision Tree merupakan metode dengan tingkat kesalahan paling kecil. Tetapi, secara keseluruhan setiap model sudah memiliki tingkat akurasi yang tinggi karena nilai kesalahannya cukup kecil jika dibandingkan dengan nilai true positive dan true negative.
Gambar 17 Confusion Matriks Tiap Metode
18. Selanjutnya adalah Perbandingan kurva Receiver Operating Characteristic (ROC). Kurva ROC merupakan metode yang digunakan untuk menilai kinerja model kalsifikasi. Langkah pertama yang dilakukan adalah menghitung prediksi probabilitas data X-test, kemudian hitung ROC kurva dari nilai actual yaitu Y_test dengan nilai probabilitas prediksi yang sudah dihitung sebelumya. Selanjutnya adalah membuat figure yang akan menampung setiap grafik untuk tiap metode. Selanjutnya adalah membuat garis referensi dari titik (0,0) hingga titik (1,1) dihubungkan dengan gari putus-putus (k--). Selanjutnya beri label untuk sumbu x (False Positive Rate) dan sumbu y (Trus Positive Rate) dan beri judul tiap grafik sesuai dengan metode yang digunakan. Lakukan proses yang sama untuk setiapp metode-metode lainnya. Gambar 18 ROC Metode Logistic Regression dan SVM
Gambar 19 ROC Metode Naïve Bayes dan Decision Tree
Gambar 20 ROC Metode Random Forest dan KNN
19. Berikut adalah hasilnya. Semakin dekat kurva ROC dengan sudut kiri atas artinya semakin baik model tersebut dalam melakukan klasfikasi karena pada bagian kiri atas artinya true positive lebih tinggi dibandingkan false negative. Sedangkan jika garis semakin mendekati garis referensi atau dengan diagonal, maka kemampuan klasifikasi model tersebut tidak terlalu baik. Jika dilihat Berdasarkan hasil kurva ROC dibawah ini, dapat disimpulkan bahwa setiap metode sudah memiliki hasil klasifikasi yang cukup baik.