• Tidak ada hasil yang ditemukan

KLASIFIKASI PENYAKIT TUBERCULOSIS DAN PNEUMONIA PADA PARU-PARU MANUSIA BERDASARKAN CITRA CHEST X-RAY MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORK

N/A
N/A
Protected

Academic year: 2021

Membagikan "KLASIFIKASI PENYAKIT TUBERCULOSIS DAN PNEUMONIA PADA PARU-PARU MANUSIA BERDASARKAN CITRA CHEST X-RAY MENGGUNAKAN CONVOLUTIONAL NEURAL NETWORK"

Copied!
59
0
0

Teks penuh

(1)

KLASIFIKASI PENYAKIT TUBERCULOSIS DAN

PNEUMONIA PADA PARU-PARU MANUSIA

BERDASARKAN CITRA CHEST X-RAY MENGGUNAKAN

CONVOLUTIONAL NEURAL NETWORK

SKRIPSI

ABDUL HAMID 11150940000006

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UIN SYARIF HIDAYATULLAH JAKARTA

(2)

i

KLASIFIKASI PENYAKIT TUBERCULOSIS DAN

PNEUMONIA PADA PARU-PARU MANUSIA

BERDASARKAN CITRA CHEST X-RAY MENGGUNAKAN

CONVOLUTIONAL NEURAL NETWORK

SKRIPSI

Diajukan kepada

Universitas Islam Negeri Syarif Hidayatullah Jakarta Fakultas Sains dan Teknologi

Untuk Memenuhi Persyaratan dalam Memperoleh Gelar Sarjana Matematika (S.Mat)

Oleh : Abdul Hamid 11150940000006

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UIN SYARIF HIDAYATULLAH JAKARTA

(3)
(4)
(5)
(6)

v

PERSEMBAHAN DAN MOTTO

Segala Puji dan Syukur ku persembahkan kepada Allah Subhanahu Wata’ala. Seiring shalawat serta salam kepada sang pembangun peradaban manusia, Nabi

Muhammad Shallallahu ‘Alaihi Wassalam.

Persembahan kecil ku lantunkan untuk mereka yang dalam diamnya turut mendoakan atas dasar cinta tanpa paksaan sedikitpun terutama kepada mamah dan

papah.

Skripsi ini juga ku persembahkan untuk para sahabat serta mereka yang mencintai saya dengan tulus.

“Lebih baik mencoba untuk bisa, lalu pasrah, dari pada menyerah tanpa usaha”

“Allah Ta’ala berfirman, 'Aku tergantung persangkaan hamba kepadaKu. Aku bersamanya kalau dia mengingat-Ku. Kalau dia mengingatku pada dirinya, maka Aku mengingatnya pada diriKu. Kalau dia mengingatKu di keramaian, maka Aku

akan mengingatnya di keramaian yang lebih baik dari mereka. Kalau dia mendekat sejengkal, maka Aku akan mendekat kepadanya sehasta. Kalau dia mendekat kepada diri-Ku sehasta, maka Aku akan mendekatinya sedepa. Kalau

dia mendatangi-Ku dengan berjalan, maka Aku akan mendatanginya dengan berlari." (HR bukhari, no. 7405 dan Muslim, no. 2675)

(7)

vi ABSTRAK

Abdul Hamid, Klasifikasi Penyakit Tuberculosis dan Pneumonia pada Paru-Paru Manusia Berdasarkan Citra Chest X-Ray Menggunakan Convolutional Neural

Network, dibawah bimbingan Muhaza Liebenlito, M.Si dan Yanne Irenne, M.Si.

Tuberculosis dan pneumonia merupakan jenis penyakit yang dapat menginfeksi paru-paru. Salah satu metode seorang ahli mendiagnosis kedua penyakit ini dengan melihat citra chest x-ray pasien. Pada penelitian ini memanfaatkan data citra chest

x-ray penderita penyakit tuberculosis dan pneumonia. Model convolutional neural network digunakan untuk membantu mendiagnosis kedua penyakit ini. Data yang

digunakan masing-masing sudah dilabeli sebanyak 4273 citra pneumonia, 1989 citra normal dan 394 citra tuberculosis. Data tersebut dibagi menjadi 80% himpunan data latih dan 20% data uji. Himpunan data tersebut juga telah melalui 3 tahap prepocessing yaitu resize citra, merubah citra RGB menjadi grayscale dan standarisasi gausian pada citra. Pada data latih dilakukan teknik sampling berupa

undersampling data dan oversampling data untuk menyeimbangkan data latih antar

kelas. Pemilihan model terbaik dipilih berdasarkan nilai AUC (Area Under the

Curve) yaitu luas daerah dibawah kurva Receiver Operating Chracteristics (ROC).

Model terbaik dihasilkan jika dilatih menggunakan data latih hasil oversampling dengan nilai AUC kelas tuberculosis sebesar 0,99 dan nilai AUC kelas pneumonia sebesar 0,98 sehingga mampu mengindentifikasi sebanyak 86% penyakit tuberculosis dan 96% penyakit pneumonia.

Kata Kunci: Citra Chest X-Ray, Penyakit Infeksi Paru, Pengolahan Citra Digital

(8)

vii ABSTRACT

Abdul Hamid, Classification of Tuberculosis and Pneumonia in Human Lung Based on Chest X-Ray Images Using the Convolutional Neural Network Method, under guidance Muhaza Liebenlito, M.Si dan Yanne Irenne, M.Si.

Tuberculosis and Pneumonia are kind of disease that infecting human lung. To diagnose these diseases, experts look the images of chest x-ray of a patient. This research uses chest x-ray images of Tuberculosis and Pneumonia to support an expert to diagnose by using convolutional neural network model. Data used is 4273 images of pneumonia, 1989 images of normal, and 394 images of tuberculosis. Data is splitted into 80% of train set and 20% of test set. These data sets also have been through preprocessing step such as resize, converting RGB to grayscale, and gaussian normalization. On train set, a sampling technique is used are undersample and oversample to balance over each class. Best model also chosen based on AUC value, which is the area under curve of Receiver Operating Characteristics (i.e. ROC). The best fitted model is obtained if the train data is trained by oversampling method. The AUC value is 0.99 for tuberculosis and 0.98 for pneumonia, and it is able to identify 86% true for tuberculosis and 96% true for pneumonia.

Keywords: Chest X-Ray Images, Lung Infection Disease, Image Processing, Convolutional Neural Network.

(9)

viii

KATA PENGANTAR

Alhamdulillah, puji syukur kehadirat Allah Subhanahu Wata’ala atas segala limpahan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi dengan judul “Klasifikasi Penyakit Tuberculosis Dan Pneumonia Pada Paru-Paru Manusia Berdasarkan Citra Chest X-Ray Menggunakan Convolutional Neural Network”. Shalawat serta salam senantiasa tercurah kepada Nabi Muhammad Sallalahu Alaihi Wassalam, para sahabat, keluarga serta muslimin dan muslimat. Semoga kita mendapatkan syafaat baginda Rasul kelak diakhirat. Penulis dapat menyelesaikan skripsi ini karena adanya banyak bimbingan, saran, kerjasama dan bantuan dari berbagai pihak. Untuk itu, pada kesempatan ini penulis ingin menyampaikan terima kasih kepada :

1. Ibu Prof Dr. Lili Surayya Putri, M.Env.Stud, selaku Dekan Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta.

2. Ibu Dr. Suma’inna, M.Si, selaku Ketua Program Studi Matematika Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta, dan Ibu Irma Fauziah, M.Sc, selaku Sekretaris Program Studi Matematika Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta.

3. Bapak Muhaza Liebenlito, M.Si selaku pembimbing I dan Ibu Yanne Irenne, M.Si selaku pembimbing II yang telah memberikan ilmu pengetahuan, pengarahan, bimbingan dan membantu penulis dalam menyelesaikan skripsi ini serta memberikan inspirasi dari mulai pemilihan topik hingga metode penelitian yang digunakan.

(10)

ix 4. Ibu Dr. Nina Fitriyati, M.Kom selaku penguji I, dan Ibu Madona Yunita Wijaya, M.Sc selaku penguji II, terima kasih atas kritik dan sarannya kepada penulis selama melaksanakan seminar hasil dan sidang skripsi.

5. Bapak Asril dan Ibu Bukharti Dewi sebagai orang tua penulis, serta adik-adik penulis, Qurata ‘Aini, Wilda Azkia dan Lutfiatul Aziz yang telah memberikan dukungan baik moril ataupun materil untuk penulis.

6. Alfarih Faza, Fitria Eka S, Kharisma Monardo, Heryanti Dewi F, Khusnul, Ayu, Shinta, dan Vika yang selalu memberikan motivasi serta dukungan lainnya kepada penulis.

7. Seluruh mahasiswa matematika serta seluruh pihak yang telah membantu penulis dalam penyelesaian skripsi ini.

Penulis menyadari bahwa masih banyak kesalahan dalam penyusunan skripsi ini. Oleh sebab itu, penulis sangat menerima kritik dan saran yang bersifat membangun agar kesalahan yang telah terjadi tidak terulang di masa yang akan datang. Penulis sangat berharap bahwa skripsi ini dapat bermanfaat bagi banyak pihak.

Yang terakhir, semoga skirpsi ini dapat memberi manfaat bagi kita semua

Aamiin Aamiin ya Rabbal Aamiin. Wassaamu’alaikum Wr. Wb

Jakarta, November 2019

(11)

x DAFTAR ISI

LEMBAR PENGESAHAN ... ii

PERNYATAAN ... iii

LEMBAR PERNYATAAN PERSETUJUAN... iv

PERSEMBAHAN DAN MOTTO ... v

ABSTRAK ... vi

ABSTRACT ... vii

KATA PENGANTAR ... viii

DAFTAR ISI ... x

DAFTAR GAMBAR ... xii

DAFTAR TABEL ... xiii

BAB I PENDAHULUAN ... 1 1.1. Latar Belakang... 1 1.2. Rumusan Masalah ... 3 1.3. Batasan Masalah ... 3 1.4. Tujuan Penelitian ... 4 1.5. Manfaat Penelitian ... 4

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI ... 5

