ROC eğrisini anlama


57

ROC eğrisini anlamada sorun yaşıyorum.

Eğitim setinin her bir alt kümesinden farklı modeller oluşturup bir olasılık üretmek için kullanırsam, ROC eğrisinin altındaki alanda herhangi bir avantaj / gelişme var mı? Örneğin, değerlerine sahiptir , ve modeli inşa kullanılarak 1.-4 değerlerinden ve 8. ve 9. değerleri ve kalan tren verilerini kullanarak modelini oluşturun . Son olarak, olasılık üretin. Herhangi bir düşünce / yorum çok takdir edilecektir.y{a,a,a,a,b,b,b,b}AayyB

Sorum için daha iyi bir açıklama için r kodu:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Benim soru ROC eğrisi altındaki alandır pred_combineVS pred_full.


3
Daha iyi bir örnek, soruyu geliştirmek için çok şey yapacaktır.
mpiktas

Anladığım kadarıyla, bazı özel örnekleri seçerek AUC'yi artırmak mı istiyorsunuz? Bu sizin amacınızsa, önyargılı numune seçimi yaklaşımının tamamen yanlış olduğuna, en azından amacınız sınıflandırma performansı için iyi bir önlem bulmaksa, kesinlikle inanıyorum.
rapaio

2

Yanıtlar:


174

Soruyu anladığımdan emin değilim, ancak başlık ROC eğrilerini açıklamayı istediğinden beri deneyeceğim.

ROC Eğrileri, sınıflandırıcınızın pozitif ve negatif örnekleri ne kadar iyi ayırabildiğini görmek ve bunları ayırmak için en iyi eşiği belirlemek için kullanılır.

ROC eğrisini kullanabilmek için, sınıflandırıcınızın sıralama yapması gerekir - yani, daha yüksek dereceye sahip olanların pozitif olma ihtimalinin daha yüksek olduğu örnekleri sıralayabilmelidir . Örneğin, Logistic Regression , sıralama için kullanabileceğiniz bir puan olan olasılıkları ortaya çıkarır.

ROC eğrisi çizme

Bir veri seti ve bir sıralama sınıflandırıcısı verildiğinde:

  • Test örneklerini en yüksek en düşük puan ile siparişte isteyin
  • başlamak(0,0)
  • Sıralanan sırada her örnek içinx
    • Eğer pozitiftir, hareket kadarx1/pos
    • eğer negatif ise, hareket hakkıx1/neg

burada ve sırasıyla pozitif ve negatif örneklerin kesirleridir.posneg

Bu güzel gif animasyonlu resim bu süreci daha net göstermeli

eğriyi oluşturma

Bu grafikte, ekseni gerçek pozitif oran, ekseni ise hatalı pozitif orandır. Çapraz çizgiyi not edin - bu, rastgele bir sınıflandırıcı ile elde edilebilecek taban çizgisidir. ROC eğrimiz ne kadar yüksek olursa çizginin üstünde o kadar iyidir.yx

ROC Altındaki Alan

roc altındaki alan

ROC Eğrisi altındaki alan (gölgeli) doğal olarak taban çizgisinden eğrinin ne kadar uzak olduğunu gösterir. Taban çizgisi için 0,5 ve mükemmel sınıflandırıcı için 1'dir.

Bu soruda AUC ROC hakkında daha fazla bilgi edinebilirsiniz: AUC neyi temsil ediyor ve bu nedir?

En İyi Eşiği Seçme

En iyi eşiği seçme işlemini kısaca açıklayacağım ve referansta daha fazla ayrıntı bulunabilir.

En iyi eşiği seçmek için ROC eğrinizin her noktasını ayrı bir sınıflandırıcı olarak görürsünüz. Bu mini sınıflandırıcılar, puanın + ve - arasında bir sınır olarak aldığı puanı kullanır (yani mevcut olanın üzerindeki tüm puanları + olarak sınıflandırır)

Veri setimizdeki pos / neg oranına bağlı olarak -% 50 /% 50 olması durumunda taban çizgisine paralel olarak - ISO Doğruluk Hatları'nı kurar ve birini en iyi doğrulukla alırsınız.

İşte bunu gösteren bir resim ve detaylar için sizi tekrar referansa davet ediyorum

en iyi eşik seçimi

Referans


Harika yorumunuz için teşekkürler! Cevabınız için o kadar fazla oy veremediğim için üzgünüm, 15'ten fazla şöhrete ihtiyacım var :(
Tay Shin

Merak ediyorum, adım büyüklüğünüz sınıflandırıcınız tarafından üretilen pozitif / negatif etiketlerin sayısına bağlı olmalı, değil mi? Yani, gif'de, yukarı doğru basamak büyüklüğü 0,1'dir, eğer ekstra bir pozitif etiketiniz varsa (negatif bir etiketin yerine), o zaman "eğri" dikey eksen üzerindeki 1.1'de bitecektir (ya da belki bir şeyleri özlüyorumdur). ?). Yani, bu durumda adım büyüklüğünüz daha küçük olmalı?
kyphos

Hayır, adım büyüklüğü, sınıflandırıcının doğruluğuna değil, veri kümesindeki pozitif / negatif örneklerin sayısına bağlıdır.
Alexey Grigorev

2
@gung anlaşıldı. Alexey: Olumlu ve olumsuz örnekler yerine, öyle olması gerektiğini düşünüyorum: gerçek pozitifler ve yanlış pozitifler. Gung tarafından geri döndürülen cevabımdaki baskımı görebilirsiniz. teşekkürler
Escachator

3
@AlexeyGrigorev, verdiğiniz cevabı seviyorum ve oy verin. İki ROC tanımı olup olmadığından emin değilim. Buradaki ROC tanımına atıfta bulunuyorum ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), x ekseni yanlış pozitif oran olmalıdır, bu (pozitif olacak tahminlerin sayısıdır; ancak negatif olmalıdır) / (toplamın sayısı negatif), referansta bence, x-ekseni (toplam negatif) sayılmayan yanlış pozitif oran çizmiyor.
Lin Ma,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.