クロス検証を高速化する方法How to Speed Up Cross-Validation

Apache SparkML モデルのハイパーパラメーターチューニングには、パラメーターグリッドのサイズに応じて非常に長い時間がかかります。Hyperparameter tuning of Apache SparkML models takes a very long time, depending on the size of the parameter grid. SparkML のクロス検証手順のパフォーマンスを向上させることで、処理速度を上げることができます。You can improve the performance of the cross-validation step in SparkML to speed things up:

  • 相互検証を含む機能の変換やモデリングの手順を実行する前に、データをキャッシュします。Cache the data before running any feature transformations or modeling steps, including cross-validation. データを複数回参照するプロセスでは、キャッシュの利点が得られます。Processes that refer to the data multiple times benefit from a cache. キャッシュを有効にするには、DataFrame に対して必ずアクションを呼び出してください。Remember to call an action on the DataFrame for the cache to take effect.
  • 並列アルゴリズムを実行するときに使用するスレッドの数を設定する CrossValidator 内の並列処理パラメーターを増やします。Increase the parallelism parameter inside the CrossValidator, which sets the number of threads to use when running parallel algorithms. 既定の設定は1です。The default setting is 1. 詳細については、クロス検証のドキュメントを参照してください。See the CrossValidator documentation for more information.
  • @No__t_0 仕様内では、このパイプラインを推定として使用しないでください。Don’t use the pipeline as the estimator inside the CrossValidator specification. Featurizers がモデルと共にチューニングされている場合は、CrossValidator 内でパイプライン全体を実行することが理にかなっています。In some cases where the featurizers are being tuned along with the model, running the whole pipeline inside the CrossValidator makes sense. ただし、これにより、すべてのパラメーターの組み合わせとフォールドに対してパイプライン全体が実行されます。However, this executes the entire pipeline for every parameter combination and fold. そのため、モデルのみをチューニングする場合は、CrossValidator 内の推定としてモデル仕様を設定します。Therefore, if only the model is being tuned, set the model specification as the estimator inside the CrossValidator.

注意

CrossValidator は、featurizers の後にパイプライン内の最後のステージとして設定できます。CrossValidator can be set as the final stage inside the pipeline after the featurizers. @No__t_0 によって識別される最適なモデルは出力です。The best model identified by the CrossValidator is output.