Sınıflandırma ağaçlarına alternatifler, daha iyi tahmine dayalı (örneğin: CV) performans?


23

Daha iyi tahmin gücü sağlayabilecek Sınıflandırma Ağaçlarına bir alternatif arıyorum.

Ele aldığım verilerin hem açıklayıcı hem de açıklanmış değişkenler için faktörleri var.

Bu bağlamda rastgele ormanlara ve sinir ağlarına rastladığımı hatırlıyorum, daha önce hiç denememiş olmama rağmen, böyle bir modelleme görevi için başka iyi bir aday var mı (açıkça R'de)?


5
Yapay sinir ağlarıyla uğraşma, bu eski bir teknolojidir.

1
@mbq, bu açıklamaya hala devam ediyor musunuz?
Rhombidodecahedron

@rhombidodecahedron Tabii, 2010'dan itibaren NN'lerle oynayacaksınız. Ayrıca, herhangi bir DL modelinin (muhtemelen) küçük boyuttaki verileri içeren bir tabloya bir şey getireceğinden şüpheliyim.

Yanıtlar:


25

Rastgele Ormanları ( randomForest ) denemeye değeceğini düşünüyorum ; ilgili sorulara cevap olarak bazı referanslar sağlandı: Makine öğrenmesinde çapraz doğrulama yapılırken “son” model için özellik seçimi ; CART modelleri sağlam hale getirilebilir mi? . Yükseltme / torbalama, onları küçük bozulmalara karşı çok hassas oldukları bilinen tek bir CART'tan daha stabil hale getirir. Bazı yazarlar cezalandırılmış SVM veya Gradient Arttırıcı Makinelerin yanı sıra performans gösterdiğini iddia etti (bakınız örneğin Cutler ve diğerleri, 2009). Bence kesinlikle NN'lerden daha iyi performans gösteriyorlar.

Boulesteix ve Strobl, Optimal sınıflandırıcı seçimindeki birkaç sınıflandırıcıya ve hata oranı tahminindeki olumsuz önyargıya genel bir bakış sunar : yüksek boyutlu tahmin üzerine ampirik bir çalışma (BMC MRM 2009 9: 85). Ben de başka bir iyi çalışmanın duydum IV EAM toplantısında inceleme altında olmalıdır, Tıpta İstatistik ,

João Maroco , Dina Silva, Manuela Guerreiro, Alexandre de Mendonça. Rastgele Ormanlarda Sinir Ağları, Destek Vektör Makineleri ve Ayırt Edici Analiz sınıflandırıcılarından daha iyi performans gösteriyor mu? Bilişsel şikayetleri olan yaşlı hastalarda demans evriminde bir vaka çalışması

Ayrıca şapka paketini de severim : iyi belgelenmiştir ve aynı veri setindeki farklı sınıflandırıcıların tahmin doğruluğunu karşılaştırmaya izin verir. Birkaç kullanıcı dostu fonksiyonla eğitim / test örnekleri, hesaplama doğruluğu vb.

Glmnet Friedman ve coll gelen paket,., Uygular cezalandırılmış GLM (inceleme bakınız İstatistiksel Journal of Software ), bir tanınmış modelleme çerçevesinde kalması böylece.

Aksi takdirde, ilişkilendirme kurallarına dayalı sınıflandırıcıları da arayabilirsiniz ( bazılarına yumuşak bir giriş yapabilmek için Makine Öğrenimi Üzerine CRAN Görev Görünümü'ne veya veri madenciliğindeki İlk 10 algoritmaya bakınız ).

Hervé Abdi'den Ayırt Edici Yazışma Analizi olan R'de (aslında, Matlab kodu) yeniden uygulamayı planladığım başka ilginç bir yaklaşımdan bahsetmek istiyorum . Her ne kadar başlangıçta çok sayıda açıklayıcı değişkenli (nihayetinde tutarlı bloklar halinde gruplandırılmış) küçük örneklemli çalışmalarla başa çıkmak için geliştirilmiş olsa da, klasik DA'yı veri azaltma teknikleriyle verimli bir şekilde birleştiriyor gibi görünmektedir.

Referanslar

  1. Cutler, A., Cutler, DR ve Stevens, JR (2009). Ağaç Tabanlı Yöntemler , Kanser Araştırmalarında Yüksek Boyutlu Veri Analizinde , Li, X. ve Xu, R. (ed.), S. 83-101, Springer.
  2. Saeys, Y., Inza, I. ve Larrañaga, P. (2007). Biyoinformatikte özellik seçim tekniklerinin gözden geçirilmesi . Biyoinformatik, 23 (19): 2507-2517.

2
+1 Harika cevap. Ayrıca şapka tavsiyesine katılıyorum.
Shane

12

Her zaman diğerlerinden daha iyi bir algoritma olmadığını akılda tutmak önemlidir. Wolpert ve Macready tarafından belirtildiği gibi, "performansları muhtemel tüm problemlerin ortalaması alındığında herhangi iki algoritma eşdeğerdir." (Ayrıntılar için Wikipedia'ya bakınız.)

Belirli bir uygulama için, "en iyi" olanı genellikle, yaptığınız varsayımlar, işleyebileceği veri türleri, temsil edebileceği hipotezler ve benzerleri bakımından uygulamanıza en yakın olanıdır.

Bu nedenle, verilerinizi aşağıdaki gibi ölçütlere göre karakterize etmek iyi bir fikirdir:

  • Çok büyük bir veri setim veya mütevazı bir veri setim var mı?
  • Boyutluluk yüksek mi?
  • Değişkenler sayısal mı (sürekli / ayrık) veya sembolik mi, yoksa karışım mı ve / veya gerekirse dönüştürülebilir mi?
  • Değişkenlerin büyük ölçüde bağımsız olması veya oldukça bağımlı olması olası mıdır?
  • Gereksiz, gürültülü veya alakasız değişkenler olabilir mi?
  • Oluşturulan modeli incelemek ve anlamaya çalışmak ister miyim?

Bunları yanıtlayarak, bazı algoritmaları ortadan kaldırabilir ve diğerlerini potansiyel olarak alakalı olarak tanımlayabilir ve daha sonra muhtemelen yararlı olacağını düşündüğünüz küçük bir aday yöntem seti ile sonuçlanabilirsiniz.

Size basit bir cevap veremediğim için üzgünüm ama umarım bu yine de yardımcı olur!


2
+1 Alıntıya bayılırım. ("Her iki algoritma da performanslarının olası tüm problemlerde ortalaması alındığında eşdeğerdir.")
Esad Ebrahim

8

Çok sınıflı sınıflandırma için, destek vektör makineleri de iyi bir seçimdir. Genellikle bunun için R kernlab paketini kullanıyorum.

İyi bir tartışma için aşağıdaki JSS makalesine bakın: http://www.jstatsoft.org/v15/i09/


@Tal İşte SVM ve RF'lerin adil (veya sanırım) bir incelemesi : Mikroarray tabanlı kanser sınıflaması için j.mp/ab7U8V rasgele ormanların ve destek vektör makinelerinin kapsamlı bir karşılaştırması . Ben de tercih kernlabetmek e1071.
chl

2
@chl Bu makaleyi SVM öğrenme perspektifinden oluştururken beğenmedim - Stokastik bir algoritmanın tekrarını yapmak (RF) sadece bir önemsizdir; ayrıca ek 2, SVM iş akışını RF'ye uygulamanın ne kadar kötü olabileceğini gösterir. Yine de, hemen hemen her zaman SVM'nin çekirdek numarası (RF'nin sahip olmadığı, genel olarak buna sahip olamayacağı anlamına gelmezken), ancak üstel olarak artan optimizasyon çabası nedeniyle RF'den daha iyi bir şekilde ayarlanabileceğini kabul ediyorum.

@mbq Gerçekten, bu iyi bir nokta.
chl

3

Daha önce de belirtildiği gibi, Rastgele Ormanlar doğal bir "yükseltme" dir ve bu günlerde SVM genellikle kullanılması önerilen tekniktir.

SVM'ye geçiş yapmamaktan çok daha sık sık hayal kırıklığı yaratan sonuçlar verdiğini eklemek istiyorum. Şey, rastgele ağaçlar gibi teknikler kullanmak neredeyse önemsiz iken, SVM biraz daha zorlu.

Bu makaleyi SVM'yi ilk defa kullandığımda çok değerli buldum (Vektör Sınıflandırmasını Desteklemek İçin Pratik Bir Kılavuz) http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

R'de e1071 paketini SVM için kullanabilirsiniz, fiili standartlara (en azından özgür yazılımda!) LibSVM kütüphanesine bağlar.


2
kernlab ayrıca optimizasyon için libsvm kullanır, bu yüzden bu anlamda büyük bir fark yoktur (çok daha esnek olmasına rağmen).
Shane,

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.