如何选择 Azure 机器学习算法

一个常见的问题是“我应该使用哪种机器学习算法?”您选择的算法主要取决于数据科学场景的两个不同方面:

  • 您想用您的数据做什么? 具体来说,您想通过从过去的数据中学习来回答什么业务问题?

  • 您的数据科学场景有哪些要求? 具体来说,您的解决方案支持的准确性、训练时间、线性度、参数数量和功能数量是多少?

Considerations for choosing algorithms: What do you want to know? What are the scenario requirements?

业务场景和机器学习算法备忘单

Azure 机器学习算法备忘单可帮助您首先考虑: 您想如何处理您的数据?在机器学习算法备忘单上,查找想要执行的任务,然后找到用于预测分析解决方案的 Azure 机器学习设计器算法。

机器学习设计器提供了全面的算法组合,例如多类决策森林、推荐系统、神经网络回归、多类神经网络和 K 均值聚类。每种算法都旨在解决不同类型的机器学习问题。请参阅机器学习设计器算法和组件参考,获取完整列表以及有关每种算法如何工作以及如何调整参数以优化算法的文档。

根据 Azure 机器学习算法备忘单中的指导,在为解决方案选择机器学习算法时请记住其他要求。以下是需要考虑的其他因素,例如准确性、训练时间、线性度、参数数量和特征数量。

机器学习算法比较

一些学习算法对数据结构或期望结果做出特定假设。如果您能找到适合您需求的工具,它可以为您提供更有用的结果、更准确的预测或更快的训练时间。

下表总结了分类、回归和聚类系列算法的一些最重要的特征:

算法 准确性 训练时间 线性度 参数 笔记
分类家族
好的 快速地 是的 4
出色的 缓和 5 显示较慢的得分时间。建议不要使用一对多多类,因为累积树预测中的步长锁定会导致评分时间变慢
出色的 缓和 6 内存占用大
好的 缓和 8
好的 缓和 是的 4
好的 快速地 是的 5 适合大型功能集
好的 快速地 是的 4
出色的 缓和 5 显示较慢的得分时间
出色的 缓和 6 倾向于提高准确性,但存在覆盖范围较小的小风险
好的 缓和 8
- - - - 查看所选两类方法的属性
回归族
好的 快速地 是的 4
出色的 缓和 5
出色的 缓和 6 内存占用大
好的 缓和 8
聚类家族
出色的 缓和 是的 8 聚类算法

数据科学场景的要求

一旦您知道要如何处理数据,您就需要确定解决方案的其他要求。

针对以下要求做出选择并可能进行权衡:

  • 准确性
  • 训练时间
  • 线性度
  • 参数数量
  • 特征数量

准确性

机器学习的准确性以真实结果占总案例的比例来衡量模型的有效性。在机器学习设计器中,评估模型组件计算一组行业标准评估指标。您可以使用此组件来测量经过训练的模型的准确性。

获得最准确的答案并不总是必要的。有时近似值就足够了,具体取决于您想用它做什么。如果是这种情况,您可以通过坚持使用更近似的方法来大幅缩短处理时间。近似方法自然也倾向于避免过度拟合。

可以通过三种方式使用评估模型组件:

  • 根据训练数据生成分数以评估模型
  • 生成模型分数,但将这些分数与保留测试集的分数进行比较
  • 使用同一组数据比较两个不同但相关的模型的分数

有关可用于评估机器学习模型准确性的指标和方法的完整列表,请参阅评估模型组件。

训练时间

在监督学习中,训练意味着使用历史数据构建最小化错误的机器学习模型。训练模型所需的分钟或小时数在算法之间存在很大差异。训练时间通常与准确性密切相关;一个通常伴随着另一个。

此外,某些算法对数据点的数量比其他算法更敏感。您可能会选择特定的算法,因为您有时间限制,尤其是当数据集很大时。

在机器学习设计器中,创建和使用机器学习模型通常分为三个步骤:

  1. 通过选择特定类型的算法,然后定义其参数或超参数来配置模型。

  2. 提供带有标签且数据与算法兼容的数据集。将数据和模型连接到训练模型组件。

  3. 训练完成后,使用经过训练的模型和评分组件之一对新数据进行预测。

线性度

统计和机器学习中的线性意味着数据集中的变量和常量之间存在线性关系。例如,线性分类算法假设类别可以通过直线(或其高维模拟)分隔。

许多机器学习算法都利用线性。在 Azure 机器学习设计器中,它们包括:

线性回归算法假设数据趋势遵循直线。这种假设对于某些问题来说还不错,但对于其他问题来说它会降低准确性。尽管存在缺点,线性算法作为首选策略仍然很受欢迎。它们的算法往往简单且训练速度快。

Nonlinear class boundary

非线性类边界依赖线性分类算法会导致精度较低。

Data with a nonlinear trend

具有非线性趋势的数据使用线性回归方法会产生比必要的大得多的误差。

参数数量

参数是数据科学家在设置算法时需要转动的旋钮。它们是影响算法行为的数字,例如容错性或迭代次数,或者算法行为方式的变体之间的选项。算法的训练时间和准确性有时对于获得正确的设置很敏感。通常,具有大量参数的算法需要进行最多的试验和错误才能找到良好的组合。

或者,机器学习设计器中有调整模型超参数组件:该组件的目标是确定机器学习模型的最佳超参数。该组件通过使用不同的设置组合来构建和测试多个模型。它比较所有模型的指标以获得设置组合。

虽然这是确保跨越参数空间的好方法,但训练模型所需的时间随着参数数量呈指数增长。好处是,拥有许多参数通常表明算法具有更大的灵活性。如果您能找到正确的参数设置组合,它通常可以达到非常好的精度。

特征数量

在机器学习中,特征是您尝试分析的现象的可量化变量。对于某些类型的数据,与数据点的数量相比,特征的数量可能非常大。遗传学或文本数据通常就是这种情况。

大量的特征可能会导致某些学习算法陷入困境,导致训练时间过长。支持向量机特别适合具有大量特征的场景。因此,它们已被用于从信息检索到文本和图像分类的许多应用中。支持向量机可用于分类和回归任务。

特征选择是指在给定指定输出的情况下对输入应用统计测试的过程。目标是确定哪些列更能预测输出。机器学习设计器中的基于过滤器的特征选择组件提供了多种特征选择算法可供选择。该组件包括相关方法,例如皮尔逊相关和卡方值。

您还可以使用排列特征重要性组件来计算数据集的一组特征重要性分数。然后,您可以利用这些分数来帮助您确定模型中使用的最佳特征。

下一步