Belirsiz sınıf etiketleri için sınıflandırıcı


11

Diyelim ki sınıf etiketleriyle ilişkili bir dizi örneğim var. Bu örneklerin nasıl etiketlendiği önemli değil , sınıf üyeliğinin ne kadar kesin olduğu. Her örnek tam olarak bir sınıfa aittir . Diyelim ki her sınıf üyeliğinin kesinliğini, 1'den 3'e (sırasıyla çok kesin - belirsiz) giden bir nominal özellik ile ölçebilirim.

Böyle bir kesinliği dikkate alan bir tür sınıflandırıcı var mı ve evet ise, WEKA araç setinde mevcut mu?

Bu durumun, örneğin her zaman tam olarak emin olmayan insanlar tarafından sınıflandırıldığı zaman oldukça sık meydana geldiğini düşünüyorum. Benim durumumda, görüntüleri sınıflandırmak zorundayım ve bazen bir görüntü birden fazla sınıfa ait olabilir. Bu olursa, sınıfa yüksek bir belirsizlik veririm, ama yine de sadece bir sınıfla sınıflandırırım.

Yoksa özel bir sınıflandırıcı olmadan bu soruna başka yaklaşımlar var mı? Örneğin sadece eğitim için "belirli" sınıflandırmalar almak? Bu durumda daha fazla yanlış sınıflandırma olacağından korkuyorum çünkü “sınır” davaları kapsanmıyor.


1
Her giriş tam olarak bir sınıfa ait mi? Veya bazı girdilerin 1. sınıf kesinlik 1 ve 34. sınıf kesinlik 2?
user31264

Bu durumda her giriş tam olarak bir sınıfa aittir.
wnstnsmth

Yanıtlar:


8

Her şeyden önce, @Marc Claesen'in daha önce açıkladığı gibi, yarı denetimli sınıflandırma, sınıfların gerçekten farklı olduğunu bildiğiniz duruma dikkat etme tekniklerinden biridir, ancak davanın gerçekte hangi sınıfa ait olduğundan emin değilsiniz.

Bununla birlikte, "gerçeklik" in o kadar net olmadığı ve gerçekten farklı sınıflara sahip olduğu varsayımının karşılanmadığı ilgili durumlar da vardır: bordeline vakaları "fiziksel" bir gerçeklik olabilir (bir uygulama hakkındaki makaleler için aşağıya bakın) burada böyle bir durumla karşılaştık).

Kimse yok yarı denetimli classifers için çok önemli varsayım varsayımı: Emin karşılanmaktadır olmak gerektiğini özellik uzayında, sınıf sınırları düşük numune yoğunluğu ile birlikte gelir . Buna küme varsayımı denir.
Verilerinizin altında yatan gerçekliğin farklı sınıfları olsa bile, veri kümenizde orantısız olarak daha fazla sınırda vaka olabilir: örneğin, sınıflandırma tekniğiniz zor vakaları sınıflandırmayı hedeflerken, açık ve kolay vakalar ilgi çekici değildir ve zaten eğitim verileriniz bunu yansıtır durum.

eğitim için sadece "belirli" sınıflandırmalar mı alıyorsunuz? Bu durumda daha fazla yanlış sınıflandırma olacağından korkuyorum çünkü “sınır” davaları kapsanmıyor.

Sınırdaki davaları hariç tutmanın genellikle kötü bir fikir olduğunu tamamen kabul ediyorum: tüm zor vakaları ortadan kaldırarak yapay olarak kolay bir sorunla karşılaşırsınız. IMHO, borderline vakaları hariç tutmanın genellikle model eğitimi ile durmaması daha da kötüdür, ancak borderline vakaları da testten hariç tutulur, böylece modeli sadece kolay vakalarla test eder. Bununla birlikte, modelin sınırda durumlarla iyi performans göstermediğini bile fark etmeyeceksiniz.

İşte sizden farklı bir sorun hakkında yazdığımız iki makale, uygulamamızda gerçekliğin "karışık" sınıflara sahip olabileceğinden (probleminizin daha genel bir versiyonu: referans etiketlerindeki belirsizlik de kapsanmaktadır).

Bağlantılar, performans hesaplamalarını yapmak için geliştirdiğim bir R paketinin proje sayfasına gider. Hem resmi web sayfasına hem de makalelerimin el yazmalarıyla ilgili başka bağlantılar da var. Weka'yı şimdiye kadar kullanmadığım halde, R için bir arayüzün mevcut olduğunu anlıyorum .


pratik hususlar:

  • Kopyala ve etiketle farklı yaklaşım basit olsa da, uygulamadaki tüm sınıflandırıcılar ve uygulamalarla iyi çalışmaz. Örneğin AFAIK, libSVMçapraz doğrulamayla her veri noktasının tüm kopyalarının aynı çapraz doğrulama katında tutulması gerektiğini söylemenin bir yolu yoktur . Bu nedenle, libSVMayarlama muhtemelen büyük bir overfit modeli verecektir.
  • Ayrıca lojistik regresyon için, birçok uygulamanın ihtiyacım olan kısmi üyelik etiketlerine izin vermediğini buldum.
  • Yukarıdaki belgeler için kullandığım uygulama, aslında logolu sigmoidal bağlantı işlevi ( nnet::multinom) olarak kullanan gizli katmanı olmayan bir YSA'dır .

