Dulu dipakai perang, sekarang dipakai modeling🗡️🛡️
Intro to ROC-AUC

.
.
A thread
Minggu pagi 7 Desember 1941, 420 pesawat pengebom milik Kekaisaran Jepang menyerang pangkalan militer Amerika Serikat di Pearl Harbor, Hawaii. Lebih dari 20 kapal, 323 pesawat, dan 3000 tentara AS menjadi korban dalam 'surprise attack' selama 2 jam tersebut.
Peristiwa ini akhirnya menyeret AS untuk bergabung dengan Sekutu dan mengubah peta pertempuran Perang Dunia II setelah esok harinya, 8 Desember 1941, Presiden AS Franklin D. Roosevelt mendeklarasikan perang dengan Jepang.
Tapi ada hal lain yang menarik dari peristiwa ini. Saat itu, militer AS sebenernya sudah memiliki instalasi radar di Oahu, Hawaii. Dan entah kenapa, radar AS 'missed' dalam mendeteksi pesawat Jepang yang notabene bukan cuma satu atau dua pesawat, tapi 420 pesawat!
Nah, dari sini militer AS lalu melakukan riset untuk mengevaluasi dan meningkatkan performa radar. In a nutshell, Radar (Radio Detection and Ranging) bekerja dengan memancarkan sinyal radio ke udara lewat antena ‘transmitter’ yang pantulannya lalu dideteksi oleh ‘receiver’.
Receiver memiliki ‘gain’ yang dapat diatur manual. Jika gain di set nol, receiver tidak akan mendeteksi sinyal apapun. Jika gain di set tinggi, pesawat yang bisa dideteksi akan semakin banyak, namun receiver juga akan semakin sensitif terhadap ‘noise’ akibat burung, misalnya.
Radar dioperasikan oleh seorang ‘operator’ yang terus memonitor tanda adanya pesawat lewat titik-titik kecil pada layar. Operator inilah yang harus membuat keputusan apakah titik yang dilihatnya adalah pesawat musuh atau bukan. And here’s where the fun parts begin!
Dengan memvariasikan gain 'receiver', para peneliti dapat mengevaluasi performa 'operator' dalam mengklasifikasi pesawat musuh serta menentukan besar gain yang optimal. Hasilnya lalu di plot menjadi sebuah kurva yang diberi nama ‘Receiver Operating Characteristics’ (ROC).
Terus kurva ROC itu maksudnya apa min? Nah sebelum ke situ, kita perlu refresh dulu nih sebentar tentang materi yang sebenernya pernah mimin bahas jadi thread tersendiri. Temen-temen masih inget ini apa?
Confusion matrix! Confusion matrix adalah sebuah matriks evaluasi kinerja model secara keseluruhan. Banyak banget metrics klasifikasi yang bisa diturunin dari sini, mulai dari accuracy, precision, dan lain-lain. And yess, kurva ROC juga dibuat memakai confusion matrix.
Nah, untuk bisa lancar memahami ROC, ada dua metrics turunan confusion matrix yang perlu temen-temen kenal.
1) True Positive Rate (TPR) atau yang biasa disebut Recall.
Sesuai namanya, True Positive Rate (TPR) a.k.a Recall adalah metrics yang nunjukkin: Dari seluruh dataset kelas ‘positif’, berapa banyak sih yang ditebak ‘positif’ juga oleh model?
Contoh, misalnya kita membuat model yang memprediksi apakah suatu email spam atau bukan. Saat model kita evaluasi, diperoleh TPR = 45/(45+20) = 69.23%. Itu artinya, 69.23% dari email yang emang beneran spam, terdeteksi sebagai ‘spam’ juga oleh model. Aman?
Okay lanjut! Yang kedua ini ada metrics yang nggak kalah keren, False Positive Rate (FPR)!
False Positive Rate (FPR) itu metrics yang nunjukkin: dari seluruh dataset kelas ‘negatif’, berapa banyak yang SALAH ditebak oleh model? Dan ini unik temen-temen, beda sama metrics lain yang biasanya soal proporsi yang 'benar', FPR justru kebalikannya: ‘Berapa yang salah?’
Nah, dua metrics inilah yang membangun kurva ROC. Pada awalnya, ROC dibuat dengan menghitung TPR dan FPR operator radar dalam mengenali pesawat musuh dengan gain receiver yang diubah-ubah, lalu di plot hingga diperoleh kurva yang 'merangkum' performa keseluruhan operator.
Konsep yang sama digunakan untuk evaluasi model klasifikasi biner. Umumnya, model memakai ‘threshold’ tertentu untuk menentukan apakah suatu data termasuk kelas ‘positif’ atau ‘negatif’. Pada logistic regression misalnya, defaultnya adalah 0.5
Pertanyaannya, apakah 0.5 pasti optimal? Belum tentu. Dalam kasus deteksi penyakit jantung tadi misalnya, kejadian pasien yang sebenernya menderita tapi diprediksi sehat (false negative) jauh lebih fatal dibandingkan kejadian pasien sehat yang diprediksi sakit (false positive).
Itu artinya, bisa jadi model akan lebih optimal kalau nilai threshold dibuat lebih rendah. Tapi seberapa rendah? Nah, layaknya peneliti yang sedang mengevaluasi performa operator radar, kita ukur TPR dan FPR model untuk berbagai nilai threshold A, B, C, ... dan lalu kita plot.
And believe it or not, kita baru aja membuat kurva ROC dari model yang kita bangun! Ada 4 nilai threshold yang kita evaluasi: A, B, C, dan D dengan koordinat pada kurva ROC nya sesuai dengan berapa nilai TPR dan FPR model untuk masing-masing nilai threshold.
Garis diagonal di kurva ROC nunjukkin titik-titik di mana kemungkinan tebakan model akan ‘true’ sama dengan kemungkinan ‘false’ nya. Artinya, jika ROC model kita berhimpit dengan garis tersebut, model kita nggak ada bedanya dengan model yang simply menebak apapun secara random!
Nah, dari kurva ROC ini, kita bisa menentukan nilai threshold mana yang paling optimal untuk model kita. Gimana caranya min?
Pertama, jelas kita nggak pakai threshold A dan D karena kemampuan model menebak dengan benar akan sama dengan yang salahnya. Lalu B atau C? Nah, jika use case kita menganggap false positive SANGAT penting, maka pakai nilai threshold C, karena FPR nya sempurna -- nol.
Tapi kalau kita mau model sebagus mungkin dan false positive masih bisa kita toleransi, maka gunakan threshold B. Meskipun FPR nya menjadi lebih besar, tapi TPR nya sempurna dan kita juga masih bisa mentoleransi kenaikan FPR!
Selain digunakan untuk ‘memandu’ pemilihan threshold, kurva ROC juga bisa dipakai untuk membantu ‘memilih’ model untuk use case yang dihadapi, seperti menentukan model mana yang lebih optimal, apakah naive bayes atau logistic regression, misalnya. Caranya?
Kita bandingkan luas di bawah kurva ROC masing-masing model! Nilai luas di bawah kurva inilah yang disebut dengan Area Under the Curve (AUC). AUC untuk ‘perfect classifier’ adalah 1 dan AUC untuk model yang menebak apapun secara random adalah 0.5
Dengan membandingkan AUC dari kurva ROC setiap model yang ingin kita evaluasi, kita dapat mengetahui model mana yang performanya lebih optimal. Semakin besar AUC -- semakin mendekati nilai 1 -- artinya model semakin baik dalam melakukan klasifikasi.
Selain untuk klasifikasi biner, analisis ROC-AUC sebenernya bisa juga digunakan dalam klasifikasi multi kelas. Namun, dalam implementasinya perlu ‘penyesuaian’ seperti dengan metode One vs All, One vs One, dan lain-lain. Nanti yaa kapan kapan mimin bahas okaay!
Nah, insight apa nih yang bisa kita ambil?
Dari sini, kita belajar bahwa ‘statistics changed the world!’ -- literally. Tanpa kontribusi statistik lewat analisis ROC nya yang memungkinkan AS dan Sekutu 'menguasai' udara, sejarah mungkin akan berbeda. Who knows?
Peran nya pun terus berlanjut hingga kini. Data Science dan Machine Learning misalnya, dengan aplikasinya yang menyentuh hampir seluruh domain knowledge -- baik ekonomi, bisnis, medis, bahkan hingga astrofisika -- itu juga menggunakan statistics sebagai 'core' nya!
Nah, kalau kalian udah punya domain knowledgenya dan ingin belajar menjadi Data Scientist di sana, yuk gabung di non degree program Data Scientist Pacmann.AI! Kalian akan belajar dari basic loh, silahkan cek kurikulumnya di bit.ly/brosurpacmannai yaa. See you!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Follow us on instagram: @pacmannai

