与随机森林相比,SVM 性能较差
Posted
技术标签:
【中文标题】与随机森林相比,SVM 性能较差【英文标题】:SVM poor performance compared to Random Forest 【发布时间】:2014-11-01 10:11:18 【问题描述】:我正在使用 Python 的 scikit-learn
库来解决分类问题。我使用了RandomForestClassifier
和一个 SVM(SVC 类)。然而,虽然 rf 达到了大约 66% 的精度和 68% 的召回率,但 SVM 只能达到 45%。
我为 rbf-SVM 的参数 C 和 gamma 做了一个GridSearch
,并且还提前考虑了缩放和标准化。不过我觉得rf和SVM的差距还是太大了。
我还应该考虑什么才能获得足够的 SVM 性能?
我认为至少应该有可能获得相同的结果。 (所有分数都是在相同的测试集和训练集上通过交叉验证获得的。)
【问题讨论】:
为什么你认为它应该表现得一样好? 嗯,我认为 SVM 和 RF 的模型空间应该或多或少相似,因此应该有相似的模型产生相似的结果...... 不,不能保证两个模型之间的性能相同,您尝试优化参数并执行缩放和规范化这一事实并不能保证它们都应该表现良好。您可以在您的数据集上尝试example 并亲自查看,您最终会发现没有硬性规定或保证任何模型总是表现最佳 你是否对特征矩阵的列进行了归一化?例如范围 0 .. 1 或均值 0(加上标准偏差 1)? 【参考方案1】:正如 EdChum 在 cmets 中所说,没有规则或保证任何模型始终表现最佳。
带有 RBF 内核模型的 SVM 假设最优决策边界是平滑且旋转不变的(一旦您修复了不是旋转不变的特定特征缩放)。
随机森林不做平滑假设(它是一个分段常数预测函数),并且倾向于轴对齐的决策边界。
RF 模型所做的假设可能更适合该任务。
顺便说一句,感谢网格搜索 C
和 gamma
并在询问 *** 之前检查了特征规范化的影响 :)
编辑以获得更多见解,为 2 个模型绘制 learning curves 可能会很有趣。可能是 SVM 模型正则化和内核带宽无法足够好地处理过拟合,而 RF 的集成特性最适合这种数据集大小。如果您有更多数据,差距可能会更近。学习曲线图是检查模型如何从更多样本中受益的好方法。
【讨论】:
以上是关于与随机森林相比,SVM 性能较差的主要内容,如果未能解决你的问题,请参考以下文章
为啥与 MSE 相比,使用 MAE 标准训练随机森林回归器如此缓慢?