我有一个二进制分类问题:

  • 训练集大约有1000个样本
  • 10个属性,包括二进制,数字和分类

这种类型的问题的最佳选择是哪种算法?

默认情况下,我将从SVM开始(初步具有名义属性值转换为二进制功能),因为它被认为是相对干净而不是嘈杂的数据的最佳选择。

有帮助吗?

解决方案

很难说,不知道您的数据集,以及您的数据集基于您的功能向量的可分离程度,但是由于您相对较小的样本集,我可能建议您在标准随机森林上使用极端随机森林。

极端的森林与标准的随机森林非常相似,一个例外是,极端随机森林无需优化树木的拆分,而是随机分裂。最初,这似乎是负面的,但这通常意味着您的概括和速度明显更好,尽管训练集中的AUC可能会更糟。

对于这类任务,逻辑回归也是一个相当可靠的赌注,尽管您的维度相对较低,样本量很小,我会担心过度拟合。您可能需要使用K-Nearest邻居检查出来,因为它通常会在低维度下表现出非常意志,但是通常不能很好地处理分类变量。

如果我不得不在不了解问题的情况下选择一个,我肯定会将我的赌注放在极端的随机森林上,因为它很可能会给您在这种数据集上的良好概括,并且还可以更好地处理数字和分类数据的混合比大多数其他方法。

其他提示

对于低参数,样本量相当有限,二进制分类器逻辑回归应该足够强大。您可以使用更高级的算法,但可能过度杀伤。

当组合分类变量时,我可以进行随机决策林,因为它直接处理分类变量而没有1个N编码转换。这丢失了较少的信息。

线性SVM应该是一个很好的起点。看一眼 这个 选择正确的估计器指南。

不建议先使用复杂方法。最初使用更快的简单方法(KNN,NBC等),然后通过线性回归,逻辑回归,LDA,CART(RF),KREG,然后进行最小二乘SVM,梯度上升SVM,Anns,然后进行Metaheurustics(贪婪(Greedy)启发式山坡攀岩,群体智能,蚂蚁菌落优化等)

许可以下: CC-BY-SA归因
scroll top