2.1. Penyakit Paru-Paru ... 5

2.2. Neural Network ... 6

2.3. Multi Layer Neural Network ... 7

2.4. Fungsi Aktivasi ... 8

2.5. Loss Function ... 9

2.6. Convolutional Neural Network... 10

2.7. Backpropagation ... 13

2.8. Confusion Matrix ... 15

2.9. Kurva ROC dan AUC ... 18

BAB III METODOLOGI PENELITIAN ... 20

3.1. Sumber Data ... 20

3.2. Alur Penelitian ... 21

BAB IV HASIL DAN PEMBAHASAN... 31

4.1. Hasil Preprocessing Data ... 31

(12)

xi

4.3. Keseimbangan Data ... 32

4.4. Pemilihan Model dari Setiap Teknik Sampling ... 33

4.5. Evaluasi ... 35

4.6. Pemilihan Model Terbaik ... 38

BAB V PENUTUP... 41

5.1. Kesimpulan... 41

5.2. Saran ... 41

(13)

xii

DAFTAR GAMBAR

Gambar 2.1 Arsitektur Dasar dari Perceptron ... 6

Gambar 2.2 Contoh Arsitektur dari Feed Forward Networks ... 8

Gambar 2.3 Ilustrasi Konvolusi antara Input dan Kernel ... 11

Gambar 2.4 Ilustrasi Operasi Aktivasi dari Input Feature Map ... 12

Gambar 2.5 Ilustrasi Operasi Pooling dari Input Feature Map ... 13

Gambar 2.6 Ilustrasi Forward Phase pada Sebuah NN ... 13

Gambar 2.7 Ilustrasi Backward Phase pada Sebuah NN ... 14

Gambar 2.8 Confusion Matrix untuk Klasifikasi Multi-class ... 16

Gambar 2.9 Contoh Ilustrasi Kurva ROC ... 19

Gambar 3.1 Contoh Data Citra CXR ... 21

Gambar 3.2 Alur Penelitian ... 23

Gambar 3.3 Undersampling Data ... 25

Gambar 3.4 Oversampling Data... 26

Gambar 3.5 Pelatihan Model CNN ... 29

Gambar 4.1 Proses Prepocessing ... 31

Gambar 4.2 Plot Jumlah Data Latih dan Data Uji ... 32

Gambar 4.3 Plot Jumlah Data Hasil Undersampling dan Oversampling ... 33

Gambar 4.4 Plot Nilai Loss Model CNN Undersampling ... 34

Gambar 4.5 Plot Nilai Loss Model CNN Oversampling ... 35

Gambar 4.6 Plot Waktu Pelatihan ... 38

Gambar 4.7 Plot ROC Model CNN Undersampling... 39

(14)

xiii

DAFTAR TABEL

Tabel 2.1 Ukuran Untuk Klasifikasi Multi Class. ...………...…..16

Tabel 3.1 Arsitektur Model CNN ... 26

Tabel 3.2 Hyperparameter pada Model CNN yang lain ... 27

Tabel 3.3 Output Hidden layer ... 28

Tabel 4.1 Jumlah Data CXR Setelah Penggabungan ... 31

Tabel 4.6 Confusion Matrix Model CNN Undersampling ... 36

Tabel 4.7 Matrix Classification Model CNN Undersampling ... 36

Tabel 4.8 Confusion Matrix Model CNN Oversampling ... 37

(15)

1 BAB I PENDAHULUAN 1.1. Latar Belakang

Dari sahabat Jabir bin Abdillah radhiyallahu‘anhu, bahwasanya Nabi shallallahu ‘alaihi wa sallam bersabda :

ِالل ِنْذِإِب َأ َرَب ِءاَّدلا ُءا َوَد َبْي ِصُأ اَذِإَف ،ٌءا َوَد ٍءاَد ِِّلُكِل “Semua penyakit ada obatnya. Jika sesuai antara penyakit dan obatnya, maka akan sembuh dengan izin Allah” (HR Muslim 2204). Dari hadits berikut kita tahu penyakit yang menimpa kita bisa saja merupakan suatu cobaan yang seharusnya kita tidak perlu khawatir dapat sembuh ataupun tidak, karena Nabi Muhammad sendiri bersabda setiap penyakit pasti ada obatnya untuk itu sebagai manusia kita harus senantiasa berusaha, berdoa dan bertawakal kepada Allah untuk bisa sembuh dari berbagai penyakit yang diderita.

Paru-paru merupakan organ terpenting dalam sistem pernapasan manusia, jika paru-paru bermasalah tentunya akan menggangu aktifitas sehari-hari. Permasalahan paru-paru yang umum diderita manusia adalah masalah infeksi akibat virus, bakteri, atau jamur. Penyakit infeksi paru-paru diantaranya adalah tuberculosis dan pneumonia. Kedua penyakit ini umumnya ditandai dengan gejala batuk yang terus-menerus, walaupun untuk tuberculosis sendiri batuk yang dialami terkadang disertai darah [1]. Pada anak-anak, kasus tuberculosis tahun 2017, diperkirakan 1 juta menderita penyakit tuberculosis dan 230.000 diantaranya meninggal dunia [2]. Sedangkan pada pneumonia pada tahun 2015 menyumbang total 16% kematian pada anak di bawah usia 5 tahun [3].

Dalam mendiagnosis penyakit ini umumnya alat atau teknik diagnosis yang dilakukan adalah melakukan rontgen dengan sinar x pada bagian dada pasien, data citra yang dihasilkan dari teknik ini disebut sebagai citra chest x-ray (CXR), teknik ini dipilih karena teknik ini ekonomis dan mudah digunakan [4]. Pada CXR dapat

(16)

2 dilihat gambaran permukaan dalam dada pasien yang digunakan sebagai bahan pertimbangan oleh seorang ahli untuk mengetahui apakah seorang pasien terjangkit penyakit pneumonia atau tuberculosis. Seiring pesatnya kemajuan teknologi terutama di bidang machine learning, permasalahan pada citra seperti pengklasifikasian terus dilakukan pengembangan menjadi lebih dinamis untuk berbagai permasalahan, dimana untuk membedakan suatu objek pada citra dapat dilakukan dengan bantuan komputasi mesin. Sehingga prediksi yang dihasilkan oleh model machine learning dalam hal mendeteksi suatu penyakit dapat membantu seorang ahli dalam mendiagnosis kemungkinan penyakit yang diderita oleh pasien.

Beberapa penelitian sudah dilakukan terkait dalam mengidentifikasi penyakit paru-paru dengan menggunakan algoritma mechine learning pada data CXR. Schilham dkk [5] menggunakan gausian kernel untuk mengekstrak fitur dan 11 karakterisasi lung nodule (bintil pada paru-paru sebagai kemungkinan tanda dari adanya kanker paru-paru) fitur dan kemudian mengklasifikasikannya dengan algoritma k-nearest neighbors (KNN) dengan menerima rata-rata dua false

positives per-hasil gambar serta mampu mengidentifikasi 51% dari semua nodule,

meningkat dengan empat false positives menjadi 67%. Pada penyakit tuberculosis, Tan dkk [6] mengemukakan tuberculosis index (TI) berdasarkan fitur hasil segmentasi tekstur daerah paru-paru yang kemudian diklasifikasikan antara normal dan tidak normal dengan sebanyak 95 data menggunakan algoritma decision tree dan mendapatkan akurasi 92,9%. Sedangkan Hwang dkk [7] menjadi yang pertama mengemukakan penggunaaan Convolutional Neural Network dalam sistem pendeteksian penyakit tuberculosis secara otomatis dengan menggunakan transfer

learning untuk meningkatkan performa sistem, akurasi sistem yang berhasil dibuat

oleh mereka adalah sebesar 90,3% dengan menggunakan himpunan data KIT, MC dan Senzhen.

Sedangkan penelitian terhadap gabungan dari beberapa penyakit paru-paru diantaranya dilakukan oleh Bar dkk [8] dengan menggunakan kombinasi dari fitur yang diekstrak oleh metode Convolutional Neural Network (CNN) dengan arsitektur ImageNet mereka berhasil mendeteksi pembesaran jantung, pleural

(17)

3

effusion sebelah kanan, sehat vs penyakit abnormal lainnya dengan nilai AUC

secara berurutan 93%, 89%, dan 79%. Sedangkan Abivey dkk [9] dengan arsitektur CNN yang mereka buat sendiri berhasil mengalahkan model CNN dengan arsitektur GIST, VGG16 dan VGG19 dalam mengklasifikasikan 14 jenis penyakit paru-paru dengan akurasi total 92,4%.

Banyak permasalahan pendeteksian penyakit pada paru-paru diselesaikan dengan metode machine learning, terutama metode CNN selain tahap

preprocessing yang dibutuhkan cenderung lebih sedikit, akurasi yang dihasilkan

sangat menjanjikan, walaupun memiliki biaya komputasi jauh lebih banyak dibanding metode machine learning yang lebih sederhana. Oleh karena itu peneliti memutuskan untuk menggunakan metode CNN dalam mengatasi masalah klasifikasi penyakit tuberculosis paru-paru, pneumonia serta normal sebagai pembanding pada data CXR.

1.2. Rumusan Masalah

Berdasarkan uraian latar belakang di atas, rumusan masalah pada penelitian ini adalah :

1. Bagaimana teknik sampling yang tepat untuk menangani masalah data tidak seimbang pada data latih agar model dapat mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia dengan baik?

2. Bagaimana nilai AUC yang dihasilkan pada model CNN terbaik untuk mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia? 3. Bagaimana hasil prediksi dari model terbaik untuk mengklasifikasikan citra

CXR termasuk tuberculosis atau pneumonia? 1.3. Batasan Masalah

Pada penelitian ini peneliti menetapkan batasan masalah yaitu:

