Neden aşağı örnek?


42

Bir e-postanın spam olup olmadığını öngören bir sınıflandırıcı öğrenmek istediğimi varsayalım. Ve e-postaların yalnızca% 1'inin spam olduğunu varsayalım.

Yapılacak en kolay şey, e-postaların hiçbirinin spam olmadığını söyleyen önemsiz sınıflandırıcıyı öğrenmek olacaktır. Bu sınıflandırıcı bize% 99 doğruluk verecek, ancak ilginç bir şey öğrenmeyecek ve% 100 yanlış negatif oranlara sahip olacaktır.

Bu sorunu çözmek için, insanlar bana "alt örnek" dememi ya da örneklerin% 50'sinin spam ve% 50'sinin spam olmadığı verilerin alt kümesinde öğrendiklerini söyledi.

Ancak bu yaklaşım hakkında endişeliyim, çünkü bir kez bu sınıflandırıcıyı oluşturup gerçek bir e-posta grubuna (50/50 test setinin aksine) kullanmaya başladığımızda, çoğu zaman e-postaların spam olduğunu tahmin edebilir. Gerçekten değilsin. Sırf veri setinde olduğundan çok daha fazla spam görmeye alıştığı için.

Peki bu sorunu nasıl çözeceğiz?

("Örnekleme" veya pozitif eğitim örneklerini birkaç kez tekrarlamak, verilerin% 50'sinin de pozitif eğitim örnekleri olması, benzer sorunlardan muzdarip görünüyor.)

Yanıtlar:


37

Aslında sınıflandırma modellerinin çoğu ikili bir karar vermez, aksine sürekli bir karar değeri verir (örneğin, lojistik regresyon modelleri bir olasılık ortaya çıkarır, SVM'ler hiper uçağa işaretli bir mesafe verir, ...). Biz edebilir karar değerlerini kullanarak rütbe için 'neredeyse kesin olumlu' 'neredeyse kesin negatif' dan, test örneklerini.

Karar değerine bağlı olarak, sınıflandırıcıyı belirli bir veri kesiti pozitif olarak etiketlenecek şekilde yapılandıran her zaman bir miktar kesme atayabilirsiniz. Uygun bir eşiğin belirlenmesi, modelin ROC veya PR eğrileri yoluyla yapılabilir . Eğitim setinde kullanılan bakiyeden bağımsız olarak karar eşiği ile oynayabilirsiniz. Başka bir deyişle, yukarı-aşağı örnekleme gibi teknikler buna diktir.

Modelin rastgele olmaktan daha iyi olduğunu varsayarak, pozitif sınıflandırma eşiğinin arttırılmasının (bu, daha az olumlu tahminlere yol açar ) modelin hassasiyetini daha düşük hatırlama maliyetinde artırdığını ve bunun tersinin de olduğunu sezgisel olarak görebilirsiniz .

SVM'yi sezgisel bir örnek olarak kabul edin: Asıl zorluk, ayırıcı hiper düzlemin yönünü öğrenmek . Yukarı veya aşağı örnekleme bu konuda yardımcı olabilir (aşağı örneklemede üst örneklemeyi tercih etmenizi öneririm). Hiper düzlemin yönü iyi olduğunda, istenen pozitif tahminlerin bir kısmını elde etmek için karar eşiğiyle (örneğin, hiper düzleme işaretli mesafe) oynayabiliriz.


Teşekkürler, bu çok yardımcı oldu. Eşiğin ne olması gerektiğini nereden biliyorsun? Eşiği, pozitif tahminlerin oranının popülasyondaki pozitif örneklerin oranına eşit olmasını sağlayacak şekilde ayarlamak ister misiniz?
Jessica

2
@Jessica Bahsettiğim gibi, eşiği seçmenin uygun bir yolu, alıcı işletim karakteristiği (ROC) eğrileridir. Her eşik ROC uzayındaki bir noktaya karşılık gelir. Eğriyi çizdiğinizde, özel gereksinimlerinize uyanı temel alarak bir eşik seçebilirsiniz. (alternatif olarak hassas hatırlama eğrilerini de kullanabilirsiniz)
Marc Claesen

Bir test noktasının bir SVM tarafından öğrenilen hiper uçağa olan mesafesinin, tahminin herhangi bir güven ölçüsü olduğunu kabul etmiyorum. SVM çıktı tahmini gizlilikleri yapma çabaları olmuştur. Örneğin Platt ölçeklendirmesine bakın. Ancak Gauss süreç sınıflandırması kadar iyi yapmaz (wrt tahmin güvencesi).
Seeda

1
@ Seeda Platt ölçeklendirmesi, ayakkabı boynuzu karar değerleri ile ilgili olasılıklara ilişkindir. Platt ölçeklendirme, monoton olarak artan ve dolayısıyla herhangi bir sıralamayı (= güven) etkilemeyen lojistik fonksiyonu ile çalışan (ölçeklendirilmiş) karar değerleri kadar basittir. Tek yaptığı çıktıyı ila . [ 0 , 1 ]R[0,1]
Marc Claesen,

@CarcClaesen Platt ölçeklendirmeyi kullanmanızı önermiyorum; Tahmin gizlilikleri üretme girişimidir, ancak daha iyi alternatifler vardır. Tek söylediğim, hiper uçağa olan mesafeyi kullanmanın anlamlı olmadığı ve literatürü gözden geçirmediği, bir SVM'den gizlilik çıkarmaya çalışan ilk akla gelen şey olmasına rağmen hiçbir zaman rastlamadım.
Seeda

14

Buradaki asıl sorun sizin metrik seçiminizdir:% doğruluk, bir modelin dengesiz bir veri setindeki başarısının zayıf bir ölçüsüdür (tam olarak bahsettiğiniz sebep için: bu durumda% 99 doğruluk elde etmek önemsizdir).

Modele uymadan önce veri setinizi dengelemek, modelinizi önyargılaması nedeniyle kötü bir çözümdür ve (hatta daha da kötüsü) potansiyel olarak yararlı verileri dışarı atar.

Verilerinizi dengelemek yerine, doğruluk ölçümünüzü dengelemek konusunda çok daha iyisiniz. Örneğin kullanabilirsiniz dengeli doğruluğu Modelini değerlendirirken: (error for the positive class + error for the negative class)/2. Tüm olumlu veya olumsuz tüm tahmin ederseniz, bu metrik 50%güzel bir özellik olacaktır.

Benim düşünceme göre, örneklemenin tek nedeni çok fazla veriye sahip olduğunuz ve modelinize uymadığıdır. Birçok sınıflandırıcı (örneğin, lojistik regresyon), dengesiz veriler üzerinde para cezası verecektir.


Sınıflandırıcıların dengesiz verilerde nasıl başarılı olabileceğini sorabilir miyim? Muhtemelen bu sadece benim verilerimdir ancak eğitim verilerim üzerinde karışık dengeleme / dengelemeyi kullanarak hem dengesiz hem de dengeli eğitim lojistiği regresyonu, rastgele ormanlar ve C5.0 modellerini denedim. Dengesiz verilerde eğitilen modeller, test setimde dengeli verilerde eğitilenden daha kötü performans gösteriyor.
Seanosapien

13

Her zaman @Marc Claesenolduğu gibi harika bir cevap.

Sadece eksik görünen anahtar kavramın bir maliyet fonksiyonu kavramı olduğunu eklerdim . Herhangi bir modelde, yanlış pozitiflerin (FN / FP) yanlış veya olumsuz negatif bir maliyeti vardır. Açıklanan dengesiz veriler için, kişi genellikle 5: 1 veya 10: 1 oranına sahip olmaya isteklidir. Maliyet fonksiyonlarını modellere dahil etmenin birçok yolu vardır. Geleneksel bir yöntem, bir modelin ürettiği olasılıklara bir olasılık kesintisi getirmektir - bu lojistik regresyon için iyi sonuç verir.

Doğal olarak olasılık tahminleri vermeyen katı sınıflandırıcılar için kullanılan bir yöntem, çoğunluk sınıfını, ilgilendiğiniz maliyet fonksiyonunu uyaracak bir oranda örneklemektir. Maliyet fonksiyonu farklıdır, ancak prevalans oranında örneklemiş olduğunuz gibi keyfi. Maliyet işlevinize karşılık gelen uygun bir örnekleme oranını sık sık tahmin edebilirsiniz (genellikle 50/50 değildir), ancak konuştuğum çoğu uygulayıcı sadece birkaç örnekleme oranını denemek ve maliyet işlevine en yakın olanı seçmek için konuştu.


2
Bunu getirdiğin için teşekkürler, bu göz önünde bulundurmadığım ilginç bir fikir. Hangi örnekleme oranının maliyet işlevinize uygun olduğunu nasıl söyleyebilirsiniz?
Jessica

8

Jessica'nın sorusunu doğrudan yanıtlama - alt örneklemenin bir nedeni, büyük bir veri kümesiyle çalışırken ve bilgisayarınızda bellek sınırlarıyla karşı karşıya kaldığınızda ya da yalnızca işlem süresini kısaltmak istediğinizdedir. Negatif vakalardan alta örnekleme (yani, değiştirilmeden rastgele bir örnek alınması) veri kümesini daha yönetilebilir bir boyuta indirger.

Sorunuzda "sınıflandırıcı" kullanarak bahsettiniz ancak hangisini belirtmediniz. Kaçınılması gereken bir sınıflandırıcı karar ağaçlarıdır. Nadir olay verilerinde basit bir karar ağacı çalıştırırken, genellikle çok az pozitif vakayı kategorilere ayırmakta zorlandığı için ağacın yalnızca tek bir kök oluşturduğunu gördüm. Nadir olaylar için ağaçların performansını iyileştirmek için daha karmaşık yöntemler olabilir - kafamın tepesinden hiçbir şey bilmiyorum.

Bu nedenle, Marc Claesen tarafından önerildiği gibi sürekli öngörülen olasılık değerini veren bir lojistik regresyon kullanmak daha iyi bir yaklaşımdır. Veriler üzerinde bir lojistik regresyon gerçekleştiriyorsanız, daha az kayıt olmasına rağmen katsayılar tarafsız kalır. Hosmer ve Lemeshow, 2000 formülüne göre, örneklemeli regresyondan kesişimi, ayarlamak zorunda :β0

βc=β0log(p+1p+)

nerede Önceden altörneklemedeki popülasyonda pozitif vakaların kısmı.p+

Tercih edilen spam kimliği eşiğini ROC ile bulmak, önce veri kümesinin tamamını, aşağı örneklenmiş veri kümesinde listelenen model katsayıları ile puanlayarak ve daha sonra, kayıtları spam tahmininde en yüksek tahmin edilen en düşük olasılıkla sıralayarak yapabilirsiniz. Daha sonra, üst almak attı kayıtları, sette (100, 500, 1000, vs.) istediğiniz her türlü eşik ve daha sonra üst yalancı pozitif vakaların yüzde hesaplamak vaka ve yanlış negatif dava yüzdesinin içinde İhtiyaçlarınıza en uygun hassasiyeti / özgüllük dengesini bulmak için - vakalarının kalan alt kademesi .n n N nnnnNn


3

Tabii ki, her şeyi 'spam değil' olarak sınıflandırmak, 100 posta verdiğinde, bunların 99'unu doğru şekilde sınıflandırdığını, ancak spam olarak etiketlenen sadece% spam'i (% 100 Yanlış Olumlu) dediğini söylemenizi sağlar. Algoritmayı değerlendirmek için seçtiğiniz metriğin uyum sağlamadığı ortaya çıkıyor. Bu video kavramı örneklendirir.

Kabaca konuşursak, veri setini dengelemek yanlış sınıflandırma hatalarına ağırlık vermenizi sağlar. Dengesiz bir eğitim seti kullanan bir algoritma, muhtemelen özelliklerden ayırt edilmeyi öğrenmeyecektir, çünkü yetersiz sınıf verilerini yanlış sınıflandırması çok fazla önem kazanmayacaktır.


0

Her ikisi de öğrenme algoritmasını hileleştirdiği için aşağı örnekleme veya örnekleme için gitmeyeceğim, ancak veriler dengesiz olsaydı, doğruluk ölçüsü geçersiz ya da bilgi vermez hale gelirse, bu nedenle, her ikisi de temel olarak TP'ye bağlı olarak kesinlik ve hatırlama önlemleri kullanmak daha iyidir. durumunuzdaki doğru şekilde sınıflandırılmış spam'leri) bu, negatif örneklerin sayısından bağımsız olarak spamleri tespit etme konusunda sisteminizin gerçek performansı hakkında iyi bir fikir verir.

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.