Rastgele Ormanlar MNIST'teki% 2.8'lik test hatasından daha iyisini yapabilir mi?


10

Ben onları denemek düşündüm bu yüzden vb MNIST, cifar, STL-10, Rastgele Ormanları uygulanması ile ilgili herhangi literatürü bulamadı permütasyon değişmeyen MNIST kendim.

İçinde R , I güvenilir:

randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500)

Bu 2 saat sürdü ve% 2.8 test hatası aldı.

Ben de denedim scikit-öğrenme ile,

RandomForestClassifier(n_estimators=2000,
                       max_features="auto", 
                       max_depth=None)

70 dakika sonra,% 2.9 test hatası aldım, ancak bunun yerine n_estimators = 200 ile, sadece 7 dakika sonra% 2.8 test hatası aldım.

OpenCV ile denedim

rf.train(images.reshape(-1, 28**2), 
         cv2.CV_ROW_SAMPLE, 
         labels.astype('int'))

Bu 6,5 dakika sürdü ve rftahmin için kullanmak % 15'lik bir test hatası verdi. Rastgele Ormanlar için Python bağları params, en azından 2.3.1 sürümünde argümanı görmezden geldiği için kaç tane ağaç yetiştirdiğini bilmiyorum . Değiştirilmesi, çünkü benim şüphelerim var - Ben de bir sınıflandırma sorunu çözmek istiyorum oldukça regresyon yerine, OpenCV için temizlemek nasıl çözemedim astype('int')ile astype('float32')aynı sonucu verir.

Olarak sinir ağları için bir permütasyon değişmeyen eğitim muhtemelen bir CPU üzerinde 2 saatten fazla sürer, ancak MNIST kriter, tekniğin durumu,% 0.8 Test hatasıdır.

Rastgele Ormanlar kullanarak MNIST'de% 2.8 test hatasından daha iyisini yapmak mümkün mü? Genel fikir birliğinin Rastgele Ormanların genellikle en az% 1,4 test hatası alabileceğine inandığım çekirdek SVM'leri kadar iyi olduğunu düşündüm.


5
rastgele bir ormanın bir seferde bir karar 1 değişkeni (yani piksel) aldığını unutmayın. Görüntü işleme için çok iyi değil -raw. Daha anlamlı karar değişkenleri geliştirmek için önce bir tür önişleme (örn. PCA, vb.)
Kullanmanız

Seanv507 tam olarak ne dedi. OpenCV, rastgele ormanın çalışması için oldukça faydalı açıklayıcı değişkenleri tespit edebilen birçok özellik çıkarma özelliğine sahiptir.
JEquihua

3
Genel fikir birliğinin Rastgele Ormanların genellikle en azından çekirdek SVM'leri kadar iyi olduğu fikrindeydim . Böyle bir fikir birliği yoktur.
Marc Claesen

Yanıtlar:


15

Rastgele Ormanlar kullanarak MNIST'de% 2.8 test hatasından daha iyisini yapmak mümkün mü?

Muhtemelen evet. Ancak bu, varsayılan olarak aldığınız özellikleri kullanacağınız anlamına gelmez. Karar ağaçları genelde böyle yüksek boyutlu problemlerde iyi sonuç vermez, çünkü bir seferde yalnızca bir özelliğe ayrılırsınız. Rastgele Orman, Karar Ağaçlarının kullanışlılığını genişletir, ancak yine de aynı sorunu vardır. RF ile% 2.8'i aşmak, muhtemelen bazı ön işleme işlemlerini yapmanızı ve özellikleri daha kullanışlı bir alt kümeye dönüştürmenizi gerektirir.

Yapay Sinir Ağları ve Çekirdek SVM'leri dolaylı olarak bazı özellik dönüşümü / mühendisliği yapıyorlar. Bu yüzden, bir anlamda, Rastgele Orman'ın ekstra bir iş yapmadan düzgün bir şekilde yaklaşması etkileyici (aslında RF'nin popüler olmasının gerçek nedeni, "yeterince iyi" sonuçlar almanın aptalca kolay olmasıydı).

Genel fikir birliğinin Rastgele Ormanların genellikle en azından çekirdek SVM'leri kadar iyi olduğu fikrindeydim

Böyle bir fikir birliği yoktur. Genellikle doğruluk açısından benzer sonuçlara sahiptirler - ancak farklı güçlü / zayıf yönleri olan çok farklı algoritmalardır. Birçok problemde doğruluklar benzerdir, diğerlerinde SVM'ler iyi bir farkla kazanır, bazı RF kazançlarında iyi bir farkla kazanır.

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.