Не могли бы вы рассказать мне, как создавать и выполнять модели / статистические модели машинного обучения (регрессия, дерево решений, K означает кластеризацию, наивный байес, систему показателей / линейную / логистическую регрессию и т. Д. И GBM, GLM) в приложении на основе Java / JVM. (в производстве).
У нас есть продукт на основе Java, своего рода ETL, где можно выполнять большую часть шагов по подготовке данных для машинного обучения, таких как прием данных из JDBC, файлов, HDFS, без SQL и т. Д., Объединения и агрегации и т. Д. (Которые требуются для разработки функций) и теперь мы хотим добавить возможности аналитики с помощью машинного обучения / статистического моделирования.
Прямо сейчас мы используем JPMML-оценщик для оценки моделей, созданных в формате PMML с использованием R и python (и Knime), но для этого требуются три отдельных и несвязанных шага: - 1- первый шаг для подготовки данных в нашем приложении Java / JVM и сохранение данные выборки (обучающие и тестовые) данные в файле csv или в БД, - 2- Создайте модель машинного обучения в R и python (и Knime) и экспортируйте ее в формат PMML 4.2 - 3- Импортируйте / разверните PMML в нашей Java на основе приложения и использовать оценщик JPMML для его выполнения в производственной среде.
Я уверен, что это распространенная проблема в машинном обучении, поскольку обычно в производственной среде JAVA предпочтительнее Python или R. Не могли бы вы предложить лучший подход (-ы) для создания, а также выполнения модели машинного обучения на основе python / scikit в JVM на основе применение.
Что вы думаете о более плавном выполнении шагов 2 и 3 в приложении на основе JVM без ущерба для производительности и удобства использования: -
1- Вызовите java-программу, которая внутренне вызывает сценарий python scikit (под капотом), чтобы создать модель в PMML, а затем использовать оценщик JPMML. Он будет делать вид, что пользователь работает в одном приложении на основе JVM (лучшее удобство использования). Я не уверен, каковы ограничения и недостатки использования PMML, поскольку не все функции поддерживаются в jpmml-sklearn. 2- Вызовите java-программу, которая внутренне вызывает скрипт python и выполняет создание модели, а также выполнение во внешней среде python и сериализует модель и результаты в файл / csv или в БД памяти (или в кеше, например, hazelcast) из где родительское приложение Java будет получать результаты и т. д. Я исследовал, что я не могу использовать Jython для выполнения моделей Sci-kit. 3- Могу ли я использовать Jep (встраивать Python в Java) для встраивания Cpython в JVM? Кто-нибудь пробовал для моделей sci-kit?
В качестве альтернативы мне следует изучить возможность использования библиотек машинного обучения на основе Mahout или weka - java в моем приложении на основе JVM. (Мне нужно поддерживать как платформы Windows, так и платформы, отличные от Windows)
Я также изучаю H2Oai, основанный на java. Кто-нибудь пробовал.