您能否指导我如何在基于 Java/JVM 的应用程序中创建和执行机器学习模型/统计模型(回归、决策树、K 均值聚类、朴素贝叶斯、记分卡/线性/逻辑回归等以及 GBM、GLM) (生产中)。
我们有一种 ETL 类型的基于 Java 的产品,可以在其中完成机器学习的大部分数据准备步骤,例如从 JDBC、文件、HDFS、No SQL 等数据摄取、连接和聚合等(特征工程所需的)现在我们想使用机器学习/统计建模添加分析功能。
现在,我们正在使用 JPMML-评估器对使用 R 和 python(和 Knime)以 PMML 格式创建的模型进行评分,但它需要三个独立且不相关的步骤:- 1- 在我们的 Java/JVM 应用程序中准备数据并保存的第一步csv 文件或 DB 中的采样数据(训练和测试)数据,- 2- 在 R 和 python(和 Knime)中创建机器学习模型并将其导出为 PMML 4.2 格式 - 3- 在我们的 Java 中导入/部署 PMML基于应用程序并使用 JPMML 评估器在生产中执行它。
我确信这是机器学习中的一个常见问题,因为通常在生产中 JAVA 优于 Python 或 R。您能否建议在基于 JVM 中创建和执行基于 python/scikit 的机器学习模型的更好方法是什么?应用。
您认为如何在基于 JVM 的应用程序中更无缝地实现第 2 步和第 3 步,而不影响性能和可用性:-
1- 调用内部调用python scikit 脚本(在后台)的 java 程序以在 PMML 中创建模型然后使用 JPMML 评估器。它会向用户假装他在一个基于 JVM 的应用程序中(更好的可用性)。我不确定使用 PMML 的限制和缺点是什么,因为 jpmml-sklearn 并不支持所有功能。2-调用内部调用python脚本的java程序并在外部python环境中创建模型和执行并将模型和结果序列化到文件/csv或内存数据库(或缓存,如hazelcast)中父 Java 应用程序将在哪里获取结果等。我研究了我不能使用 Jython 来执行 Sci-kit 模型。3-我可以使用 Jep(在 Java 中嵌入 Python)在 JVM 中嵌入 Cpython 吗?有人尝试过用于 sci-kit 模型吗?
或者,我应该探索在我的基于 JVM 的应用程序中使用 Mahout 或 weka - 基于 java 的机器学习库。(我需要同时支持windows和非windows平台)
我也在探索基于 Java 的 H2Oai。有没有人试过。