перекрестная проверка классификатора GBT в PySpark занимает слишком много времени на 2 ГБ данных (80% обучения и 20% тестирования). Есть ли способ сократить время?

#python #pyspark #cross-validation

#python #pyspark #перекрестная проверка

Вопрос:

перекрестная проверка классификатора GBT в PySpark занимает слишком много времени на 2 ГБ данных (80% обучения и 20% тестирования). Есть ли способ сократить время? Пример кода приведен ниже:-

 dt = GBTClassifier(maxIter = 250)
pipeline_dt = Pipeline(stages=[indexer, assembler, dt])
paramGrid = ParamGridBuilder().build()  
crossval = CrossValidator(estimator=pipeline_dt, estimatorParamMaps=paramGrid,
   evaluator=BinaryClassificationEvaluator(),numFolds=6)    
   cvModel = crossval.fit(train_df)
  

Ответ №1:

По умолчанию оценка выполняется последовательным образом — следующий раунд выполняется после завершения предыдущего. Начиная с Spark 2.3, есть parallelism параметр, который определяет, сколько оценок может выполняться параллельно.

PS Если вы также добавите поиск по параметрам, я бы рекомендовал обратиться к библиотеке Hyperopt, которая улучшает поиск по гиперпараметрам.