Follow us on instagram: @pacmannai Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @pacmannai

26 Apr
Intip cara netflix rekomendasiin film yuk!📺
Penerapan recommender system (RecSys)
.
.
.
A thread
Pernah ga sih kalian kepikiran pas buka netflix, kok bisa netflix rekomendasiin film atau series yang patut kalian tonton selanjutnya itu cukup relate sama film atau series yg barusan selesai kalian tonton?
Tenang, netflix itu gak memata-matai kalian kok sampe bisa tau genre film apa yang kalian suka. Mereka bisa tau dan sampe bisa merekomendasikan next movies itu dengan menggunakan Recommender System (RecSys)
Read 41 tweets
25 Apr
Memahami kontribusi features pada model ML.
Intro to Interpretable Machine Learning menggunakan SHAP Values (Part II)
.
.
.
A Thread
Haloo guys, masih ingat pembahasan kita tentang Interpretable ML kemarin?
Tenang, bagi kalian yang kemarin ketinggalan threadnya, ga usah cape cape scroll, langsung aja cek yah pembahasannya di sini
Read 33 tweets
25 Apr
Siapa bilang Data Scientist cuma butuh ngasah technical skill?🙇👨‍💼
Jangan tinggalin soft skill dong!
.
.
.
A thread
“Hard Skill--or Technical Skill--make you qualified for the job, but soft skill will make or break your career.” Pernah denger quotes semacam itu?
Kalau kamu search di google, kamu bisa nemuin banyak quotes-quotes tentang softskill dengan kalimat yang beragam. Tapi semua quotes itu punya inti yang sama: pentingnya soft skill dalam karir.
Read 33 tweets
24 Apr
Senangnya bisa bergabung dengan:

Gerakan Separatis Statistikal (meme) Garis Keras untuk Bayesian dan Frequentist
😭😥🤣 Image
🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣 Image
Read 6 tweets
24 Apr
Memahami kontribusi features pada model ML.
Intro to Interpretable Machine Learning menggunakan SHAP Values (Part I)
.
.
.
A Thread
Halo guyss, pernah gak sih kalian penasaran, kira-kira seberapa besar yaa kontribusi tiap-tiap features dari model yang kita buat??
Kali ini mimin akan bahas salah satu tools yang digunakan dalam Interpretable Machine Learning: “SHAP Values“. Tapi sebelum masuk kesana, yukk kita pahami dulu apa sih Interpretable ML
Read 33 tweets
18 Apr
NLP bantu cegah osteoporosis, emang bisa?🦴🧓
.
.
.
A thread
Hayoo, siapa yang udah pernah ke radiologi?
Kita akan memulai thread dari penjelasan mengenai radiologi dulu, biar nanti kedepannya ga bingung hehe.
Read 36 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!