大规模使用数据框分析

编辑

数据框分析作业有许多配置选项。其中一些选项可能会对训练模型所花费的时间产生重大影响。训练时间取决于各种因素,例如数据的统计特征、提供的超参数数量、分析中包含的特征数量、您使用的硬件等等。本指南包含一系列注意事项,以帮助您规划大规模训练数据框分析模型并优化训练时间。

在本指南中,您将学习如何

  • 了解配置选项对训练数据框分析作业模型所花费时间的影响。

前提条件

本指南假定您已经熟悉

重要的是要注意,训练时间、模型的复杂性、数据大小以及分析结果的质量之间存在相关性。然而,质量的提高与训练数据的数量并非线性关系;对于非常大的源数据,可能需要花费数小时来训练模型,而质量的提升却很小。当您大规模使用数据框分析时,您需要决定您的用例可以接受哪种质量的结果。当您确定了接受标准后,您就可以更好地了解可以在实现目标的同时进行权衡的因素。

以下建议不是按顺序排列的——这些数字只是为了帮助在列表项之间导航;您可以按任何顺序对其中一个或多个项采取行动。

0. 从小处着手并快速迭代

编辑

训练是一个迭代过程。尝试不同的设置和配置选项(包括但不限于超参数和特征重要性),然后评估结果并决定它们是否足够好或者是否需要进一步的实验。

每次迭代都需要时间,因此从少量数据开始非常有用,这样您可以快速迭代,然后从这里开始构建。

1. 设置较小的训练百分比

编辑

(此步骤仅适用于回归和分类作业。)

用于训练模型的文档数量会对训练时间产生影响。较高的训练百分比意味着更长的训练时间。

考虑从较小的训练数据百分比开始,以便您可以更快地完成迭代。一旦您对配置感到满意,请增加训练百分比。根据经验,如果您有一个包含 100,000 多个数据点的数据集,请从 5 或 10 的训练百分比开始。

2. 禁用特征重要性计算

编辑

(此步骤仅适用于回归和分类作业。)

特征重要性指示哪些字段对分析生成的每个预测产生最大影响。根据数据集的大小,计算特征重要性可能需要很长时间。

为了缩短运行时间,如果您不需要特征重要性,请考虑禁用某些或所有迭代的特征重要性。

3. 优化包含字段的数量

编辑

您可以通过仅分析相关字段来加快运行速度。

默认情况下,分析类型支持的所有字段都包含在分析中。一般来说,分析的字段越多,需要的资源和训练时间就越长,包括自动特征选择所花费的时间。为了减少训练时间,请考虑将分析范围限制为有助于预测的相关字段。您可以通过排除不相关的字段或包含相关的字段来实现这一点。

特征重要性可以帮助您确定对预测贡献最大的字段。然而,由于计算特征重要性会增加训练时间,因此这是一个可以在迭代训练过程中评估的权衡。

4. 增加最大线程数

编辑

您可以设置分析期间使用的最大线程数。 max_num_threads 的默认值为 1。根据数据的特征,使用更多线程可能会减少训练时间,但会增加 CPU 使用率。请注意,尝试使用比 CPU 核心数更多的线程没有任何优势。

超参数优化和计算特征重要性从增加的线程数中获益最大。这可以在 coarse_parameter_searchfine_tuning_parameterswriting_results 阶段中看到。其余阶段不受增加的线程数的影响。

要了解有关各个阶段的更多信息,请参阅数据框分析作业的工作原理

如果您的机器学习节点正在运行并发的异常检测或数据框分析作业,那么您可能希望将最大线程数设置为较低的数字(例如默认值 1),以防止作业争夺资源。

5. 优化源索引的大小

编辑

即使训练百分比很低,重新索引源索引(这是作业创建过程中的强制步骤)也可能需要很长时间。在重新索引期间,源索引或索引中的文档将复制到目标索引,因此您拥有了分析数据的静态副本。

如果您的数据量很大,并且您不需要在整个源索引或索引上进行测试和训练,那么可以通过使用源数据的子集来降低重新索引的成本。这可以通过在数据框分析作业配置中为源索引定义过滤器,或者手动重新索引此数据的子集以用作备用源索引来实现。

6. 配置超参数

编辑

(此步骤仅适用于回归和分类作业。)

超参数优化是模型训练期间最复杂的数学过程,可能需要很长时间。

默认情况下,会自动选择优化的超参数值。如果完全了解超参数的目的,并且对任何或所有超参数都有合理的值,则可以通过手动配置超参数来减少此步骤所花费的时间。这减少了计算负载,从而减少了训练时间。