如何加快交叉验证的速度

对 Apache SparkML 模型进行超参数优化会花费很长时间,具体取决于参数网格的大小。 可以提高 SparkML 中交叉验证步骤的性能,以加快处理速度:

  • 在运行任何特征转换或建模步骤(包括交叉验证)之前缓存数据。 多次引用数据的进程将受益于缓存。 请记住对 DataFrame 调用一个操作以使缓存生效。
  • 加大 CrossValidator 中的 parallelism 参数,该参数设置运行并行算法时要使用的线程数。 默认设置为 1。 有关详细信息,请参阅 CrossValidator 文档
  • 请勿将管道用作 CrossValidator 规范中的估算器。 在某些情况下,特征化器将与模型一起优化,此时在 CrossValidator 中运行整个管道是有意义的。 但是,这会对每个参数组合和折叠执行整个管道。 因此,如果只优化模型,请将模型规范设置为 CrossValidator 中的估算器。

注意

可以将 CrossValidator 设置为特征化器后的管道内部的最后阶段。 CrossValidator 确定的最佳模型是输出。