Rừng ngẫu nhiên có thể làm tốt hơn nhiều so với lỗi kiểm tra 2,8% trên MNIST không?


9

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%.


5
hãy nhớ rằng một rừng ngẫu nhiên đang thực hiện một biến số quyết định 1 (tức là pixel) tại một thời điểm. Vì vậy, nó không phải là rất tốt cho xử lý hình ảnh -raw. Trước tiên, bạn nên sử dụng một số loại tiền xử lý (ví dụ: PCA, v.v.) để phát triển các biến quyết định có ý nghĩa hơn
seanv507

Chính xác những gì seanv507 nói. OpenCV có rất nhiều chức năng để trích xuất tính năng có thể phát hiện các biến giải thích khá hữu ích cho rừng ngẫu nhiên để làm việc.
JEquihua

3
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 . Không có sự đồng thuận như vậy.
Marc Claesen

Câu trả lời:


14

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?

Chắc là đúng. Nhưng điều đó không có nghĩa là bạn sẽ sử dụng các tính năng tương tự mà bạn nhận được theo mặc định. Cây quyết định nói chung không hoạt động tốt đối với các vấn đề chiều cao như thế này, vì bạn chỉ chia tách một tính năng tại một thời điểm. Rừng ngẫu nhiên mở rộng tính hữu dụng của Cây quyết định, nhưng chúng vẫn có cùng một vấn đề. Đánh bại 2,8% với RF có thể sẽ yêu cầu bạn thực hiện một số tính năng tiền xử lý và chuyển đổi các tính năng thành một tập hợp con hữu ích hơn.

Mạng nơ-ron và các hạt nhân SVM đang hoàn toàn thực hiện một số chuyển đổi tính năng / kỹ thuật. Vì vậy, ở một khía cạnh nào đó, thật ấn tượng khi Random Forest trở nên gần gũi mà không cần phải làm thêm (thực sự lý do thực sự khiến RF trở nên phổ biến là thật dễ dàng để có được kết quả "đủ tốt").

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

Không có sự đồng thuận như vậy. Chúng thường có kết quả tương tự về độ chính xác - nhưng chúng là các thuật toán rất khác nhau với các điểm mạnh / điểm yếu khác nhau. Trên nhiều vấn đề, độ chính xác là tương tự nhau, trên các vấn đề khác, các SVM giành chiến thắng với tỷ suất lợi nhuận cao, trên một số chiến thắng RF có tỷ suất lợi nhuận cao.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.