选择最适合的分类器算法

时间:2015-04-22 15:11:04

标签: matlab machine-learning classification text-classification

如何选择/确定给定数据集的分类器?

作为输入训练数据给出。如何知道哪种分类器是最佳选择并给出最准确的结果?有没有贝叶斯分类优于kNN或任何其他分类算法的情况。

1 个答案:

答案 0 :(得分:1)

首先,您应该始终使用cross validation.评估您的算法。为此您将数据拆分为训练和验证集,使用第一组训练您的分类器并使用后者来获得分类器的近似误差。

那就是说,通常你最终会测试不同的分类器和算法。没有办法确定哪种方法的效果如何。当然,如果您对数据背后的含义有更深入的了解,它将使事情变得更容易。您可以将分类拆分为不同的阶段,或者以某种方式修改算法以更好地适应问题。基本上一切都是允许的,例如,如果您的值分散在0-100的范围内,但大多数都在0-10或90-100范围内,您可能想要检查是否有意义做出第一个决定(像决定树桩一样,你检查0=<x<=50100>=x>50,然后为这两个组使用不同的分类器。

根本无法对任意问题提出一般性建议。最好的&#34;选择实际上取决于数据的特定性质。

对于某些分类器的内核也是如此。如果您对数据的本质有所了解,则可以创建为您的问题量身定制的自定义内核函数。

您提到的算法以及SVM或adaboost等其他算法在许多方面都有所不同。有些分类器训练成本低廉,但评估费用较高(kNN),而其他分类器的训练成本很高,但评价起来却很便宜。

就像我说的那样,你可能最终会测试很多东西。只需确保使用交叉验证来估算分类器的效果。仅仅在训练期间查看分类错误是不够的。