Beschleunigen der KreuzvalidierungHow to speed up cross-validation

Die hyperparameteroptimierung von Apache sparkml-Modellen dauert in Abhängigkeit von der Größe des Parameter Rasters sehr lange.Hyperparameter tuning of Apache SparkML models takes a very long time, depending on the size of the parameter grid. Sie können die Leistung des Schrittes der Kreuz Validierung in sparkml verbessern, um die Dinge zu beschleunigen:You can improve the performance of the cross-validation step in SparkML to speed things up:

  • Zwischenspeichern der Daten vor dem Ausführen von featuretransformationen oder Modellierungs Schritten, einschließlich der Kreuz Validierung.Cache the data before running any feature transformations or modeling steps, including cross-validation. Prozesse, die mehrmals auf die Daten verweisen, profitieren von einem Cache.Processes that refer to the data multiple times benefit from a cache. Denken Sie daran, eine Aktion für den aufzurufen DataFrame , damit der Cache wirksam wird.Remember to call an action on the DataFrame for the cache to take effect.
  • Erhöhen Sie den Parallelität-Parameter in der CrossValidator , wodurch die Anzahl der Threads festgelegt wird, die beim Ausführen paralleler Algorithmen verwendet werden sollen.Increase the parallelism parameter inside the CrossValidator, which sets the number of threads to use when running parallel algorithms. Die Standardeinstellung ist 1.The default setting is 1. Weitere Informationen finden Sie in der crossvalidator-Dokumentation .See the CrossValidator documentation for more information.
  • Verwenden Sie die Pipeline nicht als Schätzung innerhalb der CrossValidator Spezifikation.Don’t use the pipeline as the estimator inside the CrossValidator specification. In einigen Fällen, in denen die featurezer zusammen mit dem Modell optimiert werden, ist die Ausführung der gesamten Pipeline in CrossValidator sinnvoll.In some cases where the featurizers are being tuned along with the model, running the whole pipeline inside the CrossValidator makes sense. Dadurch wird jedoch die gesamte Pipeline für jede Kombination aus Parameter und Fold ausgeführt.However, this executes the entire pipeline for every parameter combination and fold. Wenn nur das Modell optimiert wird, legen Sie die Modell Spezifikation daher als Schätzwert im fest CrossValidator .Therefore, if only the model is being tuned, set the model specification as the estimator inside the CrossValidator.

Hinweis

CrossValidatorkann als letzte Phase innerhalb der Pipeline nach den featurezern festgelegt werden.CrossValidator can be set as the final stage inside the pipeline after the featurizers. Das beste Modell, das vom identifiziert CrossValidator wird, ist Output.The best model identified by the CrossValidator is output.