我正在研究二元分类案例并比较不同分类器的性能。在多个数据集上针对Adaboost
测试SVM
算法(决策树作为其基本分类器)的性能,我发现boosting
算法表现更好。
我的问题是为什么会发生这种情况?这是因为boosting
总是优于SVM
吗?或者它与我的数据集的特征有关?谁能解释一下我发生了什么?
答案 0 :(得分:3)
在统计学中有一个称为无免费午餐定理的定理,基本上说任何两个算法的性能在对所有可能的问题进行平均时都是等价的,这在某种程度上也意味着" Dude问题空间无限巨大,你尝试过少的问题来推断哪个更好"。 但说实话,根据我的经验,我发现adboost在大多数情况下比SVM表现更好。
但在某些情况下,有时人们更喜欢使用SVM:
1)当训练数据量巨大且计算时间受到关注时。这就是为什么SVM在大规模设置中仍有发言权的原因。与SVM相比,它提升,深度信念网络或ANN都是计算量大。
2)当您的生产设置需要您保持简单时,您可以选择一个简单的线性SVM,既低计算时间又记忆内存。(但请记住,SVM中复杂的非线性内核会占用更多内存而不是adboost)
3)当数据集合理平衡时,即您对每个标签的训练数据都有足够的观察结果。
在你的情况下,你可以做些改进的事情是:
1)尝试各种复杂的SVM内核,看它是否进一步提高了准确性。
2)尝试两者的内容。