Pacmann Media Profile picture
Apr 27, 2021 34 tweets 10 min read Read on X
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 Pacmann Media

Pacmann Media 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

Aug 18
Sudah serius belajar, tapi lupa materi yang baru aja dipelajari kemarin.

Itu wajar, tapi ada cara biar gak lupa menurut beberapa riset.

Kita bahas lebih lanjut ⬇️ From Elearning Industry
Sering kali kita terburu-buru belajar saat ujian sudah dekat, tapi cara ini sebenarnya tidak baik untuk jangka panjang.

Terlihat efektif saat hasil ujian keluar, tapi biasanya beberapa hari setelah ujian, materi yang dipelajari akan mudah lupa.
Riset lain juga menemukan bahwa mengulangi informasi terus menerus dalam sekali belajar juga percuma karena biasanya akan lupa dalam beberapa hari.
Read 17 tweets
Jun 8
Ketika kita ingin menjalankan banyak service dengan menggunakan docker tentu menghabiskan waktu jika kita melakukan konfigurasi dan menjalankannya satu per satu.

Oleh karena itu, kita bahas tentang Docker Compose hari ini!
Nah, kalo kita ingin melakukan konfigurasi dan menjalankan banyak service di docker kita dapat menggunakan "docker compose" untuk meminimalisir penggunaan waktu untuk konfigurasi dan menjalankan service-service tersebut.
Untuk mendefinisikan konfigurasi service dengan menggunakan docker compose kita cukup membuat file konfigurasinya dengan nama "docker-compose.yaml", "docker-compose.yml", atau nama lain dengan extensi file .yaml dan .yml.
Read 17 tweets
May 3
Pengen review santai paper yang lagi di-viral-KAN ini.

Sambil nungguin Jumatan, kita bahas Kolmogorov-Arnold Network yang disebut-sebut Neural Network 2.0 nih! ⬇️
Oiya, ini dari POV Mas Cahya @menarik_hm dalam mereview paper.

Jangan lupa share dan repost ke teman-teman kalian ya!
@menarik_hm Melihat summary-nya, terbayang perbedaan fundamental antara MLP dan KAN.

Di MLP (traditional NN), yang kita train adalah weight dengan architecture yang punya activation function yang fix.

Dalam KAN, ternyata kita bisa melakukan training di level activation function. Image
Read 28 tweets
Jan 27
Gak malam mingguan?

Gabut gak ngapa-ngapain?

Ngulik Python aja gan. Sini, pacmin berikan sumber belajarnya! Sumber belajar python Pacmann
Pertama, dari kampusnya Pak @tomlembong

Walaupun dari kampus ternama, tapi yang ini GRATIS!

Tersedia lecture video, lecture slide & lecture notes, style belajarnya kayak kuliah.

Link disertakan di akhir ya Pacpeers! Harvard CS50 from Reddit
@tomlembong Sumber kedua, dari ITB (Institut Teknologi di Boston).

Ada lecture video, source code Python dan bentuknya video course.

GRATIS juga nih! MIT OCW CS
Read 12 tweets
Jul 28, 2023
Sebutannya sih Exotic Pets, tapi harimau itu hewan peliharaan atau satwa liar sih? 🤬

Apakah memelihara harimau itu Konservasi atau Monetisasi?

Mari kita bahas~ Ilustrasi Influencer Kolektor Satwa Langka
AZ Animals melaporkan bahwa secara keseluruhan rata-rata populasi harimau di tahun 2023 kurang dari 10.000 ekor saja, baik di Alam liar maupun penangkaran.

Harimau tersebut dibagi ke dalam beberapa jenis, mulai dari Harimau Sumaterai hingga Harimau Indo Cina. Populasi Harimau Berdasarkan Jenisnya (2023)
Sayangnya, menurut kategorisasi IUCN Redlist, semua jenis harimau tersebut telah tercancam punah (ketika jumlah harimau menurun 50% sampai lebih dari 70% dalam 10 tahun terakhir) bahkan kritis (ketika jumlah harimau menurun 80% hingga lebih dari 90% dalam 10 tahun terakhir).
Read 34 tweets
May 31, 2023
Menyambung diskusi kemarin, kenapa sih Data Visualization itu jadi fundamental untuk Data Analyst dan Data Scientist?

Seberapa susahnya sih bikin grafik doang?

Baiklah, Pacmin bahas..... Worst Dataviz
Kenapa Dataviz itu fundamental banget berdasarkan diskusi dengan Lecture kami Mas Cahya.

Data Analyst dan Data Scientist itu adalah problem solver, sedangkan constraint mereka adalah waktu, tenaga dan uang. Jadi kita perlu metode paling sederhana untuk melakukan analisis.
Untuk Data Analyst dan Business Intelligence, salah satu jobdesk mereka adalah membuat Dashboard yang baik dan mudah dimengerti.

Tujuannya agar stakeholders bisa mengambil insights dan paham keadaan perusahaan saat ini, mentranslasikan data menjadi insight kemudian jadi action. Image
Read 22 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

Don't want to be a Premium member but still want to support us?

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

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(