我还没有发现在随机森林的应用MNIST,CIFAR,STL-10等任何文学,所以我想我会尝试将其与排列不变 MNIST自己。
在R中,我尝试:
randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500)
运行了2个小时,测试错误为2.8%。
我也试过scikit学习,与
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%的测试误差。我不知道它训练了多少棵树,因为它们对Random Forests的Python绑定似乎忽略了该params
参数,至少在版本2.3.1中如此。我也无法弄清楚如何讲清楚OpenCV的,我想解决一个分类问题,而不是回归-我有我的怀疑,因为替换astype('int')
用astype('float32')
的结果相同。
在神经网络中,对于不变排列的 MNIST基准,目前的技术水平是0.8%的测试错误,尽管在一个CPU上训练可能要花费2个小时以上。
是否有可能比使用随机森林的MNIST上的2.8%测试错误好得多?我认为普遍的共识是随机森林通常至少与内核SVM一样好,我相信它可以得到1.4%的测试错误。