logloss vs gini / auc


15

İki model (h2o AutoML kullanarak ikili sınıflandırıcılar) eğittim ve kullanmak için bir tane seçmek istiyorum. Aşağıdaki sonuçlara sahibim:

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

aucve loglosskolonlar çapraz doğrulama metriklerdir (çapraz doğrulama sadece eğitim verileri kullanır). ..._trainve ..._validölçümlerini sırasıyla modeller üzerinden eğitim ve doğrulama ölçümleri çalıştırarak bulunur. Ben de kullanmak istiyorum logloss_validya gini_validbir iyi modeli seçmek.

Model 1'in daha iyi bir gini (yani daha iyi AUC) vardır, ancak model iki daha iyi bir lojikliğe sahiptir. Benim sorum hangisini seçeceğimi seçmektir, karar metriği olarak gini (AUC) veya logloss kullanmanın avantajları / dezavantajları nelerdir.


1
Bu video , yalnızca sınıflandırmayla değil olasılıklarla ilgileniyorsanız neden logloss'un tercih edildiğine dair güzel bir açıklamaya sahiptir. İkili sınıflandırma için, logloss'un brier skoruna eşit olduğuna dikkat edin.
Dan

Yanıtlar:


11

AUC değişken bir karar eşiğiyle ikili sınıflandırma ile ilgili hesaplanırken, logloss aslında sınıflamanın "kesinliğini" dikkate alır.

Bu yüzden benim anlayışımdan, mantık kavramsal olarak AUC'nin ötesine geçer ve özellikle dengesiz veriler içeren veya eşit olmayan bir şekilde dağıtılan hata maliyeti (örneğin ölümcül bir hastalığın tespiti) ile ilgilidir.

Bu çok temel cevaba ek olarak , ikili sınıflandırma problemlerinde auc ve logloss optimizasyonuna göz atmak isteyebilirsiniz

Mantıksal hesaplama ve temel kavramın basit bir örneği, bu son soru scikit-learn'daki Kayıp Kaybı işlevi farklı değerler döndürüyor

Ayrıca, yığın akışında çok iyi bir noktaya değinildi

AUC ROC ile doğruluk / kesinlik vb. Gibi "noktasal" metrikler arasındaki önemli farkı anlamak gerekir. ROC bir eşik fonksiyonudur. Her sınıfa ait olma olasılığını ortaya koyan bir model (sınıflandırıcı) verildiğinde, öğeyi genellikle en yüksek desteğe sahip sınıfa sınıflandırırız. Bununla birlikte, bazen bu kuralı değiştirerek ve bir desteğin belirli bir sınıf olarak sınıflandırılması için diğerinden 2 kat daha büyük olmasını gerektirerek daha iyi puanlar alabiliriz. Bu genellikle dengesiz veri kümeleri için geçerlidir. Bu şekilde, aslında derslerden önce öğrenilenleri verilerinize daha iyi uyacak şekilde değiştirirsiniz. ROC "bu eşiği tüm olası değerlere değiştirirsem ne olur" diye bakar ve AUC ROC böyle bir eğrinin integralini hesaplar.


İlk bağlantınız "AUC, modelin sınıflar arasında ayrım yapma yeteneğini en üst düzeye çıkarırken mantık gerçek ve tahmini olasılıklar arasındaki farklılığı cezalandırır" , bu yüzden temelde bu iki hedef arasında nasıl seçim yapacağımı soruyorum. Eğer doğrudan modelin 'olasılık' çıktısı ile çalışırsam mantığı optimize etmeliyim (ve muhtemelen bir olasılık kalibrasyonu yapmalıyım ), nerede -gerçek bir karar vermek için bir sınıflandırıcı olarak kullanıyorum gibi biri calss ya da diğeri AUC ile gitmek gerekir?
Dan

2
Sadece doğru veya yanlış bir kararla ilgileniyorsanız -> AUC kullanın - ne kadar "doğru" veya "yanlış" olduğunuzu önemsiyorsanız
Nikolas Rieble

Performans ölçümü için başka herhangi bir seçenek genelleştirilemez, daha çok etki alanına / uygulamaya bağlıdır.
Nikolas Rieble
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.