RBF SVM kullanım örnekleri (lojistik regresyon ve rastgele orman vs)


10

Radyal tabanlı işlev çekirdeğine sahip Vektör Makinelerini Destekleyin , genel amaçlı denetimli bir sınıflandırıcıdır.

Bu SVM'lerin teorik temellerini ve güçlü noktalarını bilsem de, tercih edilen yöntem oldukları durumların farkında değilim. Peki, RBF SVM'lerinin diğer ML tekniklerinden daha üstün olduğu bir sorun sınıfı var mı? (Ya skor, ya da diğer - sağlamlık, kolay başlatma, yorumlanabilirlik vb.)

Soruyorum, varsayılan yaklaşımım lojistik regresyon (belki de bazı etkileşimlerle), rastgele orman ve biraz sinir ağları etrafında yoğunlaşıyor. ML yapan arkadaşlarımın hiçbiri (bazıları Kaggle kazananlar) SVM kullanıcısı değil (ancak topluluğumun bir işi veya uğraştıkları sorunlar olabilir).

Yanıtlar:


8

Bu soruyu yayınlanmış kanıtlar, kişisel deneyimler ve spekülasyonların bir kombinasyonu ile cevaplamaya çalışacağım.

A) Yayınlanmış kanıtlar.

Soruyu cevaplamaya yardımcı olduğunu bildiğim tek makale Delgado et al 2014 - Gerçek Dünya Sınıflandırma Sorunlarını Çözmek için Yüzlerce Sınıflandırıcıya İhtiyacımız Var mı? - UCI için 121 veri kümesinde yüzlerce farklı algoritma ve uygulama yürüten JMLR . Her ne kadar RBF SVM "en iyi" algoritma olmasa da (doğru hatırlıyorsam rastgele ormanlar), ilk 3 (veya 5) arasında olduğunu buluyorlar.

Veri kümesi seçiminin gerçek dünya sorunlarının "iyi bir örneği" olduğunu düşünüyorsanız, SVM kesinlikle yeni problemler üzerinde denenmesi gereken bir algoritmadır, ancak önce rastgele ormanı denemelisiniz!

Bu sonucun genelleştirilmesindeki sınırlar, veri kümelerinin çok seyrek değil, neredeyse tüm uzun ve sıska (n >> p) olmasıdır - ki tahmin ediyorum ki RF için daha büyük bir sorun olmalı ve çok büyük değil (n ve p).

Son olarak, hala yayınlanan kanıtlar üzerinde, rastgele ormanların farklı uygulamalarını karşılaştıran iki site öneriyorum:

B) Kişisel deneyim.

Delgado et gibi kağıtların makine öğrenimi topluluğu için çok önemli olduğuna inanıyorum , bu yüzden sonuçlarını farklı koşullar altında tekrarlamaya çalıştım. 100'den fazla ikili veri setinde (Delgado'nun veri setlerinden) 15 farklı algoritma çalıştırdım. Ben de onlar sonra hiperparametrelerin seçiminde daha dikkatli olduğunu düşünüyorum.

Benim sonuçlarım SVM "en iyi algoritma" (ortalama sıra 4.9) oldu. Benim aldığım şey, SVM'nin RF'yi geçtiğidir, çünkü orijinal veri kümesi spekülasyon bölümünde tartışacağım çok sınıflı problemler içeriyordu - SVM için bir sorun olmalı.

DÜZENLEME (Haziran / 16):

Ama RF olan yolu yol daha hızlı ve GBM (5.8), ardından 2 iyi algoritma (ortalama rank 5.6), nnets (7.2) ve diğerleri) içeren oldu. Bu problemlerde standart lojistik regresyonu denemedim, ama elastik bir ağ (L1 ve L2 düzenli LR) denedim ama iyi performans göstermedi (ortalama sıralama 8.3) ~

Sonuçları analiz etmeyi veya makaleyi yazmayı henüz bitirmedim, sonuçlarla teknik bir rapora bile işaret edemiyorum. Umarım, birkaç hafta içinde bu cevabı yeniden düzenleyebilir ve sonuçları içeren teknik bir rapora işaret edebilirim.

Makale http://arxiv.org/abs/1606.00930 adresinde mevcuttur. Tam analizden sonra RF ve SVM'nin beklenen hata oranı açısından neredeyse eşdeğer olduğu ve SVM'nin en hızlı olduğu ortaya çıkmaktadır (sürprizime göre !!). Artık RF'yi (hız zeminlerinde) önermeye o kadar da vurgu yapmıyorum.

Kişisel deneyimim, SVM size biraz daha fazla doğruluk kazandırabilir, ancak bir RF kullanmak neredeyse her zaman daha iyi bir seçimdir.

Ayrıca daha büyük sorunlar için, toplu SVM çözücüsünü kullanmak imkansız olabilir ( LASVM veya diğerleri gibi çevrimiçi bir SVM çözücüsünü hiç kullanmadım ).

Sonunda sadece bir durumda lojistik regresyon kullandım. Bir görüntü sınıflandırma problemi üzerinde bazı "yoğun" özellik mühendisliği yapıyordum (örneğin, görüntünün iki farklı tanımını ve açıklamaların boyutsallığını birleştirin ya da birleştirmeyin). Ve birçok alternatif arasından seçim yapmak için lojistik regresyon kullandım (çünkü LR'de hiperparametre araması yok). En iyi özelliklere (LR'ye göre) yerleştikten sonra, son sınıflandırıcıyı elde etmek için bir RF (en iyi hiperparametreler için seçim) kullandık.

C) Spekülasyon

