【发布时间】: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)?
标签: python machine-learning scikit-learn svm random-forest