Обучение Python и развертывание в Spark - PullRequest
0 голосов
/ 21 октября 2019

Можно ли обучить модель XGboost на Python и использовать сохраненную модель для прогнозирования в искровой среде? То есть я хочу иметь возможность тренировать модель XGboost, используя sklearn, сохранить модель. Загрузите сохраненную модель в искру и прогнозируйте в искре. Возможно ли это?

edit: Спасибо всем за ответ, но мой вопрос действительно такой. Я вижу следующие проблемы, когда я тренируюсь и предсказываю различные привязки XGBoost.

  1. Во время обучения я буду использовать XGBoost в python, а при прогнозировании я буду использовать XGBoost в mllib.

  2. Мне нужно загрузить сохраненную модель из Python XGBoost (например, файл XGBoost.model) для прогнозирования в искре, будет ли эта модель совместима для использования с функцией прогнозирования в mllib

  3. Форматы ввода данных XGBoost в python и XGBoost в spark mllib различны. Spark принимает векторный формат, но с помощью Python мы можем передавать данные как таковые. Итак, как мне кормить данные, когда я пытаюсь предсказать в искре с моделью, обученной на Python. Можно ли подавать данные без векторного ассемблера? Будет ли функция прогнозирования XGboost в spark mllib принимать входные данные, не собранные вектором?

Ответы [ 3 ]

0 голосов
/ 21 октября 2019

вы можете

  1. загружать данные / обрабатывать данные с помощью pyspark sql,
  2. , а затем переносить данные в локальный драйвер с помощью collect / topandas (узкое место в производительности)
  3. затемОбучите xgboost локальному драйверу
  4. , затем подготовьте тестовые данные как RDD,
  5. передайте модель xgboost на каждый раздел RDD, а затем прогнозируйте данные параллельно

Все это можетбыть в одном сценарии, вы отправляете искры, но чтобы сделать вещи более краткими, я рекомендую разделить поезд / тестирование на два сценария.

Поскольку шаги 2,3 выполняются на уровне драйвера, не используя кластерный ресурс, твой работник ничего не делает

0 голосов
/ 31 октября 2019

Вот аналогичная реализация того, что вы ищете. У меня есть сообщение, объясняющее детали, так как я пытаюсь устранить ошибки, описанные в этом сообщении, чтобы заставить код в записной книжке работать.

XGBoost Spark One Model на одного работника Интеграция

Идея состоит в том, чтобы обучаться с использованием xgboost, а затем с помощью spark управлять каждой моделью для работы на spark worker, и затем прогнозы могут применяться с помощью xgboost predict_proba() или spark ml predict().

0 голосов
/ 21 октября 2019

Вы можете запустить скрипт Python на спарк с помощью команды spark-submit, чтобы скомпилировать ваш код Python на спарк, а затем вы можете предсказать значение в спарк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...