首先尝试的前五个分类器

机器算法验证 机器学习 分类 方法
2022-02-06 14:36:19

除了明显的分类器特征,如

  • 计算成本,
  • 特征/标签的预期数据类型和
  • 适用于某些大小和维度的数据集,

在新数据集上首先尝试的前 5 个(或 10、20 个?)分类器是什么通常我会尝试朴素贝叶斯、最近邻、决策树和支持向量机——尽管我没有充分的理由选择这种方法,除了我了解它们并且大多了解它们是如何工作的。

我想应该选择涵盖最重要的一般分类方法的分类器。根据该标准或任何其他原因,您会推荐哪种选择?


更新:这个问题的另一种表述可能是:“存在哪些一般的分类方法,哪些具体方法涵盖最重要/流行/有希望的方法?”

3个回答

随机森林

快速、稳健、准确度高,在大多数情况下无需调整,不需要归一化,不受共线性影响,生成非常好的误差近似和有用的重要性排序,作为训练的副作用,微不足道的并行,眨眼间就能预测。

缺点:比 kNN 或 NB 等普通方法慢,在同等类别下效果最好,在迫切需要内核技巧的问题上比 SVM 更差准确度,是一个硬黑盒,不会煮咖啡。

高斯过程分类器(不使用拉普拉斯近似),最好使用边缘化而不是优化超参数。为什么?

  1. 因为它们给出了概率分类
  2. 您可以使用允许您直接对非矢量数据进行操作和/或整合专家知识的核函数
  3. 他们处理正确拟合模型的不确定性,您可以将这种不确定性传播到决策过程
  4. 通常非常好的预测性能。

缺点

  1. 慢的
  2. 需要大量内存
  3. 对于大规模的问题是不切实际的。

首选虽然是正则化逻辑回归或岭回归[没有特征选择] - 对于大多数问题,非常简单的算法工作得很好并且更难出错(实际上算法之间的性能差异小于性能差异在驾驶它们的操作员之间)。

当你接近一个新的数据集时,我自己应该开始关注整个问题。首先获得分类特征的分布以及每个连续特征的均值和标准差。然后:

  • 删除缺失值超过 X% 的特征;
  • 当特定值超过相对频率的 90-95% 时删除分类特征;
  • 删除CV=std/mean<0.1的连续特征;
  • 获取参数排名,例如连续的方差分析和分类的卡方;
  • 获得重要的特征子集;

然后我通常将分类技术分为两组:白盒技术和黑盒技术。如果您需要知道“分类器是如何工作的”,您应该在第一组中选择,例如决策树或基于规则的分类器。

如果您需要在不建立模型的情况下对新记录进行分类,则应该考虑使用 Eager learner,例如 KNN。

在那之后,我认为最好在准确性和速度之间设置一个阈值:神经网络比 SVM 慢一点。

这是我的前五种分类技术:

  1. 决策树;
  2. 基于规则的分类器;
  3. SMO(支持向量机);
  4. 朴素贝叶斯;
  5. 神经网络。