随机森林能否比MNIST上的2.8%测试误差好得多?


10

我还没有发现在随机森林的应用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%的测试错误。


5
请记住,随机森林一次要使用决策1变量(即pixel)。因此对于原始图像处理不是很好。您最好先使用某种预处理(例如PCA等)来开发更有意义的决策变量
seanv507 2013年

正是seanv507所说的。OpenCV具有许多用于特征提取的功能,这些功能可以检测非常有用的解释变量以供随机森林使用。
JEquihua 2013年

3
我认为,普遍共识是随机森林通常至少与内核SVM一样好。没有这样的共识。
马克·克莱森

Answers:


15

是否有可能比使用随机森林的MNIST上的2.8%测试错误好得多?

大概是。但这并不意味着您将使用与默认设置相同的功能。通常,决策树无法很好地解决此类高维问题,因为您一次只能拆分一个要素。随机森林扩展了决策树的用途,但它们仍然存在相同的问题。用RF击败2.8%可能会需要您进行一些功能预处理并将功能转换为更有用的子集。

神经网络和内核SVM正在隐式地进行某些功能转换/工程设计。因此,从某种意义上说,它给人留下深刻的印象是,Random Forest无需任何额外的工作就可以很好地接近(事实上,RF受欢迎的真正原因是,获得“足够好”的结果非常容易)。

我认为普遍的共识是随机森林通常至少与内核SVM一样好

没有这样的共识。就准确性而言,它们通常具有相似的结果-但是它们是具有不同优缺点的非常不同的算法。在许多问题上,精度是相似的,在其他方面,SVM则以较高的优势获胜,在某些RF方面以较高的优势获胜。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.