-
16-10-2019 - |
题
我有一个二进制分类问题:
- 训练集大约有1000个样本
- 10个属性,包括二进制,数字和分类
这种类型的问题的最佳选择是哪种算法?
默认情况下,我将从SVM开始(初步具有名义属性值转换为二进制功能),因为它被认为是相对干净而不是嘈杂的数据的最佳选择。
解决方案
很难说,不知道您的数据集,以及您的数据集基于您的功能向量的可分离程度,但是由于您相对较小的样本集,我可能建议您在标准随机森林上使用极端随机森林。
极端的森林与标准的随机森林非常相似,一个例外是,极端随机森林无需优化树木的拆分,而是随机分裂。最初,这似乎是负面的,但这通常意味着您的概括和速度明显更好,尽管训练集中的AUC可能会更糟。
对于这类任务,逻辑回归也是一个相当可靠的赌注,尽管您的维度相对较低,样本量很小,我会担心过度拟合。您可能需要使用K-Nearest邻居检查出来,因为它通常会在低维度下表现出非常意志,但是通常不能很好地处理分类变量。
如果我不得不在不了解问题的情况下选择一个,我肯定会将我的赌注放在极端的随机森林上,因为它很可能会给您在这种数据集上的良好概括,并且还可以更好地处理数字和分类数据的混合比大多数其他方法。
其他提示
对于低参数,样本量相当有限,二进制分类器逻辑回归应该足够强大。您可以使用更高级的算法,但可能过度杀伤。
当组合分类变量时,我可以进行随机决策林,因为它直接处理分类变量而没有1个N编码转换。这丢失了较少的信息。
线性SVM应该是一个很好的起点。看一眼 这个 选择正确的估计器指南。
不建议先使用复杂方法。最初使用更快的简单方法(KNN,NBC等),然后通过线性回归,逻辑回归,LDA,CART(RF),KREG,然后进行最小二乘SVM,梯度上升SVM,Anns,然后进行Metaheurustics(贪婪(Greedy)启发式山坡攀岩,群体智能,蚂蚁菌落优化等)