选择最适合的分类器算法

Posted

技术标签:

【中文标题】选择最适合的分类器算法【英文标题】:Choosing best suited classifier algorithm 【发布时间】:2015-06-30 08:41:30 【问题描述】:

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

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

【问题讨论】:

您希望得到什么结果?您希望挖掘的数据是什么?这将极大地影响您对分类器的选择。根据我的理解,您拥有 TF-IDF,它基本上提取了产品描述的重要部分。第二个文件,你的描述是什么意思?它是一行字符串还是一个数字描述符(即协方差和均值)。 决定哪个最好的通常方法是全部使用它们,并根据一个保持测试集来衡量结果。根据您对分类器的预期用途选择测量标准(例如,分类中的错误是否容易修复?)根据经验,您可能会对可能表现良好的分类器有所了解。如果你有时间,并且对你来说最好的意思是“不惜一切代价最准确”,那么最好的可能就是多个不同分类器的集合。 在某些情况下,贝叶斯分类的性能优于 K-最近邻,尤其是当数据特征非常稀疏(即它们不重叠)时,例如年龄与您所在的学校参加,但不要指望它表现得更好,它的主要优势是速度 【参考方案1】:

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

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

根本不可能对任意问题给出一般性建议。 “最佳”选择实际上取决于您的数据非常具体的性质。

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

您提到的算法与 SVM 或 adaboost 等其他算法在很多方面都不同。一些分类器的训练成本低,但评估成本更高(kNN),而另一些分类器的训练成本高,但评估成本非常低。

就像我说的,您最终可能会测试很多东西。只需确保您使用交叉验证来估计您的分类器的性能。训练时只看分类误差是不够的。

【讨论】:

以上是关于选择最适合的分类器算法的主要内容,如果未能解决你的问题,请参考以下文章

哪个分类器更适合扫描图像?

机器学习算法--贝叶斯分类器

选择哪种分类算法?

一般来说,选择哪种机器学习分类器? [关闭]

什么是有监督的 ML 分类算法? [关闭]

KNN分类器之NearestNeighbors详解及实践