#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, которая улучшает поиск по гиперпараметрам.