Imbalanced Class & Accuracy

Klasifikasi adalah proses untuk memprediksi class dari instance pada dataset. Paling sedikit ada 2 class pada dataset agar proses klasifikasi dapat dilakukan.

blog02

Ketika berhadapan dengan kasus klasifikasi maka untuk mengukur baik tidaknya algoritma atau teknik klasifikasi tersebut dapat dilihat dari akurasi prediksi yang dilakukan oleh algoritma atau teknik tersebut.  Semakin tinggi nilai akurasi yang didapat maka semakin baik pula algoritma tersebut. Lalu bagaimana mengetahui nilai akurasi yang kita dapat telah baik? Apa ukurannya?

Jika saya punya nilai akurasi suatu algoritma sebagai berikut:

  • Algorimta A: 70%
  • Algorimta B: 80%
  • Algorimta C: 90%

Kira-kira manakah algoritma yang paling baik kerjanya dalam memprediksi? Dengan melihat angka tersebut tentu saya akan memilih Algoritma C karena mempunyai akurasi 90% dalam memprediksi. Artinya jika dimiliki data sejumlah 100 instance maka algoritma C dapat memprediksikan dengan benar 90 instance. Benarkan? Smile

Sayangnya hal seperti itu belum tentu berlaku. Kita tidak bisa begitu saja menentukan baik tidaknya suatu algoritma klasifikasi dengan melihat nilai akurasinya.  Tetapi kita harus melihat terlebih dahulu jumlah instance dari masing-masing class.

Jika dalam kasus 2 class dimana jumlah instance setiap classnya adalah seimbang (misal class A memiliki 50% instance, dan class B memiliki 50% intance), maka nilai akurasi 90% merupakan nilai yang bagus.  Tetapi jika akurasinya hanya 50% maka itu seperti peluang ketika kita melempar koin. Dimana kesempatan untuk mendapatkan angka dan gambar adalah 50%.

Capture

 

Tetapi jika classnya tidak seimbang (seperti pada gambar di bawah ini) misal jumlah instance class A adalah 97% dan class B memiliki 3 % instance maka nilai akurasi 97% saja masih dianggap tidak bagus.  Karena hal itu sama halnya seperti mencoba peruntungan dengan melempar koin. Nah apalagi jika akurasinya hanya 90%, artinya ada kesalahan 7% dalam memprediksi class A ditambah 3% kesalahan dalam memprediksi kelas B.

Capture

Nah oleh karena itu dalam melakukan klasifikasi ada beberapa hal yang harus diperhatikan, yaitu:

  • Jumlah instance pada setiap class, dan harus memperhatikan apakah jumlah instance setiap class seimbang atau tidak. Karena dari paparan di atas hal tersebut mempunyai pengaruh dalam menentukan baik tidaknya akurasi yang didapat.
  • Untuk melihat performa klasifikasi jangan hanya melihat nilai akurasi (accuracy) saja tapi juga mesti diperhatikan specificity dan sensitivity untuk melihat akurasi prediksi setiap class.
  • Selain menggunakan confusion matrix untuk melihat performansi algorimat klasifikasi mungkin tanpat digunakan juga teknik lain seperti visualisasi dengan menggunakan ROC dan kurva Precision/Recall.

Pada posting selanjutkan diharapkan akan dijelaskan detail tentang ROC dan kurva Precision/Recall.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.