Hiçbir zaman çok sınıflı problemler üzerinde ciddi bir şekilde çalışmadım, ama benim hissim SVM'nin bu kadar iyi olmadığı. Sorun, bire-bir ya da bire-tüm çözümler arasındaki sorun değil, bildiğim tüm uygulamaların tüm (OVO veya OVA) sınıflandırıcılar için aynı hiperparametreleri kullanması. SVM için doğru hiperparametreleri seçmek o kadar pahalıdır ki, bildiğim raflı uygulamaların hiçbiri her sınıflandırıcı için bir arama yapmayacaktır. Bunun SVM için bir sorun olduğunu düşünüyoruz (ancak RF için bir sorun değil!).

Sonra tekrar, çoklu sınıf problemleri için doğrudan RF'ye giderdim.


Harika bir cevap! Neyse ki Delgado et al deneyini kopyalamanızla ilgili bir blog yazısı, not defteri veya komut dosyanız var mı? (Tweaking parametreleri, ölçekleme değişkenleri genellikle bir algoritma seçimi kadar önemlidir, bu yüzden algoritma üstünlüğü hakkında güçlü iddialarda bulunmak zordur.)
Piotr Migdal

2-5,20,25,210,2152-15,2-10.5,2-6,2-1.5,230.5,1,2*p

0

Yorum yazabilmek için yeterli ayrıcalığım yok, bu yüzden burada girdi / gözlemlerimi cevap olarak vereceğim.

Deneyimlerime göre, Destek Vektör Sınıflandırıcıları (SVC) ikili sınıflar dengelendiğinde ya eşit ya da diğer yöntemlerden daha iyi olma eğilimindedir. Dengesiz sınıflar için SVC düşük performans gösterir.

Sıklıkla çoklu sınıf problemleriyle ilgilenmiyorum, ancak çoklu sınıf problemleri için SVC ile de iyi sonuçlar elde ettim.

Fark ettiğim başka bir şey, boyutsallığın lanetinin SVC'yi diğer modelleme teknikleri kadar etkilemediği. Başka bir deyişle, modele daha fazla terim ekledikçe, diğer teknikler, eğitim setine kıyasla test (veya tutma) setinde kötü performans göstermeye başlar. Ama SVC kullandığımda çok fazla değil. Bu nedenle, model parsimony sizin önceliğiniz değilse, SVC daha iyi bir seçenek olabilir, çünkü diğer yöntemlere çok fazla uymadan çok sayıda terim atabilirsiniz.

SVC ile ilgili yaşadığım konulardan biri, gözlemleri sıralamak için dolaylı bir önlem (öngörülen olasılık gibi) sağlamamasıdır. Platt Scaling'i (Python'daki sklearn.svm paketinde uygulanır) kullanabilirsiniz, ancak bazı tutarsızlıklar gördüm. (İlgilenen varsa ayrıntıları paylaşabilirim.)

Bunun gerçekten sorunuzu cevaplayıp yanıtlamadığından emin değilim, ama bunlar benim gözlemlerim. Umarım yardımcı olur.


0

RF ve (RBF) SVM'nin arkasında farklı teoriler vardır, ancak yeterli veriye sahip olduğunuzu varsayarsak, benzer şekilde iyi performans gösterirler. Her ikisi de karmaşık işlevleri öğrenebilir ve gürültülü ve bilgilendirici olmayan değişkenler ve aykırı değerlerle iyi başa çıkabilir.

Kaggle gibi bir şey için en iyi sonuçları almaya çalışıyorsanız, yine de RF ve SVM dahil olmak üzere birden fazla model toplayacaksınız.

Kaggle olmayan ortamlarda, modeli uygulamanın, üretime koymanın, bir tahmin yapmanın, yorumlamanın, bir yöneticiye açıklamanın ne kadar zor olduğunu düşünebilirsiniz.

Az miktarda veriye sahipseniz veya bir boyutsallık seyriyle uğraşıyorsanız SVM (doğrusal veya oldukça düzenli RBF) kesinlikle tercih edilir. Bunun birkaç nedeni var, bir tanesi özelliklerinizdeki en iyi bölünmeler serisi yerine maksimum marj hiper düzlemini aramak daha iyidir, ayrıca genellikle karmaşık bir sınıra gerek yoktur çünkü yüksek boyutlu alanda bazı hiper düzlemler olacaktır. yine de verileri ayırabilir. Başka bir sorun, RF'nin ayarlanması daha zor olmasıdır (ayarlanacak daha fazla parametreye sahiptir), bu nedenle daha fazla veriye ihtiyacınız vardır.

Başka bir düşünce, çapraz doğrulama SVM, özellikle LOOCV için çok ucuz ve hızlı olabilir. Sadece birkaç örnek destek vektörleri olduğundan (her zaman değil), sınıflandırmanızı her katta yeniden eğitmeniz gerekmez, ancak yalnızca test setinde bulunan veriler daha önce destek vektörleri olduğunda. Bu, çevrimiçi öğrenmeyi de kolaylaştırabilir.

Ayrıca, destek vektörlerini saklamak tam ağaçlardan daha ucuz olabilir.

Olasılıksal model yapmak genellikle sınıflandırıcıdan daha iyidir. Önce modeli, sonra da kararı verin. Bu durumda lojistik regresyon tercih edilecektir. Ve hala istediğiniz gibi davranmasını sağlamak için çekirdekler ve düzenlemeler kullanabilirsiniz. Ayrıca, RF, yaş, yaşam tarzı, cinsiyet ve eğitim için düzeltme yapmak gibi soruları cevaplamak için kullanmayacaksınız, alkol almak kalp krizi boyama şansını artırıyor mu?

İlginç bulduğum bazı ek kaynaklar: https://www.quora.com/What-are-the-advantages-of-different-classification-algorithms http://videolectures.net/solomon_caruana_wslmw/

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.