Tôi đã không tìm thấy bất kỳ tài liệu về việc áp dụng rừng ngẫu nhiên để MNIST, CIFAR, STL-10, vv để tôi nghĩ rằng tôi muốn thử chúng với hoán vị bất biến MNIST bản thân mình.
Trong R , tôi đã thử:
randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500)
Điều này chạy trong 2 giờ và có một lỗi kiểm tra 2,8%.
Tôi cũng đã thử học scikit , với
RandomForestClassifier(n_estimators=2000,
max_features="auto",
max_depth=None)
Sau 70 phút, tôi đã nhận được lỗi kiểm tra 2,9%, nhưng với n_estimators = 200 thay vào đó, tôi đã nhận được lỗi kiểm tra 2,8% chỉ sau 7 phút.
Với OpenCV , tôi đã thử
rf.train(images.reshape(-1, 28**2),
cv2.CV_ROW_SAMPLE,
labels.astype('int'))
Việc này diễn ra trong 6,5 phút và sử dụng rf
để dự đoán đã cho lỗi thử nghiệm là 15%. Tôi không biết có bao nhiêu cây được đào tạo, vì ràng buộc Python của chúng cho Rừng ngẫu nhiên dường như bỏ qua params
đối số, ít nhất là trong phiên bản 2.3.1. Tôi cũng không thể tìm ra cách làm rõ với OpenCV rằng tôi muốn giải quyết vấn đề phân loại, thay vì hồi quy - tôi nghi ngờ, bởi vì thay thế astype('int')
bằng astype('float32')
cho kết quả tương tự.
Trong các mạng thần kinh , đối với điểm chuẩn MNIST bất biến , trạng thái của nghệ thuật là lỗi kiểm tra 0,8%, mặc dù việc đào tạo có thể sẽ mất hơn 2 giờ trên một CPU.
Có thể làm tốt hơn nhiều so với lỗi kiểm tra 2,8% trên MNIST khi sử dụng Rừng ngẫu nhiên không? Tôi nghĩ rằng sự đồng thuận chung là Rừng ngẫu nhiên thường ít nhất là tốt như các SVM hạt nhân, mà tôi tin rằng có thể nhận được lỗi kiểm tra 1,4%.