面对各种各样的机器学习算法——“我应该用哪一个?”,是一名初学者经常遇到的问题。问题的答案,取决于许多因素,包括:
数据的大小,质量和性质
可用的计算时间
任务的紧迫性
你想对数据做什么
即便是经验丰富的数据科学家,也无法在尝试各种算法之前,判断出哪种算法的效果最好。在这里,我并不是忽悠大家要一步到位。我的意思是,要根据明确的因素,搞清楚应该优先尝试哪些算法。
机器学习算法速查表
该流程图展示了何时使用哪些算法
机器学习算法速查表,帮助你找到适合不同具体问题的算法。本文将引导你如何使用速查表。
该速查表专为初阶数据科学家和分析师设计。因而在讨论算法时,我们将对假设做一些简化。
这里推荐的算法,来自于多位数据科学家、机器学习专家的编译反馈和提示。 有几个问题我们还没有达成一致,对于这些问题,我们试图突出共同点,调和差异。
当我们的库在将来更加完整,包含更多可用方法时,将会添加额外的算法。
如何使用速查表对图表上的路径和算法标签,看作“如果 <路径标签> 就使用 <算法>”。例如:
如果要降维,就使用主成分分析。
如果需要快速的数字预测,就用决策树或逻辑回归。
如果需要分层结果,就使用层次聚类。
有时候,适用的分支有多个,其他时候完美适用的一个也没有。 重要的是记住:这些路径仅仅是经验总结,有的建议并不准确。 我聊过的几位数据科学家都说,找到最佳算法的唯一方法,就是尝试所有的算法。
机器学习算法的类型本节将对最常见的机器学习算法类型,做个概述。 如果您对这些类别很熟悉,可以跳过本节到下面的“何时使用特定算法”。
监督学习监督学习算法会根据样例集做预测。 例如,可以使用历史销售预估将来价格。 在监督学习中,有标记过的训练数据组成的输入变量,以及输出变量。 你用算法来分析训练数据,学习从输入映射到输出的函数。这个预测函数通过从训练数据中进行归纳,对新的未知的样本建立映射,来预测未知情况下的结果。
分类:当数据用于预测分类变量时,监督学习也称为分类。 图像处理中经典的猫狗识别:根据图像内容,向图片分配"狗"或"猫"标签就是这种案例。 当只有两个标签时,这被称为二进制分类。 当有两类以上时,这些问题被称为多类分类。
回归:当预测连续值时,问题就成为了一个回归问题。
预测:根据过去和现在的数据,对未来进行预测。 最常被用来分析趋势。 一个常见的例子可能是根据今年和前几年的销售情况估计下一年的销售额。
半监督学习监督学习的困难在于,标注数据非常昂贵、费时。如果标注数据有限,可以使用未标注数据来加强监督学习。在这种情况下机器不是完全监督的,我们就称是半监督。通过半监督学习,可以使用未标注数据和少量的标注数据来提高学习的准确性。
无监督学习进行无监督学习时,机器仅使用未标注数据。目标是发现数据中的内在模式,比如聚类结构,一个低维的流形(manifold),或者一个稀疏树和图。
聚类:对一组数据进行分组,使得同一组(或一类)中的数据比其他组中的数据更加相似(根据一些规则)。这通常用来将整个数据集划分成几个数据组。在每个数据组中进行分析,能帮助用户找到内在的关联。
降维:减少约束条件下的变量数量。在许多应用中,原始数据特征维度特别高,并且一些特征是冗余的、或者和结果无关。降维能够帮助找到正确的潜在关联。
增强学习增强学习基于环境反馈,分析并优化代理的行为。机器会尝试不同场景,找出产生最大的收益的行为,不需要被告知做什么。试错和延时奖励,是增强学习和其他技术的主要区别。
选择算法的注意事项选择一个算法时,通常要考虑这三个方面:准确性,训练时间和易用性。许多人将准确性放在首位,但是初学者倾向于选择他们最了解的算法。
当拿到一个数据集时,首先要考虑的是如何获取结果,不管这些结果可能看起来是什么样子的。初学者倾向于选择容易实现并且能够快速得到结果的算法。这种做法是可取的,因为这只是第一步工作。一旦你得到了一些结果并且熟悉了这些数据,你可以会花费更多时间、使用更加复杂的算法来增强你对这些数据的理解,来进一步改进结果。
即使在这种情况下,最好的算法,可能并不是有最高准确率的方法,因为一个算法通常需要仔细的调参和大量训练才能达到它的最优性能。
本文转自d1net(转载)