我正在为python使用scikit-learn库来解决分类问题。我使用了RandomForestClassifier和支持向量机(SVC类)。然而,当rf达到66%的准确率和68%的召回率时,支持向量机的正确率仅为45%。
我对rbf-SVM的参数C和gamma做了一个GridSearch,并提前考虑了缩放和归一化。然而,我认为射频和支持向量机之间的差距仍然太大。
为了获得足够的支持向量机性能,我还应该考虑什么呢?
我认为至少有可能达到同样的结果。(所有的分数都是在相同的测试和训练集上通过交叉验证获得的。)
发布于 2014-09-08 16:48:25
正如EdChum在评论中所说,没有任何规则或保证任何模型总是表现最好。
带有RBF核模型的支持向量机假设最优决策边界是光滑的,旋转不变量(一旦你固定了一个特定的特征尺度,而不是旋转不变量)。
随机森林不做平滑假设(它是一个分段的常数预测函数),并且倾向于轴对齐的决策边界。
RF模型所作的假设可能更适合这项任务。
顺便说一句,谢谢网格搜索了C和gamma,并在询问stackoverflow之前检查了特性规范化的影响:)
为了获得更多的洞察力,编辑,为这两个模型绘制学习曲线可能会很有趣。支持向量机模型的正则化和核带宽不能很好地处理过拟合问题,而RF的集成性质对这种数据集的大小是最好的。如果你有更多的数据,差距可能会越来越大。学习曲线图是一个很好的方法来检查您的模型将如何受益于更多的样本。
https://stackoverflow.com/questions/25720053
复制相似问题