1. Data citra CXR yang akan diklasifikasikan sebanyak 3 kelas yaitu tuberculosis dan pneumonia, kemudian ditambahkan normal sebagai pembanding jika kedua penyakit tidak terklasifikasi.

(18)

4 2. Penulis menggunakan metode CNN dengan hyperparameter yang sesuai pada subbab 3.2.4 untuk dapat mengklasifikasikan penyakit tuberculosis dan pneumonia pada suatu data CXR.

1.4. Tujuan Penelitian

Adapun tujuan dalam penelitian ini adalah:

1. Mengetahui teknik sampling yang tepat untuk menangani masalah data tidak seimbang pada data latih agar model dapat mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia dengan baik?

2. Mengetahui bagaimana nilai AUC yang dihasilkan pada model CNN terbaik untuk mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia 3. Mengetahui bagaimana hasil prediksi dari model terbaik untuk

mengklasifikasikan citra CXR termasuk tuberculosis atau pneumonia. 1.5. Manfaat Penelitian

Dengan penelitian ini diharapkan pembaca mengetahui bahwa pendeteksian penyakit tuberculosis dan pneumonia dapat dilakukan dengan menggunakan metode CNN, serta dapat menjadi acuan untuk penelitian dan pengembangan metode lain yang lebih baik dari sebelumnya.

(19)

5 BAB II

TINJAUAN PUSTAKA DAN LANDASAN TEORI

2.1. Penyakit Paru-Paru

Paru – paru merupakan organ penting yang ada didalam tubuh manusia sebagai salah satu organ pada sistem pernapasan. Pernapasan yang dilakukan oleh manusia berguna untuk menghirup gas yaitu oksigen yang akan diserap oleh tubuh dan diolah menjadi energi. Terganggunya pernapasan pada manusia akan sangat mempengaruhi aktifitas sehari-hari yang erat kaitannya dengan anomali yang terjadi pada paru-paru, salah satunya yang diakibatkan oleh kebiasaan atau lingkungan yang tidak baik umumnya penyebab utamanya polusi udara sehingga paru-paru menjadi rawan terinfeksi oleh patogen-patogen seperti virus, bakteri, atau jamur.

Infeksi pada paru-paru yang disebakan oleh patogen-patogen seperti virus, bakteri, atau jamur diantaranya adalah tuberculosis dan pneumonia. Tuberculosis disebabkan oleh bakteri mycobacterium tuberculosis sedangkan secara umum infeksi yang disebabkan oleh patogen-patogen tersebut disebut sebagai pneumonia. Pneumonia adalah peradangan kantung udara di paru-paru (alveoli) dan jaringan di sekitarnya, umumnya penyakit ini ditandai dengan gejala batuk disertai dahak, tubuh terasa lemas, dan nafas pendek dan cepat [10]. Sedangkan, penyakit tuberculosis ditandai dengan batuk berdahak yang terkadang disertai darah, sesak napas ,hilang nafsu makan yang berkepanjangan, kehilangan berat badan, dan demam yang disertai keringat dimalam hari [11]. Gejala diatas mungkin memiliki beberapa perbedaan tergantung kepada kondisi yang dialami oleh pasien sendiri.

Diagnosa untuk kedua penyakit memiliki kesamaan dimana keduanya perlu dilakukan rontgen dada dengan sinar X, untuk mendapatkan gambaran bagian dalam dada. Walaupun, pemeriksaan lanjutan diperlukan untuk lebih memastikan penyakit paru-paru apa yang diderita oleh pasien. Citra yang dihasilkan dari rontgen dada ini disebut dengan chest x-ray images (CXR) dimana untuk dapat mendiagnosis penyakit dari data ini dibutuhkan seorang ahli yang paham mengenai

(20)

6 data tersebut. Seorang ahli yang mampu mendiagnosa CXR umumnya melihat karakter atau ciri khusus pada citra tersebut.

2.2. Neural Network

Salah satu algoritma mechine learning yang popular saat ini adalah Neural Network (NN), terinspirasi dari mekanisme pembelajaran yang dilakukan oleh otak dari makhluk hidup, arsitektur paling sederhana dari NN adalah perceptron yang dikemukakan pertama kali oleh Ronsenblatt [12] .

Gambar 2.1 Arsitektur Dasar dari Perceptron

Perceptron merupakan NN yang berisikan sebuah input layer dan sebuah

output node. Arsitektur dasar dari perceptron ditunjukan pada Gambar 2.1.

Misalkan pada suatu permasalahan klasifikasi dengan 2 kelas, dimana setiap data contoh pelatihan memenuhi bentuk (𝑋, 𝑦). Setiap 𝑋 = [x1, x2 , x3, … , xd] berisi

sebanyak 𝑑 variabel fitur, dan 𝑦𝜖{−1, +1} yang berisi nilai observasi dari variabel kelas. Sehingga prediksi akan mengacu pada nilai observasi (𝑦) yaitu target atau tujuan untuk melakukan klasifikasi dari nilai yang belum terobservasi (𝑋) [13].

𝑥1 𝑥2 𝑥3 𝑥𝑑 +1 𝑤1 𝑤2 𝑤3 𝑤𝑑 b 𝑦̂

Σ

Input Layer Output Node

Φ

(21)

7 Input layer pada perceptron berisikan nilai input 𝑋 yang saling terhubung dengan weight yaitu 𝑊 = [𝑤1, 𝑤2, 𝑤3, … 𝑤𝑑], dan sebuah bias (𝑏) terhadap ouput node atau output neuron. pada input layer tidak terjadi proses perhitungan, proses perhitungan terjadi pada output node, yaitu fungsi linier 𝑧 = 𝑊. 𝑋 + 𝑏 = ∑𝑑𝑖=1𝑤𝑖𝑥𝑖+ 𝑏 , lalu digunakan suatu fungsi untuk memprediksi dari variabel 𝑋. Prediksi 𝑦̂ dihitung mengikuti aturan dibawah ini:

𝑦̂ = Φ(𝑊. 𝑋 + 𝑏) = Φ (∑ 𝑤𝑖𝑥𝑖

𝑑

𝑖=1

+ 𝑏). ( 1 )

Pada perceptron algoritm, prediksi dilakukan menggunakan suatu fungsi tangga yang memetakan bilangan real terhadap nilai +1 atau -1. Peran fungsi ini disebut sebagai fungsi aktivasi yang berguna untuk memetakan output dari setiap input dari layer sebelumnya terhadap suatu nilai pada selang tertentu sesuai fungsi yang digunakan. Pemilihan fungsi aktivasi dapat berbeda tergantung tujuan dan desain dari model yang akan kita gunakan. Pilihan fungsi aktivasi akan dibahas pada subab 2.4.

2.3. Multi Layer Neural Network

Setelah pada subab sebelumnya membahas mengenai arsitektur paling sederhana dari NN yaitu perceptron, jenis lain dari NN yang lebih kompleks adalah

Multi Layer Neural Network (MLNN). Berbeda dengan perceptron yang hanya

memiliki 1 input layer dan 1 output node, dalam MLNN arsitekturnya memiliki 3 jenis layer yaitu input layer, hidden layer dan output layer.

Didalam perceptron perhitungan hanya terjadi pada output layer dengan sebuah output node, sehingga seluruh perhitungan dalam perceptron dapat dilihat secara jelas oleh pengguna. Berbeda dengan MLNN yang memiliki paling sedikit sebuah layer tambahan untuk melakukan perhitungan serta menghubungkan antara input layer dengan output layer. Layer tambahan yang berada di antara input layer dan output layer disebut sebagai hidden layer, disebut sebagai hidden layer karena proses perhitungan tidak sepenuhnya terlihat oleh pengguna [13].

(22)

8 Secara spesifik arsitektur pada MLNN dapat disebut sebagai feed forward

networks karena setiap node pada suatu layer saling terhubung pada layer

sebelumnya, sehingga pada feed forward networks setiap input yang diproses menjadi output akan dibawa maju hingga output layer menjadi output jaringan, dengan cara output dari layer sebelumnya menjadi input pada layer setelahnya.

Gambar 2.2 Contoh Arsitektur dari Feed Forward Networks

Gambar diatas merupakan contoh arsitektur dari feed forward networks dengan 2 buah node pada input layer, 3 node pada hidden layer dan 1 buah node pada output layer.

2.4. Fungsi Aktivasi

Setiap node pada hidden layer dan output layer, dalam memproses segala input, menggunakan suatu fungsi aktivasi (Φ), tidak ada aturan khusus dalam pemilihan fungsi aktivasi (Φ). Berikut ini adalah beberapa fungsi aktivasi yang digunakan :

Input

Layer

Hidden layer

(23)

9

Φ(𝑧) = 𝑧 (linier function) ( 2 )

Φ(𝑧) = 𝑠𝑖𝑔𝑛(𝑧) (step function) ( 3 )

Φ(𝑧) = max{𝑧, 0} (ReLU function) ( 4 )

Φ(𝑧) = max{min[𝑧, 1] , −1} (hard tanh function) ( 5 )

Φ(𝑧) = 1 1 + 𝑒−𝑧 (sigmoid function) ( 6 ) Φ(𝑧) =𝑒 2𝑧− 1 𝑒2𝑧+ 1 (tanh function) ( 7 ) Φ(𝑧𝑖) = 𝑒 𝑧𝑖 ∑𝑘 𝑒𝑧𝑗 𝑗=1 , ∀𝑖 ∈ [1, . . . , 𝑘] (softmax function) ( 8 )

Fungsi diatas biasa digunakan didalam hidden layer, dan beberapa juga digunakan sebagai output layer, khusus permasalahan klasifikasi umumnya pada output layer menggunakan fungsi aktivasi linier function kemudian sofmax function.

Beberapa tahun terakhir fungsi ReLU dan hard tanh menjadi populer digunakan sebagai fungsi aktivasi dibandingkan sigmoid dan tanh, karena kemudahan dalam pelatihan pada MLNN menggunakan fungsi aktivasi ini [13]. Kemudahan yang didapatkan yaitu murahnya biaya komputasi dan kecepatan menuju konvergen ketika menggunakan optimasi SGD yang lebih cepat dan akurat dibandingkan fungsi aktivasi lainnya. Namun penggunaan fungsi aktivasi ini mudah menyebabkan model menjadi overfitting jika learning rate tidak diperhatikan.

2.5. Loss Function

Didalam model NN pasti memiliki fungsi objektif, dimana fungsi ini akan diminimumkan atau dimaksimumkan sedemikian sehingga NN yang dibentuk mampu melaksanakan tujuan dibuatnya. Fungsi objektif ini biasa disebut sebagai

loss function atau cost function. Loss function pada suatu NN dipilih berdasarkan

tujuan dari NN tersebut dibuat, pada permasalahan klasifikasi, loss function yang sering digunakan untuk setiap contoh pelatihan (𝑥𝑖, 𝑦𝑖) adalah:

(24)

10 Dimana jika 𝑧1, 𝑧2, 𝑧3, … , 𝑧𝑘 merupakan nilai output dari 𝑘 kelas yang dihasilkan pada output layer dan 𝑦̂1, 𝑦̂2, … , 𝑦̂𝑘 merupakan peluang dari 𝑘 kelas

(dengan menggunakan 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 pada nilai ouput layer), dan kelas ke-𝑟 merupakan kelas target sesungguhnya, maka loss function ini desebut cross entropy

loss [13]. Sehingga persamaan cross entropy loss dapat ditulis sebagai berikut:

𝐿 = − log ( 𝑒

𝑧𝑟

∑𝑘 𝑒𝑧𝑗 𝑗=1

, ∀𝑟 ∈ [1, . . . , 𝑘]). ( 10 )

2.6. Convolutional Neural Network

Covolutional Neural Network (CNN) merupakan salah satu variasi dari NN yang terinspirasi oleh pemahaman Hubel dan Weasel mealalui cara kerja korteks visual kucing pada tahun 1968 [14]. Dimana pada korteks visual memiliki daerah kecil yang terdiri dari beberapa sel yang peka terhadap daerah tertentu di bidang visual. Sel-sel didalam korteks visual, aktif hanya pada bentuk dan orientasi objek tertentu pada bidang visual.

Sistem kerja ini menjadi dasar bagaimana salah satu jenis arsitektur NN yaitu CNN dibuat, pada CNN memiliki struktur dasar yang nyaris serupa dengan NN pada umumnya, seperti input layer, hidden layer hingga output layer,namun pada CNN setiap layer umumnya terdiri dari beberapa bagian yakni konvolusi, aktivasi dan pooling. Keadaan setiap layer diatur berdasarkan spatial grid structure. Dimana setiap nilai fitur bergantung pada bagian area kecil pada layer sebelumnya. 2.6.1. Konvolusi

Misalkan input pada layer ke 𝑞 memiliki ukuran dimensi (𝐿𝑞 𝑥 𝐵𝑞𝑥 𝑑𝑞) dimana secara berturut-turut merupakan panjang, lebar dan kedalaman input, kernel 𝑝 pada layer 𝑞 adalah parameter yang di notasikan sebagai tensor 3 dimensi 𝑊(𝑝,𝑞) = [𝑤

𝑖𝑗𝑘 (𝑝,𝑞)

]. Index 𝑖,𝑗 dan 𝑘 menyatakan posisi sepanjang tinggi, lebar dan kedalaman. Ukuran dimensi pada kernel tersebut adalah (𝐹𝑞 𝑥 𝐹𝑞 𝑥 𝑑𝑞). Feature

map pada layer ke-𝑞 direpresentasikan dengan tensor 3 dimensi 𝐻(𝑞)= [ℎ 𝑖𝑗𝑘 (𝑞)

] ,saat 𝑞 = 1 maka 𝐻(1) merepresentasikan sebagai input layer [13]. Stride (S) adalah

(25)

11 ukuran langkah dalam melakukan konvolusi. Sehingga secara formal operasi konvolusi dari layer q ke layer (𝑞 + 1) didefinisikan sebagai berikut:

𝑖𝑗𝑝(𝑞+1) = ∑ ∑ ∑ 𝑤𝑟𝑠𝑘(𝑝,𝑞)ℎ𝑖+𝑟−1,𝑗+𝑠−1,𝑘(𝑞) 𝑑𝑞 𝑘=1 𝐹𝑞 𝑠=1 𝐹𝑞 𝑟=1 ∀𝑖 ∈ {1, 𝑆𝑞+ 1,2𝑆𝑞+ 1, … ,𝐿𝑞− 𝐹𝑞 𝑆𝑞 + 1} ∀𝑗 ∈ {1, 𝑆𝑞+ 1,2, 𝑆𝑞+ 1, … ,𝐵𝑞− 𝐹𝑞 𝑆𝑞 + 1} ∀𝑝 ∈ {1, … , 𝑑𝑞+1}. ( 11 )

Dari Gambar 2.3 dapat dilihat ilustrasi dari operasi konvolusi antara input dan kernel didalam layer konvolusi, dimana kedalaman dari input sama dengan kedalaman kernel yang digunakan, sehingga operasi konvolusi keduanya akan menghasilkan output berupa feature map yang memiliki kedalaman sebanyak kernel yang digunakan.

Gambar 2.3 Ilustrasi Konvolusi antara Input dan Kernel 1 3 2 3 2 5 5 1 6 2 8 2 8 INPUT KERNEL OUTPUT Kedalaman setiap kernel harus sama dengan input-nya. Kedalaman output terdefinisi berdasarkan banyaknya kernel yang

(26)

12 2.6.2. Aktivasi

Pada bagian aktivasi pada sebuah layer dari arsitektur CNN dilakukan dengan cara memetakan setiap nilai yang ada pada feature map dengan salah satu fungsi aktivasi (Φ) seperti ReLU, tanh, sigmoid atau sebagainya. Dimana operasi pada bagian ini serupa dengan operasi yang terjadi pada NN biasa. Ilustrasi aktivasi dari input feature map dapat dilihat pada Gambar 2.4.

Gambar 2.4 Ilustrasi Operasi Aktivasi dari Input feature Map 2.6.3. Pooling

Hampir sama seperti operasi konvolusi, hanya saja pada operasi pooling tidak melibatkan nilai kernel dengan mengkombinasikannya pada input layer sehingga menghasilkan output berupa feature map [13]. Pada pooling, kernel berfungsi sebagai region yang disebut activation map yang akan dilakukan pengumpulan disetiap bagian feature map sehingga menghasilkan feature map yang baru. Hal ini akan berdampak pengurangan ukuran spasial dimensi pada feature map. Tidak ada aturan khusus mengenai pemilihan operasi pooling, namun operasi pooling yang umum digunakan diantaranya adalah maximum pooling, minimum

pooling atau average pooling. Ilustrasi dari operasi pooling dari input feature map

dapat dilihat pada Gambar 2.5. 𝒙𝟏𝟏 𝒙𝟏𝟐 𝒙𝟏𝟑 𝒙𝟏𝟒 𝒙𝟐𝟏 𝑥22 𝑥23 𝑥24 𝒙𝟑𝟏 𝑥32 𝑥33 𝑥34 𝒙𝟒𝟏 𝑥42 𝑥43 𝑥44 𝑥31 𝑥32 𝑥33 𝑥34 𝑥41 𝑥42 𝑥43 𝑥44 Aktivasi 𝚽(𝒙𝟏𝟏) 𝚽(𝒙𝟏𝟐) 𝚽(𝒙𝟏𝟑) 𝚽(𝒙𝟏𝟒) 𝚽(𝒙𝟐𝟏) Φ(𝑥22) Φ(𝑥23) Φ(𝑥24) 𝚽(𝒙𝟑𝟏) Φ(𝑥32) Φ(𝑥33) Φ(𝑥34) 𝚽(𝒙𝟒𝟏) Φ(𝑥42) Φ(𝑥43) Φ(𝑥44)

(27)

13 Gambar 2.5 Ilustrasi Operasi Pooling dari Input Feature Map

2.7. Backpropagation

Algoritma yang digunakan untuk meminimumkan fungsi loss adalah algoritma backpropagation. Dimana salah satunya adalah stochastic gradient

descent (SGD) yang merupakan algoritma optimasi berbasis gradient-descent.

Backpropagation terdiri dari 2 fase yaitu forward phase dan backward phase [13].

Gambar 2.6 Ilustrasi Forward Phase pada Sebuah NN 𝑥11 𝑥12 𝑥13 𝑥14 𝑥21 𝑥22 𝑥23 𝑥24 𝑥31 𝑥32 𝑥33 𝑥34 𝑥41 𝑥42 𝑥43 𝑥44 pooling 𝑝11 𝑝12 𝑝21 𝑝22 𝑝11= 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥11, 𝑥12, 𝑥21, 𝑥22]) 𝑝12= 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥13, 𝑥14, 𝑥23, 𝑥24]) 𝑝21= 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥31, 𝑥32, 𝑥41, 𝑥42]) 𝑝22= 𝑝𝑜𝑜𝑙𝑖𝑛𝑔([𝑥33, 𝑥34, 𝑥43, 𝑥44]) +1 𝑥1 𝑥2 b 𝑤1 𝑤2

Φ

Type equati on here. 𝑦̂ 𝑧 = ∑ 𝑥𝑖𝑤𝑖+ 𝑏 2 𝑖=1 𝑦̂ = Φ(𝑧) 𝐿 = −log (𝑦̂)

(28)

14 Forward phase: Didalam forward phase, input digunakan untuk menghitung nilai dari setiap hidden layer berdasarkan nilai weight (w) dan bias (b) yang ada. Tujuan dari forward phase adalah untuk menghitung seluruh output dari hidden layer hingga output layer, berdasarkan input yang diberikan. Kemudian dihitunglah nilai loss dari function loss (L) berdasarkan nilai output layer [13]. Ilustrasi forward phase pada NN dengan 2 feature input dan sebuah node dapat dilihat pada Gambar 2.6.

Gambar 2.7 Ilustrasi Backward Phase pada Sebuah NN

Backward phase: Didalam backward phase perhitungan gradient dilakukan dari fungsi loss berdasarkan berbagai parameter weight (w) dan bias (b) setiap layer. Pada tahapan ini gradient dihitung dengan turunan parsial secara mundur, yakni gradient dihitung dari loss function (L) hingga input layer dengan memperhatikan weight (w) dan bias (b) pada layer tersebut. Setelah itu nilai gradient dari fungsi loss terhadap weight (w) atau bias (b) akan digunakan untuk optimasi parameter didalam NN dengan algoritma optimasi berbasis gradient-descent [13]. Ilustrasi backward phase pada NN dengan 2 feature input dan sebuah node dapat dilihat pada Gambar 2.7.

Algoritma optimasi SGD merupakan salah satu algoritma optimasi berbasis

gradient-descent yang digunakan untuk memperbaharui nilai parameter yang

+1 𝑥1 𝑥2 b 𝑤1 𝑤2

Φ

𝑦̂ 𝜕𝐿 𝜕𝑦̂= − 1 𝑦̂ 𝜕𝑦̂ 𝜕𝑧= Φ ′(𝑧) 𝜕𝑧 𝜕𝑤𝑖 = 𝑥𝑖 𝜕𝑧 𝜕𝑏= 1 𝜕𝐿 𝜕𝑏= 𝜕𝐿 𝜕𝑦̂× 𝜕𝑦̂ 𝜕𝑧× 𝜕𝑧 𝜕𝑏 𝜕𝐿 𝜕𝑤𝑖 =𝜕𝐿 𝜕𝑦̂× 𝜕𝑦̂ 𝜕𝑧× 𝜕𝑧 𝜕𝑤𝑖

(29)

15 dioptimasi yaitu 𝜃 (weight dan bias) berdasarkan titik data yang dipilih secara acak dari himpunan data latih, dibawah ini merupakan persamaan untuk mengoptimasi parameter dengan SGD:

𝜃 ← 𝜃 − 𝛼𝜕𝐿

𝜕𝜃. ( 12 )

Didalam SGD, learning rate (𝛼) adalah ukuran langkah setiap iterasi untuk mencapai titik minimum pada loss function (L). Untuk mempercepat pelatihan model serta menghindari nilai loss terjebak pada minimum lokal, dapat dilakukan dengan memodifikasi sedikit optimasi SGD dengan variabel penghalus yaitu 𝛽𝜖(0,1). Metode ini dapat disebut SGD with momentum, berikut adalah optimasi parameter yang dilakukan:

𝑣 = −𝛼𝜕𝐿

𝜕𝜃 ( 13 )

𝑣 ← 𝑣𝛽 − 𝛼𝜕𝐿

𝜕𝜃 ( 14 )

𝜃 ← 𝜃 + 𝑣. ( 15 )

Untuk mengurangi waktu yang dibutuhkan pada saat pelatihan model CNN, dapat menggunakan metode optimasi Mini-batch SGD. Sedikit berbeda dengan SGD biasa, Mini-batch SGD melakukan optimasi setiap bagian kecil data (Mini-batch) yang dipilih secara acak dimana ukurannya lebih dari 1 buah data latih. 2.8. Confusion Matrix

Melakukan pengukuran dalam kinerja pada sistem klasifikasi merupakan hal yang penting untuk menggambarkan seberapa baik sistem dalam mengklasifikasikan data. Confusion matrix merupakan salah satu metode yang digunakan untuk mengukur kinerja suatu metode dalam klasifikasi. Cara kerjanya yakni membandingkan hasil klasifikasi yang dilakukan oleh sistem dengan hasil klasifikasi yang seharusnya. Berdasarkan outputnya, salah satu sistem klasifikasi adalah sistem klasifikasi multi-class dimana setiap data dapat diklasifikasikan menjadi lebih dari dua kelas namun setiap satu data hanya dapat diklasifikan tepat satu kelas [15].

(30)

16 Gambar 2.8 Confusion Matrix untuk Klasifikasi Multi-Class

Confusion matrix memberikan informasi tentang berapa banyak hasil klasifikasi yang dilakukan sistem klasifikasi pada setiap kelas. Dari Gambar 2.8 Jika C merupakan suatu confusion matrix dan 𝑐𝑖𝑗 adalah jumlah data yang terklasifikasi pada kelas 𝑖 tetapi sebenarnya kelas 𝑗 maka dengan memperhatikan sebuah target klasifikasi kelas 𝑘 terdapat 4 istilah dalam pengukuran kinerja menggunakan confusion matrix sebagai berikut [16]:

1. True Positive (TP) yaitu kelas yang diperkirakan saat itu sebenarnya terjadi (𝑐𝑘𝑘).

2. True Negative (TN) yaitu kelas tidak diperkirakan dan itu tidak terjadi (𝑐𝑘𝑛). 3. False Positive (FP) yaitu kelas diperkirakan, tetapi tidak terjadi (𝑐𝑛𝑘). 4. False Negative (FN) yaitu kelas tidak diperkirakan tetapi memang terjadi

(𝑐𝑛𝑛).

Berdasarkan Gambar 2.8 dapat diperoleh nilai akurasi, precision, dan recall. Pada klasifikasi multi-class, jika banyak kelas pada data tersebut dinotasikan dengan 𝑙 dan banyak data adalah 𝑁, Berikut ini langkah-langkah pengukurannya:

Tabel 2.1 Ukuran Untuk Klasifikasi Multi-Class

Ukuran Formula Keterangan

Akurasi ∑lk=0TPk

𝑁

Perbandingan antara kelas yang diprediksi

(31)

17 dengan benar oleh sistem klasifikasi ter-hadap total data yang ada.

𝐏𝐫𝐞𝐜𝐢𝐬𝐢𝐨𝐧𝐤 TPk

TPk+ FPk

Perbandingan antara kelas yang diprediksi dengan benar oleh sistem terhadap total data yang terklasifikasi-kan kelas k.

𝐑𝐞𝐜𝐚𝐥𝐥𝐤 TPk

TPk+ FNk

Perbandingan antara kelas yang diprediksi dengan benar oleh sistem terhadap total data yang ada pada kelas k

Macro Average Precision

∑lk=0Precisionk l

Rata-rata precision dari setiap kelas

Macro Average Recall ∑lk=0Recallk

l

Rata-rata recall dari setiap kelas Micro Average Precision ∑lk=0TPk ∑lk=0[TPk+ FPk] Perbandingan antara seluruh kelas yang diprediksi dengan benar oleh sistem terhadap penjumlahan total data yang terklasifikasikan dengan benar dan data setiap kelas yang salah diprediksi oleh sistem. Micro Average Recall ∑lk=0TPk

∑l [TPk + FNk]

k=0

Perbandingan antara seluruh kelas yang diprediksi dengan benar

(32)

18 oleh sistem terhadap penjumlahan total data yang terklasifikasikan dengan benar dan data yang terprediksi salah oleh sistem pada setiap kelas.

2.9. Kurva ROC dan AUC

Kurva ROC (Receiver Operating Characteristics) adalah suatu teknik untuk menvisualisasikan, mengatur dan memilih sistem klasifikasi (classifiers) berdasarkan performa classifiers tersebut [17]. Membentuk kurva ROC dilakukan dengan menghitung nilai True Positive Rate (TPR) dan False Positive Rate (FPR) berdasarkan batasan (threshold) yang ditentukan. Pada permasalahan klasifikasi binari perhitungan TPR dan FPR adalah sebagai berikut:

𝑇𝑃𝑅 = 𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑠𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 = 𝑇𝑃 𝑇𝑜𝑡𝑎𝑙 𝐾𝑒𝑙𝑎𝑠 𝑃𝑜𝑠𝑖𝑡𝑖𝑓 ( 16 ) 𝐹𝑃𝑅 = 𝐹𝑃 𝑇𝑜𝑡𝑎𝑙 𝐾𝑒𝑙𝑎𝑠 𝑁𝑒𝑔𝑎𝑖𝑓 ( 17 ) 𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 𝑇𝑁 𝐹𝑃 + 𝑇𝑁 = 1 − 𝐹𝑃𝑅 ( 18 )

Sedangkan pada permasalahan multi-class perhitungan TPR dan FPR dilakukan dengan mengansumsikan kelas yang diperhatikan (k) merupakan kelas positif dan kelas lain merupakan kelas negatif, sehingga kurva ROC pada kasus multi-class dapat dibentuk disetiap kelasnya.

Kurva ROC merupakan plot dua dimensi antara TPR sebagai sumbu-y dan FPR sebagai sumbu-x. Pada sistem klasifikasi menghasilkan tingkat kepercayaan model (𝑝) atas data yang diprediksi sebagai kelas positif atau (𝑞) pada kelas negative. Nilai TPR dan FPR ditentukan berdasarkan nilai threshold, dimana saat 𝑝 > threshold pada data kelas positif maka jumlah TP ditambah +1, sedangkan jika 𝑞 >

(33)

19 threshold pada kelas negatif maka jumlah FP ditambah +1, penentuan nilai threshold

Setelah dilakukan perhituangan TPR dan FPR dari berdasarkan TP dan FP maka akan dihasilkan himpunan pasangan berupa koordinat (FPR, TPR) yang diirutkan berdasarkan threshold terbesar hingga terkecil, kemudian setiap koordinat dihubungkan sehingga membentuk suatu kurva yang memiliki area dibawahnya. ilustrasi kurva ROC dapat dilihat pada Gambar 2.9.

Gambar 2.9 Contoh Ilustrasi Kurva ROC

Berdasarkan Gambar 2.9 Area dibawah kurva ROC disebut sebagai AUC (Area Under the ROC Curve), nilai AUC dihitung dengan cara menghitung luas daerah dibawah kurva ROC dimana rentang nilai AUC berada diantara 0 hingga 1. Semakin besar nilai AUC maka semakin baik performa sistem klasifikasi.

(34)

20 BAB III

METODOLOGI PENELITIAN

Pada bab ini akan membahas mengenai metodologi penelitian untuk mendapatkan model yang tepat agar bisa mengklasifikasikan penyakit infeksi paru-paru melalui data CXR, dibutuhkan data dengan tahapan preprocessing yang tepat, serta hyperparameter model CNN yang tepat, sehingga hasil evaluasi yang didapatkan memuaskan. Semua tahapan yang dilakukan sesuai dengan alur penelitian yang dapat dilihat pada Gambar 3.2.

3.1. Sumber Data

Data yang digunakan dalam penilitian ini adalah data sekunder yang di unduh dari situs Kaggle dimana untuk data pneumonia di [18] dan tuberculosis di [19]. Data ini merupakan data gabungan dari beberapa penyakit yaitu:

a. Pneumonia

Sumber data ini [20] berisi data CXR sebanyak 5863 (JPEG) citra normal dan pneumonia, himpunan data ini diambil dari kelompok pasien anak-anak usia satu hingga lima tahun pada Guangzhou Women and

Children’s Medical Center, Guangzhou China

Himpunan data ini sebelumnya sudah melalui kontrol kualitas dengan membuang hasil pemindaian yang berkualitas rendah atau tidak dapat dibaca, setelah itu data didiagnosis oleh dua orang ahli [21].

b. Tuberculosis

Himpunan data tuberculosis ini berisi dari gabungan dua sumber himpunan data yaitu:

(35)

21 i. China Set - The Shenzhen set

Himpunan data ini dibuat oleh National Library of Medicine,

Maryland, USA bekerjasama dengan Shenzhen No.3 People’s Hospital, Guangdong Medical College, Shenzhen, China [22].

Data diambil berdasarkan Philips DR Digital Diagnose sistems. Himpunan data ini berisi 336 citra yang terinfeksi penyakit tuberculosis dan 326 normal.

ii. Montgomery County X-ray Set

Himpunan data ini dibuat oleh The National Library of Medicine bekerjasama dengan The Department of Health and Human Services of

Montgomery County, MD, USA. Datasets berisi 58 citra CXR

tuberculosis dan 80 citra CXR normal [22].

Dibawah ini merupakah contoh beberapa CXR dari himpunan data diatas.

Gambar 3.1 Contoh Data Citra CXR 3.2. Alur Penelitian

Pada sub-bab ini berisikan tentang alur penelitian yang akan dilakukan. Penelitian ini dilakukan menggunakan laptop dengan spesifikasi:

a. Intel Core i3-5005U 2.0GHz b. Vga Nvidia Geforce 930M c. RAM 4GB + 2GB

(36)

22 d. SSD 250GB + HDD 500GB

e. OS Linux Ubuntu

Adapun bahasa pemograman yang digunakan adalah Python 3.6.1 dengan

framework utama adalah pytorch serta beberapa modul fungsi lain seperti Numpy,

Scikit-Learn, OpenCV, Seaborn, Matplotlib dll. Adapun alur penelitian yang akan dilakukan adalah sebagai berikut:

(37)

23 Gambar 3.2 Alur Penelitian

(38)

24 3.2.1 Preprocessing

Sebelum menggunakan data citra CXR untuk model CNN, data terlebih dahulu di-preprocessing agar dapat diolah dengan model yang kita inginkan. Adapun prepocessing yang dilakukan adalah:

a. Resize

Digunakan untuk mentransformasi citra menjadi ukuran yang berbeda dari ukuran awalnya. Umumnya resize digunakan untuk mengecilkan ukuran citra agar bisa mengurangi biaya komputasi saat pegolahan data dilakukan oleh model. Pada penelitian ini peneliti me-resize seluruh citra menjadi ukuran panjang 32 piksel dan lebar 32 piksel.

b. RGB to Grayscale

Digunakan untuk mentransformasi citra yang hanya memiliki 3 channel (red, green, dan blue) menjadi 1 channel (Grayscale). Pada penelitian ini setiap citra yang memiliki channel 3 (red, green, dan blue) di-transformasi menjadi 1 channel (Grayscale).

c. Standarisasi Gaussian

Digunakan untuk mentransformasi setiap nilai piksel dengan mean dan standar deviasi pada keseluruhan data citra, sehingga data baru akan memiliki mean mendekati 0 dan standar deviasi mendekati satu. Rumus untuk menstandarisasi gambar adalah sebagai berikut.

𝑐itra standarisasi = citra−mean citra

standar deviasi citra

Pada penelitian ini setiap citra distandarisasi kemudian seluruh citra akan simpan dalam bentuk tensor dengan format numpy array, dengan dimensi dimensi (N,C,H,W) dimana N untuk banyaknya citra, C untuk jenis channel, H untuk panjang piksel setiap citra, dan W untuk lebar piksel setiap citra.

3.2.2 Pembagian Data

Setelah dilakukan preprocessing data kemudian dilakukan pembagian dataset CXR dengan proporsi 80% untuk data pelatihan dan 20% data uji.

(39)

25 3.2.3 Keseimbangan Data

Ketidakseimbangan data didalam kasus klasifikasi dapat menimbulkan permasalahan, salah satunya yaitu tingginnya akurasi model yang diakibatkan karena model selalu meprediksi data sebagai kelas mayoritas, hasilnya tingginya rasio perbandingan antara kelas mayoritas dan minoritas dapat mengakibatkan model mengabaikan sepenuhnya atas data yang merupakan kelas minoritas [23].

Oleh karena itu pada penilitian ini setelah data melalui tahap pembagian data menjadi data latih dan data uji, kemudian pada data latih dilakukan pengecekan data pada setiap kelasnya apakah setiap kelas memiliki anggota yang cukup seimbang. Jika anggota pada data latih tidak seimbang setiap kelasnya, maka akan dilakukan teknik sampel pada data latih yaitu undersampling data atau oversampling data secara acak. Proses undersampling data dilakukan dengan memperhatikan kelompok data yang paling sedikit,dimana proses ini secara acak membuang data pada kelompok lain sehingga ukuran setiap kelas sama banyak, proses undersampling dapat dilihat pada Gambar 3.3. Oversampling data dilakukan berdasarkan kelas terbanyaknya, dimana proses ini memperbanyak data pada kelas lain dengan menggandakan anggotanya, sehingga ukuran setiap kelas menjadi sama besar. Proses oversamplingdapat dilihat pada Gambar 3.4.

Gambar 3.3 Undersampling Data Undersampling Kondisi Awal Sesudah Undersampling

(40)

26 Gambar 3.4 Oversampling Data

3.2.4 Pengaturan Hyperparameter

Setelah dilakukan pemeriksaan atas keseimbangan data dan penerapan undersampling atau oversampling jika diperlukan, selanjutnya dilakukan pembuatan model CNN, dalam pembuatan model CNN sebelumnya perlu mengatur nilai hyperparameter seperti learning rate, epoch, loss function, optimizer, dan sebagainya. Hyperparameter adalah suatu parameter yang secara kusus digunakan untuk mengatur design model [13]. Pada penelitian ini hyperparameter untuk arsitektur model CNN yang digunakan berdasarkan penelitian yang dilakukan oleh Abivey dkk[9] sebagai berikut :

Tabel 3.1 Arsitektur Model CNN

Layers Deskripsi Nilai

Input Layer Input Citra 32 x 32 x 1

Hidden 1 Conv1 ReLU Maxpool1 16 kernel berukuran 2 x 2 Dengan stride 2 Ukuran kernel 2 x 2 Hidden 2 Conv2 ReLU Maxpool2 32 kernel berukuran 2 x 2 Dengan stride 2 Ukuran kernel 2 x 2 Hidden 3 Classification Layer Conv3 ReLU FC 64 kernel berukuran 2 x 2 3 Node Oversampling Kondisi Awal Sesudah Oversampling

(41)

27 Pada Tabel 3.1 merupakan struktur dari arsitektur CNN yang akan digunakan dimana istilah “Conv” merepresentasikan layer konvolusi, “Maxpool” merepresentasikan pooling layer yang digunakan yaitu maximum pooling, dan “FC” merepresentasikan fully connected layer yang berjumlah 3 node sesuai jumlah kelas yang akan diprediksi.

Tabel 3.2 Hyperparameter pada Model CNN yang lain

Jenis Nilai Optimizer SGD Learning Rate 0,0001 Maksimal Epoch 2000 Batch Size 50 Momentum 0,9

Pada Tabel 3.2 merupakan hyperparameter lain yang digunakan saat pelatihan dimana learning rate 0,0001 dipilih agar saat pelatihan nilai loss dapat mencapai minimum global dengan baik, oleh karena itu epoch maksimum yang dipilih sebesar 2000 epoch. Momentum 0,9 digunakan untuk mempercepat model dalam meminimumkan nilai loss nya, dan batch size sebesar 50 dipilih agar pelatihan model dapat dilakukan dengan 50 data sekaligus dalam satu kali iterasi sehingga dapat memangkas waktu pelatihan yang dibutuhkan.

3.2.5 Pelatihan Model CNN

Setelah melalui tahap pengaturan hyperparameter, model akan dilatih dengan data CXR. Pada penelitian ini metode optimasi yang digunakan adalah Mini-Batch SGD, sehingga proses pelatihan dilakukan pada setiap bagian kecil (Mini-batch) data yang berisi 50 data latih. Pertama data input berukuran 32 × 32 piksel sebanyak 50 data yang dipilih secara acak dari himpunan data latih, masing-masing data dibawa menuju hidden layer pertama, hidden layer ini terdiri dari beberapa bagian yaitu konvolusi, aktivasi dan pooling. Operasi yang terjadi pada bagian konvolusi adalah operasi konvolusi seperti pada persamaan ( 11 ) dengan kernel

(42)

28 berukuran 2 × 2 sebanyak 16 buah dan stride sebanyak 2 sehingga menghasilkan output berupa feature map berukuran 16 × 16 sebanyak 16. Kemudian seluruh feature map diaktivasi dengan memepetakan setiap nilai pada feature map terhadap fungsi aktivasi ReLU seperti pada persamaan ( 4 ). Setelah diaktivasi, kemudian masuk pada bagian pooling, pada penelitian ini jenis pooling yang digunakan adalah maximum pooling dengan ukuran kernel 2 × 2 dan stride sebanyak 2, sehingga menghasilkan 16 buah feature map yang masing-masing berukuran 8 × 8.

