我正在研究二进制分类案例并比较不同分类器的性能。在多个数据集上测试Adaboost
算法的性能(以决策树为基分类器)SVM
,我发现该boosting
算法的性能更好。
我的问题是为什么会发生这种情况?这是因为boosting
总是表现出色SVM
吗?还是与我的数据集的特征有关?任何人都可以解释发生在我身上的事情吗?
我正在研究二进制分类案例并比较不同分类器的性能。在多个数据集上测试Adaboost
算法的性能(以决策树为基分类器)SVM
,我发现该boosting
算法的性能更好。
我的问题是为什么会发生这种情况?这是因为boosting
总是表现出色SVM
吗?还是与我的数据集的特征有关?任何人都可以解释发生在我身上的事情吗?
在统计学中有一个叫做没有免费午餐定理的定理,它本质上说当对所有可能的问题进行平均时,任何两种算法的性能是相等的,这在某种程度上也意味着“伙计,问题空间无限大,你尝试的问题太少了推断哪个更好”。但老实说,根据我的经验,在实际场景中,我发现在大多数情况下,adboost 的性能优于 SVM。
但在某些情况下,有时人们更喜欢使用 SVM:
1)当训练数据量很大并且计算时间是一个问题时。这就是为什么 SVM 在大规模设置中仍然有发言权。与 SVM 相比,无论是 boosting、深度信念网络还是 ANN,计算量都很大。
2)当您的生产设置需要您保持简单时,您可以选择计算时间和内存都较低的简单线性 SVM。(但是请记住,SVM 中的复杂非线性内核可能比 adboost 消耗更多的内存)
3)当数据集合理平衡时,即您对每个标签的训练数据都有足够的观察。
在您的情况下,您可以改进的事情是:
1)尝试各种复杂的SVM内核,看看它是否进一步提高了准确性。
2)尝试两者的合奏。