如何为某个问题确定最合适的分类器?

人工智能 神经网络 分类 比较 感知器 贝叶斯网络
2021-11-02 22:29:28

考虑在垃圾邮件过滤中使用的贝叶斯分类器它将电子邮件转换为向量,大部分时间使用词袋方法。虽然它在使用之前先学习,但它可以作为一个在线系统工作,即即使在部署之后它也可以用于过滤和从示例中学习。

现在,另一方面,现在出现了感知器它计算垃圾邮件和非垃圾邮件的平均向量,然后将它们分类为适当的类别。模型每次出错时都会调整平均向量。

现在,神经网络出现了,它们也能够获取类似向量的词袋或狗和猫的图像像素,并将它们分类为是或否。

那么,在设计并将它们实施到系统中时,如何确定哪一种方法(贝叶斯分类器、感知器或神经网络)最适合给定情况或任务?要考虑的一个因素是时间复杂度(或速度),但其他因素是什么,以及如何对它们进行排名?

1个回答

这是区分对机器学习学习有深刻理解和经验的人与新手的主要技能之一。有几种方法:

  1. 尝试几种方法,也许使用自动超参数优化,看看典型模型质量是否有很大差异。如果您没有很多经验,这很常见,但专家可能会以更有针对性的方式尝试。
  2. 可视化问题的形状,可能是通过使用像 PCA 或 tSNE 这样的降维技术,或者可能是自动编码器。如果将数据压缩为 2d,是否有清晰的线性模式?也许尝试像逻辑回归这样的线性模型。有几个不同的群体吗?你需要画多少条线来分开它们?如果它很多,也许你需要一个非常非线性的模型。如果只是几个,也许一个小的多层感知器可以提供帮助。如果有螺旋带或圆形,可能还有带有非线性核的 SVM。知道如何将可视化转化为对可以提供帮助的模型种类的直觉是一项高级技能。您需要了解每种模型可以学习适应的模式形状,以及这些模式如何转换或不转换为更高维度的空间。

  3. 阅读文献如果你在计算机视觉领域工作,你应该试试 CNN。为什么?好吧,其他人都在使用它们。它们在大多数计算机视觉问题上都表现出色。他们拥有最多的比赛记录。不尝试它们是愚蠢的。但是,如果您正在研究垃圾邮件分类,那么 CNN 是一个糟糕的选择。人们使用压缩分类器、贝叶斯模型,有时还使用多阶段模型来构建复杂的特征。如果您查看您所在地区的最新文献,您可以知道该使用什么。充分阅读和理解这些文献以解释它通常需要在 ML 和/或应用领域进行更高级的科学培训。

最后一点,机器学习的无免费午餐定理告诉我们,这将永远是一门艺术(至少,这是一个解释专家所主张的),而不是一门科学,所以你用它练习得越多,你会变得更好。