Как загрузить модель дерева решений без Spark или PMML в Java [duplicate]

Если вы хотите заменить одну точку с запятой:

for i in range(0,len(line)):
 if (line[i]==";"):
     line = line[:i] + ":" + line[i+1:]

, Havent проверил ее, хотя.

17
задан eliasah 16 May 2017 в 13:22
поделиться

3 ответа

С одной стороны, модель машинного обучения, построенная с использованием искры, не может быть использована так, как вы используете в Azure ML или Amazon ML традиционным способом.

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

С другой стороны, вы можете использовать модель тремя способами:

  • Обучение на лету внутри приложения, а затем применение предсказания. Это можно сделать в искровом приложении или ноутбуке.
  • Постройте модель и сохраните ее, если она реализует MLWriter, затем загружает приложение или ноутбук и запускает его против ваших данных.
  • Постройте модель с помощью Spark и экспортируйте ее в формат PMML с помощью jpmml-spark . PMML позволяет различным инструментам сбора статистических данных и данных работать на одном языке. Таким образом, интеллектуальное решение может быть легко перемещено между инструментами и приложениями без необходимости в пользовательском кодировании. например, от Spark ML до R.

Это три возможных способа.

Конечно, вы можете подумать о архитектуре, в которой у вас есть служба RESTful, за которой вы можете создавать с помощью spark-jobserver на пример для обучения и развертывания, но для этого требуется определенная разработка. Это не готовое решение.

Вы также можете использовать такие проекты, как Oryx 2, чтобы создать свою полную лямбда-архитектуру для обучения, развертывания и обслуживания модели.

К сожалению, описание каждого из вышеупомянутых решений довольно широкое и не входит в сферу действия SO.

12
ответ дан eliasah 18 August 2018 в 08:02
поделиться
  • 1
    Я бы предоставил возможность искробезопасности. Вы можете полностью кэшировать модель (полный искровой трубопровод) и быстро отвечать на запросы, связанные с ml, такие как классификации или запросы. Он также дает вам возможность кэшировать агрегированные таблицы и быстро возвращать json, содержащие эти данные или их части для визуализации или дальнейшей обработки в другом приложении. – Elmar Macek 30 November 2016 в 10:23

Один из вариантов - использовать MLeap для работы в Spark PipelineModel онлайн с без зависимостей от Spark / SparkContext . Не нужно использовать SparkContext, так как он потеряет время подсчета для одной записи от ~ 100 мс до однозначных микросекунд.

Чтобы использовать ее, вы должны:

  • Сериализовать свою модель Spark с помощью утилит MLeap
  • Загрузить модель в MLeap (не требует SparkContext или любых зависимостей Spark)
  • Создайте свою входную запись в JSON (не DataFrame)
  • Оцените свою запись с помощью MLeap

MLeap хорошо интегрирован со всеми этапами Pipeline Stages, доступными в Spark MLlib (за исключением LDA на момент написания этой статьи ). Однако, если вы пользуетесь пользовательскими оценщиками / трансформерами, это может немного усложниться.

Взгляните на FAQ для MLeap для получения дополнительной информации о пользовательских трансформаторах / оценках, и интеграция.

3
ответ дан Gevorg 18 August 2018 в 08:02
поделиться

Вы сравниваете две довольно разные вещи. Apache Spark - это вычислительный механизм, в то время как упомянутые вами решения Amazon и Microsoft предлагают услуги. Эти сервисы могут также иметь Spark с MLlib за сценой.

Количество компаний, таких как Domino Data Lab, Cloudera или IBM, предлагает продукты, которые можно развернуть на своем собственном кластере Spark и легко создавать сервис вокруг ваших моделей (с разной степенью гибкости).

Естественно, вы создаете сервис самостоятельно с помощью различных инструментов с открытым исходным кодом. Что конкретно? Все зависит от того, что вам нужно. Как пользователь должен взаимодействовать с моделью? Должен ли быть какой-то пользовательский интерфейс или шутить REST API? Вам нужно изменить некоторые параметры на модели или самой модели? Являются ли рабочие места более частыми или реальными? Естественно, вы можете создать решение «все-в-одном», но это будет огромным усилием.

. Моя личная рекомендация заключалась бы в том, чтобы воспользоваться, если можно, одним из доступных сервисов Amazon, Google , Microsoft или что угодно. Нужно ли размещать на месте? Проверьте Domino Data Lab, их продукт зрелый и позволяет легко работать с моделями (от здания до развертывания). Cloudera больше ориентирован на кластерные вычисления (включая Spark), но это займет некоторое время, прежде чем у них что-то созреет.

[EDIT] Я бы рекомендовал посмотреть Apache PredictionIO , сервер обучения с открытым исходным кодом - потрясающий проект с потенциалом лота.

4
ответ дан Lukasz Tracewski 18 August 2018 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: