Skip to content
Home » Blog » Pendeteksi kanker

Pendeteksi kanker

Kanker adalah salah satu penyakit yang mematikan kita sering mendengar bagaimana orang meninggal dikarenakan penyakit ini. Dan saya pribadi pernah mengalami kehilangan salah satu kenalan saya dikarenakan penyakit ini. Pada kesampatan ini saya akan mencoba untuk membuat machine learning yang mendeteksi kanker.

Dikarenakan latar belakang pendidikan saya merupakan teknik kimia, saya minta maaf jika pada project kali ini masih banyak kekurangan tetapi saya akan tetap berusaha untuk mempelajari dengan maksimal. Jika anda memiliki masukkan silahkan email saya, saya sangat mengapresiasi setiap perbaikan yang anda berikan.

Latar belakang masalah

Saya mengambil data yang akan dianalisa dari kaggle, dalam dataset berisi gambar patologi dari berbagai foto sell yang terinfeksi sel kanker dan tidak terinfeksi sel kanker. Ada beberapa istilah medis yang asing bagi masyarakat umum. Saya akan menjelaskan satu persatu terlebih dahulu.

Histopatologi

Histopatologi adalah prosedur yang melibatkan pemeriksaan jaringan utuh yang diambil melalui biopsi atau operasi di bawah mikroskop. Pemeriksaan ini sering dibantu oleh penggunaan teknik pewarnaan khusus dan tes terkait lainnya, misalnya penggunaan antibodi untuk mengidentifikasi berbagai komponen jaringan pada tubuh. 

Jika anda ingat saat SMA, kita pernah diminta untuk mengamati sel tumbuhan menggunakan mikroskop. Dan jika ingin lebih detail kita bisa menambahkan zat pewarna. Hispatologi pada dasarnya seperti itu, ilmuan mengambil sample lalu mewarnainya dan hasil pengamatan tersebut disimpan sebagai dataset. Dan dataset tersebut akan kita gunakan untuk membuat machine learning. Berikut adalah contoh dari sample dataset yang akan dianalisa.

Data yang disediakan merupakan data yang diambil dari hasil pengamatan kelenjar getah bening yang sudah diberikan pewarna hematoxylin dan eosin (H&E). hematoxylin dan eosin (H&E) merupakan metode pewarnaan yang biasa digunakan untuk memberikan warna ke sell yang diamati sehingga bisa diamati dibawah microskop.

Teknik pewaranaan menggunakan hematoxylin dan erosin sangat umum digunakan karena dapat membedakan nukleus dan sitoplasma pada irisan penampang. Haematoxylin berfungsi sebagai pewarna nukleus yang baik dan hematoxylin memberikan warna biru kehitaman, sedangkan erosin berfungsi sebagai pewarna sitoplasma dia memberikan warna merah muda.

Limfosit

Limfosit adalah salah satu jenis sel darah putih yang berfungsi untuk melawan benda asing di dalam tubuh, seperti virus, bakteri, dan sel kanker. Ada tiga jenis limfosit yang masing-masing memiliki peran berbeda. Saat jumlah limfosit terlalu rendah atau terlalu tinggi, ini bisa jadi menandakan adanya penyakit tertentu.

Kelenjar getah bening

Kelenjar getah bening adalah bagian dari sistem kekebalan tubuh yang berfungsi melawan infeksi akibat bakteri, virus, kuman, dan parasit. Jika terjadi infeksi, kelenjar akan membengkak untuk memberikan tanda. Setelah infeksi mereda, kelenjar akan mengempis dengan sendirinya dan kembali ke ukuran semula.

Deskripsi dataset

Pada dataset yang saya gunakan kali ini saya ambil data website kaggle. Data yang dianalisa memiliki spesifikasi sebagai berikut.

  • Kumpulan data ini terdiri dari gambar histopatologi, masing-masing dengan resolusi 96×96 piksel.
  • Label yang menjadi perhatian ditentukan oleh wilayah tengah gambar (32×32 piksel). Label positif diberikan jika wilayah tengah ini mengandung setidaknya satu piksel jaringan tumor, yang menandakan adanya kanker.
  • Data set ini dirancang untuk mendukung model konvolusional penuh tanpa memerlukan penambahan nol (zero-padding). Hal ini memastikan bahwa perilaku model tetap konsisten saat ditingkatkan untuk menganalisa gambar seluruh objek.

Tanpa perlu banyak pembahasan lagi, silahkan anda baca laporan pembuatan machine learning yang sudah saya buat.

Pembahasan

Saya melakukan training data menggunakan python menggunakan metode convolutional neural network (CNN). Dalam proses training ini membutuhkan waktu selama kurang lebih selama sembilan jam. Berikut merupakan hasil dari machine learning yang sudah saya bangun.

Training and validation loss

Training and validation loss adalah angka kesalahan model waktu diuji menggunakan data yang tidak ikut dilatih. Semakin kecil nilai dari validation loss maka semakin baik model yang dibangun. Dapat dilihat bahwa grafik menunjukkan kecenderungan penurunan hingga pada epoch ke 20, didapatkan validation loss sebesar 0.165

Training and validation accuracy

Training and validation accuracy adalah persentase ketepatan prediksi model saat diuji pakai data validasi. Semakin tinggi angka validarion accuracy maka akan didapatkan model yang lebih baik. Dapat dilihat pada grafik disamping bahwa pada epoch pertama model mendapatkan validation accuracy yang rendah dan terus meningkat hingga diangka 0.94 atau bisa disebut juga memiliki accuracy sebesar 94%

Demikian pembahasan pembuatan machine learning menggunakan metode CNN, terima kasih banyak karena sudah membaca hingga akhir. Jika anda ingin melihat coding yang saya buat anda bisa melihatnya melalui akun github yang saya miliki.

Warm regrads

Febrian