SVM与Random Forest相比表现不佳

时间:2014-09-08 08:24:12

标签: python machine-learning scikit-learn svm random-forest

我正在使用scikit-learn库来解决分类问题。我使用RandomForestClassifier和SVM(SVC类)。然而,当rf达到约66%的精度和68%的召回率时,SVM每个只能达到45%。

我为rbf-SVM的参数C和gamma做了GridSearch,并且还提前考虑了缩放和标准化。但是我认为rf和SVM之间的差距仍然太大。

我还应该考虑什么才能获得足够的SVM性能?

我认为应该可以获得至少相同的结果。 (所有分数都是通过对相同测试和训练集的交叉验证获得的。)

1 个答案:

答案 0 :(得分:4)

正如EdChum在评论中所说,没有规则或保证任何模型总是表现最佳。

具有RBF核模型的SVM假设最优决策边界是平滑的并且是旋转不变的(一旦你修复了一个非旋转不变的特定特征缩放)。

随机森林没有做出平滑假设(它是一个明智的常数预测函数),并且有利于轴对齐的决策边界。

RF模型所做的假设可能更适合任务。

BTW,感谢网格搜索Cgamma并在询问stackoverflow之前检查了功能规范化的影响:)

编辑以获得更多洞察力,为2个模型绘制learning curves可能会很有趣。可能的情况是,SVM模型正则化和内核带宽不能足够好地处理过度拟合,而RF的整体性质最适合该数据集大小。如果您有更多数据,差距可能会更接近。学习曲线图是检查模型如何从更多样本中受益的好方法。