İlk pratik düşünceniz, doğru olsa da, libsvmözellikle geçerli değildir . libsvmYazarlar, tamamen bu sorunun üstesinden gelmek, örneğin ağırlıklı sınıflandırma mümkün olduğu her salım alternatif bir modeli sağlar. Weka / scipy
Marc Claesen

@MarcClaesen: teşekkürler - bunu görmemiştim. Ancak, biri 1/3 sınıf A ve diğeri 2/3 sınıf B ile aynı durumun iki örneğini sağlamanız gerekmez mi? Her durumda, net vakaların çok sayıda kopyasını sağlamanıza gerek yoktur, ayarlamayı daha az sorunlu hale getirecektir (verilerim için, gerçek vakaların birden çok ölçümüne sahip bir "hiyerarşik" veri yapısına sahip olduğum için, ayarlama bölümlerini harici olarak yapmak zorundayım. )
SX ile mutsuz cbeleites

@cbeiteles, bir örnek birden fazla sınıfa ait olabiliyorsa, bu örnek ağırlığıyla bile, gerçekten birden çok kez sağlamanız gerekir. O olasılığı düşünmemiştim.
Marc Claesen

6

Bu, yarı-denetimli öğrenmede ele alınan sınıflandırmanın genellemelerinden biridir. Kesin bir ölçümünüz varsa, eğitim örneklerinin ağırlıklandırılmasına izin veren yaklaşımları kullanabilirsiniz. Kesinlik ne kadar yüksek olursa, karşılık gelen örnek ağırlığı o kadar büyük olur. Bu tür yaklaşımların örnekleri arasında örnek ağırlıklı SVM ve lojistik regresyon yer alır.

Eminim weka'nın bu algoritmaların uygulamaları vardır. Her şey başarısız olursa, yüksek kesinlikteki örneklerden birden çok örneği örnekleyin. Bu yaklaşımı geleneksel SVM veya LR için kullanabilirsiniz.

Örnek: SVM

Yanılmıyorsam, weka'nın LIBSVM ile arayüzleri var . LIBSVM tüm sürümlerinde sınıf ağırlıklı SVM'yi ve her sürümün özel sürümlerinde örnek ağırlıklı SVM'yi çözmenizi sağlar. Weka'nın ikincisini desteklemediğini varsayacağım (ihtiyacınız olan şey budur).

w ξ

minw,ξw2+CposiPξi+CnegiNξi,
wξN C p o s C n e gPNCposCneg

Sorunuza dayanarak, ideal olarak 6 farklı ağırlık kullanmak istersiniz (2 sınıf 3 seviye kesinlik). Bunu, yüksek kesinlikteki noktaların örneklerini kopyalayarak birçok yaklaşım için başarabilirsiniz.×

Örneğin, SVM açısından, aynı veri örneğini iki kez kullanmak, ilişkili değerini iki katına çıkarmak için özdeş bir çözüm sağlar . Bu, belirli veri örneklerine yüksek yanlış sınıflandırma cezaları atamanın çok kolay bir yoludur. Lojistik regresyon için de aynı yaklaşımı uygulayabilirsiniz.C


(+1) bu kadar! Örnekleri farklı etiketler ve örnek ağırlıklarıyla (etiket kesinlikleri olarak) çoğaltarak, Rastgele Ormanlar, Naif Bayes vb. Rapidminer (weka'nın rakibi) yapar. Kesinlik değeri 1 olarak ayarlandığında, "çok net" çoklu etiket problemleri bile modellenebilir.
steffen

Doğru, WEKA LIBSVM'yi destekliyor, ancak örnek ağırlıklandırmayı desteklemiyor, afaik. Örnekleri çoğaltma fikri çok iyi, bence, özellikle de her "geleneksel" öğrenci bununla başa çıkabiliyor.
wnstnsmth

2

Sorunun zorluğu büyük ölçüde belirsiz etiketlerin ne kadar hatalı olabileceğine bağlıdır. Belirsiz etiketler, örneğin zamanın% 90'ı doğruysa, muhtemelen sadece lojistik regresyonu kullanarak kurtulabilirsiniz. Diğer yandan, etiketler neredeyse yarı yarıya yanlışsa, bazı özel tekniklere başvurmanız gerekebilir. İşte çok benzer bir problemde aldığım bir bıçak. (Etiket başına birden fazla gözlemimiz vardı, ancak aksi halde kurulum oldukça benzer.)


-5

Görüntü tanıma ve sınıflandırma ile ilgili kısa bir çalışma yaptım.

Rastgele Ormanlar kullanımı kolay bir tekniktir. R üzerinde uyguladım, Weka'da da mevcut olmalı. Kullanım kolaylığı, tahmin doğruluğunu ortadan kaldırır. Yeterince büyük bir eğitim setiniz varsa, birden fazla etiketi sınıflandırabilir.

El yazısı rakamları oldukça iyi tanımak işe yaradı, ancak resimleriniz daha karmaşıksa, sadece bir deneme size iyi olup olmadığını söyleyecektir.


4
Bunun belirsiz sınıf etiketleriyle ne ilgisi var?
wnstnsmth
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.