Saya belum menemukan literatur tentang penerapan Hutan Acak untuk MNIST, CIFAR, STL-10, dll. Jadi saya pikir saya akan mencobanya sendiri dengan permutasi MNIST invarian .
Di R , saya mencoba:
randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500)
Ini berjalan selama 2 jam dan mendapat 2,8% kesalahan pengujian.
Saya juga mencoba scikit-belajar , dengan
RandomForestClassifier(n_estimators=2000,
max_features="auto",
max_depth=None)
Setelah 70 menit, saya mendapat kesalahan pengujian 2,9%, tetapi dengan n_estimators = 200 sebagai gantinya, saya mendapat kesalahan pengujian 2,8% setelah hanya 7 menit.
Dengan OpenCV , saya mencoba
rf.train(images.reshape(-1, 28**2),
cv2.CV_ROW_SAMPLE,
labels.astype('int'))
Ini berjalan selama 6,5 menit, dan menggunakan rf
untuk prediksi memberikan kesalahan pengujian 15%. Saya tidak tahu berapa banyak pohon yang dilatihnya, karena pengikatan Python mereka untuk Random Forests tampaknya mengabaikan params
argumen, setidaknya dalam versi 2.3.1. Saya juga tidak tahu bagaimana menjelaskan kepada OpenCV bahwa saya ingin menyelesaikan masalah klasifikasi, daripada regresi - saya ragu, karena mengganti astype('int')
dengan astype('float32')
memberikan hasil yang sama.
Dalam jaringan saraf , untuk tolok ukur MNIST permutasi-invarian , keadaan saat ini adalah 0,8% kesalahan tes, meskipun pelatihan mungkin akan memakan waktu lebih dari 2 jam pada satu CPU.
Apakah mungkin melakukan jauh lebih baik daripada 2,8% tes kesalahan pada MNIST menggunakan Hutan Acak? Saya berpikir bahwa konsensus umum adalah bahwa Random Forest biasanya setidaknya sama baiknya dengan kernel SVM, yang saya percaya bisa mendapatkan kesalahan uji 1,4%.