与随机森林相比,SVM性能较差
作者:互联网
我正在将scikit-learn库用于python以解决分类问题.我使用了RandomForestClassifier和一个SVM(SVC类).但是,尽管RF达到了约66%的精度和68%的召回率,但SVM最多只能达到45%.
我对rbf-SVM的参数C和gamma进行了GridSearch,还预先考虑了缩放和规范化.但是我认为RF和SVM之间的差距仍然太大.
我还应该考虑什么才能获得足够的SVM性能?
我认为应该有可能至少获得相等的结果.
(所有分数都是在相同的测试和训练集上通过交叉验证获得的.)
解决方法:
正如EdChum在评论中所说的那样,没有规则或保证任何模型总是表现最佳.
具有RBF内核模型的SVM假设最佳决策边界是平滑且旋转不变的(一旦您固定了非旋转不变的特定特征缩放比例).
随机森林不进行平滑度假设(它是分段常数预测函数),而是倾向于轴对齐的决策边界.
RF模型所做的假设可能更适合任务.
顺便说一句,感谢网格在询问stackoverflow之前搜索了C和gamma并检查了功能归一化的影响:)
编辑以获得更多的见解,为2个模型绘制learning curves可能很有趣.可能的情况是,SVM模型的正则化和内核带宽无法很好地处理过度拟合,而RF的合奏性质对于此数据集大小最有效.如果您有更多数据,差距可能会缩小.学习曲线图是检查模型如何从更多样本中受益的好方法.
标签:random-forest,scikit-learn,machine-learning,svm,python 来源: https://codeday.me/bug/20191029/1957961.html