Tabel 3.3 Output Hidden layer

Nama Layer Conv Max Pooling

Ukuran Feature Map Ukuran Feature Map Hidden layer 1 16 × 16 16 8 × 8 16 Hidden layer 2 4 × 4 32 2 × 2 32 Hidden layer 3 1 × 1 64

Setelah melalui layer pertama, kemudian output dari layer pertama akan masuk menuju hidden layer ke dua, dengan operasi dalam hidden layer ke 2 sama dengan hidden layer sebelumnya, pada layer ketiga pun demikian. Output setiap hidden layer dirangkum pada Tabel 3.3. Setelah melalui seluruh hidden layer, maka feature map yang dihasilkan dari hidden layer 3, dibawa masuk menuju

classification layer. Sebelum itu feature map akan dilakukan flatten yakni diubah

menjadi berbentuk vektor, setelah feature map diubah menjadi vektor barulah dengan menggunakan persamaan ( 1 ) dimasukan kedalam classification layer yang berisikan 3 buah node. Setelah itu nilai output dari output layer sebuah batch data, digunakan untuk menghitung total nilai loss dari loss function. Pada penelitian ini loss function yang digunakan adalah cross entropy loss seperti pada persamaan ( 10 ). Proses dari input layer hingga menghitung output layer disebut sebagai forward phase.

Setelah melalui forward phase maka akan dilakukan backward pada model CNN untuk menghitung gradient setiap parameter yang akan dioptimasi berupa

(43)

29 weight dan bias. Kemudian parameter tersebut diperbaharui dengan parameter baru berdasarkan algoritma optimasi SGD with momentum, proses ini disebut sebagai backward phase. Keseluruhan proses dari forward phase hingga backward phase disebut sebagai backpropagation. Satu kali proses backpropagation yang dilakukan pada keseluruh bagian data, disebut satu epoch. Pada penelitian ini proses dilakukan sebanyak 2000 epoch dan model dengan nilai loss terkecil pada data uji akan disimpan.

Gambar 3.5 Pelatihan Model CNN

Ilustrasi proses pelatihan dari input hingga output model CNN dapat dilihat pada Gambar 3.5. Pada penelitian ini pelatihan model CNN akan dilakukan sebanyak 2 kali, yakni pertama untuk data hasil undersampling dan kedua dengan data hasil oversampling. Setiap model yang dilatih nilai loss serta waktu yang dibutuhkan akan disimpan.

3.2.6 Pemilihan Model dari Setiap Teknik Sampling

Setelah pelatihan model selesai dilakukan, selanjutkan dilihat pertumbuhan nilai loss pada data uji dari awal pelatihan hingga akhir pelatihan, untuk melihat saat kapan model mulai overfitting dan pada saat kapan model mencapai minimum nilai loss pada data uji.

Model CNN dengan nilai loss minimum pada data uji akan dipilih dan kemudian dievaluasi untuk melihat performa masing-masing model dalam memprediksi setiap data.

(44)

30 3.2.7 Evaluasi

Model yang sudah dilatih dengan data latih akan menghasilkan model yang siap untuk dievaluasi. Evaluasi dilakukan dengan melihat confusion matrix, matrix classification yang berisi precision dan recall setiap kelas serta akurasi dari model, untuk melihat seberapa baik model yang dipilih untuk mengklasifikasikan data disetiap kelas dan plot waktu untuk melihat seberapa lama waktu yang dibutuhkan saat pelatihan model dilakukan.

3.2.8 Pemilihan Model Terbaik

Setelah model dievaluasi, model terbaik yang dilatih dari data latih hasil setiap teknik sampling akan dipilih berdasarkan nilai AUC terbaik, nilai AUC ini didapatkan dari luas area dibawah kurva ROC.

(45)

31 BAB IV

HASIL DAN PEMBAHASAN

4.1. Hasil Preprocessing Data

Himpunan data CXR yang ada dilakukan penggabungan dan penempatan data sesuai dengan kelasnya, jumlah keseluruhan data dapat dilihat pada pada Tabel 4.1. Selanjutnya proses prepocessing dilakukan pada setiap citra pada data CXR dengan melakukan transformasi pada setiap citra yang memiliki channel sebanyak 3 (RGB) menjadi channel sebanyak 1 (grayscale), Setelah itu dilakukan resizing seperti pada Gambar 4.1 dengan merubah citra menjadi ukuran 32 × 32 piksel. Kemudian ditransformasi menjadi tensor dimana setiap piksel pada citra distandarisasi mengikuti distribusi normal dengan mean 0 dan standar deviasi 1, kemudian disimpan dalam format numpy array.

Tabel 4.1 Jumlah Data CXR Setelah Penggabungan

Kelas Data CXR

Pneumonia 4273

Normal 1989

Tuberculosis 394

Jumlah 6656

Gambar 4.1 Proses Preprocessing (𝑚 × 𝑛 ) (32 × 32)

Resize

Setelah proses Grayscale

(46)

32 4.2. Pembagian Data

Setelah tahapan preprocessing data, kemudian data akan dibagi menjadi 2 bagian dimana 80% menjadi data latih dan 20% sisanya sebagai data uji, hasil pembagian data dapat dilihat pada Gambar 4.2.

Gambar 4.2 Plot Jumlah Data Latih dan Data Uji 4.3. Keseimbangan Data

Setelah tahapan pembagian data dilakukan, tahap selanjutnya adalah memeriksa jumlah anggota pada setiap kelompok atau kelas pada data latih. Terlihat pada Gambar 4.2 jumlah data pada setiap kelas pada data latih merupakan data tidak seimbang sehingga untuk mengatasinya peneliti melakukan dua teknik sampling yaitu undersampling dan oversampling.

Undersampling data dilakukan dengan membuang secara acak anggota pada kelompok data yang lebih banyak dari kelompok data yang berjumlah lebih sedikit, sehingga jumlah data pada setiap kelas sama besar, proses undersampling ini dapat dilihat pada Gambar 4.3.

3420 1581 323 853 408 71 0 500 1000 1500 2000 2500 3000 3500 4000

Pneumonia Normal Tuberculosis

Jum lah D at a Label

Plot Jumlah Data Latih dan Data Uji

(47)

33 Gambar 4.3 Plot Jumlah Data Hasil Undersampling dan Oversampling Sedangkan oversampling data merupakan kebalikannya dari undersampling dimana kelompok data yang lebih sedikit dari kelompok data yang berjumlah paling besar akan diperbanyak secara acak berdasarkan data contoh yang ada sehingga jumlah data setiap kelompok akan sama besar, proses oversampling ini dapat dilihat pada Gambar 4.3 bagian kanan.

4.4. Pemilihan Model dari Setiap Teknik Sampling

Pada tahap ini pemilihan model untuk setiap teknik sampling pada data latih dilakukan dengan menghitung nilai loss setiap epoch pada data uji, kemudian nilai loss pada data uji terendah dipilih sebagai model yang akan digunakan. Hal ini dilakukan karena model yang memiliki nilai minimum loss pada data uji merupakan model yang memiliki tingkat kesalahan terkecil untuk memprediksi kelas pada setiap data.

4.4.1. Undersampling

Pada model CNN yang dibentuk dengan data latih dari hasil undersampling dapat dilihat perubahan nilai loss pada data latih dan data uji setiap epoch pada Gambar 4.4. 323 3420 323 3420 323 3420 0 500 1000 1500 2000 2500 3000 3500 4000 Undersampling Oversampling

Plot Jumlah Data Latih Hasil Undersampling

dan Oversampling

(48)

34 Gambar 4.4 Plot Nilai Loss Model CNN Undersampling

Pada Gambar 4.4 terlihat bahwa performa model dari nilai loss pada data latih terus menurun hingga akhir pelatihan dengan nilai loss minimum sebesar 0,197. Sedangkan pada data uji, nilai loss terus menurun hingga mencapai minimum pada epoch ke-1781 dengan nilai loss sebesar 0,373 lalu konvergen setelahnya hingga akhir pelatihan. Sehingga model CNN dengan data latih hasil undersampling yang dipilih adalah model yang dihasilkan pada epoch ke-1781. 4.4.2. Oversampling

Pada model CNN yang dibentuk dengan data latih dari hasil oversampling dapat dilihat pada Gambar 4.5 perubahan nilai loss pada data latih dan data uji setiap epoch. Pada gambar tersebut terlihat bahwa performa model dari nilai loss pada data latih terus menurun hingga epoch ke-1999 dengan nilai loss minimum sebesar 0,020 dan konvergen setelahnya hingga akhir pelatihan. Sedangkan pada data uji, nilai loss terus menurun hingga mencapai minimum pada epoch ke-596 dengan nilai loss sebesar 0,244 lalu kemudian nilai loss pada data uji meningkat hingga akhir pelatihan.

(49)

35 Gambar 4.5 Plot Nilai Loss Model CNN Oversampling

Penurunan nilai loss pada data latih dari awal hingga akhir pelatihan, sedangkan peningkatan nilai loss yang terjadi pada data uji setelah epoch ke-596 mengindikasikan bahwa model yang dibentuk setelah epoch tersebut merupakan model yang overfitting. Sehingga model CNN dari data latih oversampling yang dipilih adalah model yang dihasilkan pada epoch ke-596.

4.5. Evaluasi

Setelah dilakukan pemilihan model dengan melihat nilai loss minimum pada setiap teknik sampling yang berbeda, selanjutnya akan dilihat performa model berdasarkan matrix classification dan confusion matrix pada data uji.

4.5.1. Undersampling

