ランダムフォレストのMNIST、CIFAR、STL-10などへの適用に関する文献は見つかりませんでしたので、順列不変の MNISTを自分で試してみようと思いました。
ではR、私が試しました:
randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500)
これは2時間実行され、2.8%のテストエラーが発生しました。
私はまた、scikit-learnを試しました
RandomForestClassifier(n_estimators=2000,
max_features="auto",
max_depth=None)
70分後、2.9%のテストエラーが発生しましたが、代わりにn_estimators = 200を使用すると、わずか7分後に2.8%のテストエラーが発生しました。
OpenCVの、私が試しました
rf.train(images.reshape(-1, 28**2),
cv2.CV_ROW_SAMPLE,
labels.astype('int'))
これは6.5分間実行されrf
、予測に使用すると15%のテストエラーが発生しました。params
少なくともバージョン2.3.1では、ランダムフォレストへのPythonバインディングが引数を無視しているように見えるため、トレーニングしたツリーの数はわかりません。また、OpenCVに、回帰ではなく分類の問題を解決したいことを明確にする方法を理解できませんでした-に置き換えastype('int')
てastype('float32')
も同じ結果が得られるため、疑問があります。
ではニューラルネットワークのための順列不変のトレーニングは、おそらく一つのCPUに2時間以上かかるだろうが、MNISTベンチマーク、芸術の状態は、0.8%のテストエラーです。
ランダムフォレストを使用してMNISTで2.8%のテストエラーをはるかに上回ることは可能ですか?私は、一般的なコンセンサスは、ランダムフォレストは通常カーネルSVMと少なくとも同等であり、1.4%のテストエラーが発生する可能性があると考えていました。