如何选择/确定给定数据集的分类器?
作为输入训练数据给出。如何知道哪种分类器是最佳选择并给出最准确的结果?有没有贝叶斯分类优于kNN或任何其他分类算法的情况。
答案 0 :(得分:1)
首先,您应该始终使用cross validation.评估您的算法。为此您将数据拆分为训练和验证集,使用第一组训练您的分类器并使用后者来获得分类器的近似误差。
那就是说,通常你最终会测试不同的分类器和算法。没有办法确定哪种方法的效果如何。当然,如果您对数据背后的含义有更深入的了解,它将使事情变得更容易。您可以将分类拆分为不同的阶段,或者以某种方式修改算法以更好地适应问题。基本上一切都是允许的,例如,如果您的值分散在0-100的范围内,但大多数都在0-10或90-100范围内,您可能想要检查是否有意义做出第一个决定(像决定树桩一样,你检查0=<x<=50
或100>=x>50
,然后为这两个组使用不同的分类器。
根本无法对任意问题提出一般性建议。最好的&#34;选择实际上取决于数据的特定性质。
对于某些分类器的内核也是如此。如果您对数据的本质有所了解,则可以创建为您的问题量身定制的自定义内核函数。
您提到的算法以及SVM或adaboost等其他算法在许多方面都有所不同。有些分类器训练成本低廉,但评估费用较高(kNN),而其他分类器的训练成本很高,但评价起来却很便宜。
就像我说的那样,你可能最终会测试很多东西。只需确保使用交叉验证来估算分类器的效果。仅仅在训练期间查看分类错误是不够的。