Pada Tabel 4.2 dapat dilihat confusion matrix pada model CNN yang terbaik dengan data yang melalui proses undersampling, dari sini dapat dilihat bahwa model dalam mengklasifikasikan penyakit pneumonia memiliki kesalahan prediksi 70 dari 853 data, sedangkan yang normal memiliki total kesalahan sebanyak 116 dari 408 dan tuberculosis memiliki total kesalahan sebanyak 3 dari 71 data. Dari hasil tersebut jika berdasarkan total kesalahan yang dibuat maka

(50)

36 model memiliki kemampuan terbaik saat mengklasifikasikan kelas penyakit tuberculosis diikuti dengan kelas penyakit pneumonia dan terakhir kelas normal.

Tabel 4.2 Confusion Matrix Model CNN Undersampling Pneumonia Normal Tuberculosis

Pneumonia 783 68 2

Normal 48 292 68

Tuberculosis 0 3 68

Dari confusion matrix pada Tabel 4.2, didapat hasil evaluasi berupa akurasi, precision dan recall yang ditunjukan pada Tabel 4.3.

Tabel 4.3 Matrix Classification Model CNN Undersampling Precision Recall Jumlah

Data Pneumonia 0.94 0.92 853 Normal 0.80 0.72 408 Tuberculosis 0.49 0.96 71 Akurasi 0.86 1332 Micro Average 0.86 0.86 1332 Macro Average 0.75 0.86 1332

Berdasarkan Tabel 4.3 model CNN dengan data latih hasil undersampling memiliki akurasi, micro average precision dan micro average recall sebesar 0,86. Sedangkan macro average precision memiliki nilai sebesar 0,75 dan macro average recall sebesar 0.86. Pada kelas pneumonia memiliki precision tertinggi sebesar 0,94 diikuti dengan normal 0,80 lalu tuberculosis 0,49. Walaupun tuberculosis memiliki nilai precision paling rendah dibanding kelas lainnya, namun tuberculosis memiliki nilai recall tertinggi sebesar 0,96 diikuti dengan pneumonia 0,92 kemudian normal 0,72.

4.5.2. Oversampling

Pada Tabel 4.4 dapat dilihat confusion matrix pada model CNN yang terbaik dengan data yang melalui proses oversampling, dari sini dapat dilihat bahwa model dalam mengklasifikasikan penyakit pneumonia memiliki kesalahan prediksi

(51)

37 47 dari 853 data, sedangkan yang normal memiliki total kesalahan sebanyak 83 dari 408 data dan tuberculosis memiliki total kesalahan sebanyak 10 dari 61 data. Dari hasil tersebut jika berdasarkan total kesalahan yang dibuat maka model memiliki kemampuan terbaik saat mengklasifikasikan kelas penyakit tuberculosis, setelah itu kelas penyakit pneumonia dan terakhir kelas normal.

Tabel 4.4 Confusion Matrix Model CNN Oversampling Pneumonia Normal Tuberculosis

Pneumonia 816 36 1

Normal 40 325 43

Tuberculosis 0 10 61

Dari confusion matrix pada Tabel 4.4, didapat hasil evaluasi berupa akurasi, precision dan recall yang ditunjukan pada Tabel 4.5.

Tabel 4.5 Matrix Classification Model CNN Oversampling Precision Recall Jumlah

Data Pneumonia 0.95 0.96 853 Normal 0.88 0.80 408 Tuberculosis 0.58 0.86 71 Akurasi 0.90 1332 Micro Average 0.90 0.90 1332 Macro Average 0.80 0.87 1332

Berdasarkan Tabel 4.5 model CNN dengan oversampling memiliki akurasi, micro average precision dan micro average recall sebesar 0,90. Sedangkan macro average precision memiliki nilai sebesar 0,80 dan macro average recall sebesar 0.87. Pada precison dan recall nilai tertinggi ada pada kelas penyakit pneumonia dengan nilai berturut-turut 0,95 dan 0,96. Untuk precision tertinggi kedua yaitu ada pada kelas normal dengan nilai 0,88, kemudian tuberculosis dengan nilai precision 0,58. Sedangkan untuk nilai recall terbaik kedua yaitu pada kelas tuberculosis dengan nilai 0,85 kemudian normal dengan nilai recall 0,80.

(52)

38 4.5.3. Waktu Pelatihan

Pelatihan yang dilakukan dengan spesifikasi sesuai pada subbab 3.2. dapat dilihat pada gambar di bawah ini.

Gambar 4.6 Plot Waktu Pelatihan

Pada Gambar 4.6 dapat dilihat bahwa waktu yang dibutuhkan untuk pelatihan Model CNN disetiap data latih hasil teknik sampling yang digunakan berbeda, tentunya teknik oversampling memerlukan waktu pelatihan lebih lama dibandingan dengan undersampling. Hal ini disebabkan banyaknya data latih yang digunakan untuk pelatihan pada model CNN dengan oversampling jauh lebih banyak dibandingkan model CNN yang dilatih dengan data latih hasil undersampling.

4.6. Pemilihan Model Terbaik

Banyak permasalahan didalam penelitian untuk mendeteksi suatu penyakit, lebih mengutamakan pengukuran dalam hal recall [24]. Dalam penelitian ini recall penting karena, tingginya recall berarti Model CNN yang dibuat memiliki tingkat kesalahan yang sedikit dalam mendeteksi sesorang terkena penyakit pneumonia atau tuberculosis.

(53)

39 Gambar 4.7 Plot ROC Model CNN Undersampling

Pembentukan kurva ROC untuk menghitung nilai AUC setiap model dilakukan untuk memilih model terbaik pada penelitian ini. Kurva ROC umum digunakan dalam pengambilan keputusan medis dan juga digunakan dalam pemilihan model terbaik dari algoritma machine learning dan penelitian pada bidang data mining [17]. Kurva ROC meringkas dan menampilkan secara informatif dari performa sebuah model terutama recall.

Berdasarkan Gambar 4.7 dan Gambar 4.8 performa model berdasarkan nilai AUC terlihat bahwa model CNN yang dihasilkan dari data latih hasil oversampling lebih baik dibandingkan model CNN yang dihasilkan dari data latih hasil undersampling. Dimana nilai micro average AUC , macro average AUC, AUC kelas pneumonia, AUC kelas normal dan AUC kelas tuberculosis berturut-turut pada model CNN hasil oversampling adalah 0,98; 0,98; 0,98; 0,96 dan 0,99.

(54)

40 Gambar 4.8 Plot ROC Model CNN Oversampling

Sedangkan pada model CNN undersampling nilai micro average AUC, macro average AUC, AUC kelas pneumonia, AUC kelas normal dan AUC kelas tuberculosis berturut-turut yaitu 0,96; 095; 0,97; 0,91; 0,98. Karena setiap nilai AUC pada model CNN oversampling lebih besar dibanding model CNN undersampling maka model terbaik dari hasil data latih setiap teknik sampling adalah model CNN yang dibuat dengan data latih hasil oversampling.

(55)

41

BAB V

PENUTUP 5.1. Kesimpulan

Berdasarkan data dan hasil penelitian yang dilakukan memperlihatkan bahwa model CNN terbaik adalah model yang dihasilkan oleh data latih hasil oversampling dengan nilai AUC pada kelas tuberculosis sebesar 0,99 dan AUC pada kelas pneumonia sebesar 0,98, serta hasil prediksi yang mampu mengidentifikasi sebanyak 86% penyakit tuberculosis dan 96% penyakit pneumonia secara benar.

5.2. Saran

Pada penelitian kali ini, terdapat beberapa hal yang mungkin dapat dikembangkan dimasa depan. Oleh sebab itu, penulis ingin memberikan saran untuk penelitian selanjutnya yaitu:

1. Dapat menambahkan preprocessing lain seperti penghilangan tulang pada data CXR.

2. Dapat meningkatkan jumlah data setiap kelas baik secara manual maupun menggunakan generator seperti GAN.

3. Dapat melakukan penelitian menggunakan arsitektur CNN lain. 4. Dapat melakukan penelitian menggunakan optimizer lain.

5. Dapat melakukan penelitian dengan menambahkan teknik regularization lain untuk mencegah overfitting dan mempercepat proses pelatihan.

Gambar

Gambar 2.1 Arsitektur Dasar dari Perceptron
Gambar 2.2 Contoh Arsitektur dari Feed Forward Networks
Gambar 2.3 Ilustrasi Konvolusi antara Input dan Kernel 1 323255162828INPUT KERNELOUTPUTKedalaman setiap kernel harus sama dengan input-nya.Kedalaman output terdefinisi berdasarkan banyaknya kernel yang
Gambar 2.4 Ilustrasi Operasi Aktivasi dari Input feature Map  2.6.3.  Pooling
+7

Referensi

Dokumen terkait

Berdasarkan pemaparan dari penelitian terdahulu, pada kesempatan ini peneliti mengajukan penelitian menggunakan metode Convolutional Neural Network karena

Hasil pengujian klasifikasi Osteoporosis bentuk tulang normal, Primer dan Senile menggunakan metode CNN dan pada penelitian ini juga dilakukan pengujian data dalam bentuk

Beberapa penelitian mengenai identifikasi penyakit kanker paru-paru pada citra medis chest X-Ray (CXR) dan penelitian terhadap objek yang berbeda dengan menggunakan metode

Berdasarkan data hasil uji yang telah dilakukan pada sistem klasifikasi penyakit pneumonia melalui citra Chest X-Ray menggunakan Convolutional Neural Network,

Pada penelitian ini akan mencoba mengolah data sentiment analysis dari Amazon dan Yelp dengan menggunakan model deep learning seperti CNN (Convolutional Neural

Dari penelitian yang sudah dilakukan ditarik kesimpulan bahwa CNN terbukti mampu mengklasifikasikan dengan baik untuk studi kasus spesies tanaman anthurium dengan akurasi yang cukup

Tujuan dari penelitian adalah sebagai media pembelajaran untuk masyarakat dan pembudidaya tanaman aglaonema, membuat sistem identifikasi tanaman aglaonema menggunakan

Berdasarkan hasil penelitian yang dilakukan, kesimpulan dari Identifikasi Penyakit Efusi pleura berdasarkan Citra Chest X - Ray dengan Menggunakan Metode