簡體   English   中英

如何在基於Java / JVM的應用程序中擬合和評分機器學習模型

[英]how to fit and score a machine learning models in Java/JVM based application

您能否指導我如何在基於Java / JVM的應用程序中創建和執行機器學習模型/統計模型(回歸,決策樹,K均值聚類,朴素貝葉斯,記分卡/線性/邏輯回歸等以及GBM,GLM) (在制作中)。

我們有一種基於Java的ETL產品,其中可以完成大部分數據的機器學習准備步驟,例如從JDBC,文件,HDFS,無SQL等數據中獲取數據,連接和聚合等(這是特征工程所需的)現在我們想要使用機器學習/統計建模來添加Analytics功能。

現在,我們使用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-調用一個java程序,它在內部調用python scikit腳本 (在引擎蓋下) 在PMML中創建一個模型 ,然后使用JPMML評估器。 它會向用戶假裝他在一個基於JVM的應用程序中(更好的可用性)。 我不確定使用PMML有什么限制和缺點,因為jpmml-sklearn不支持所有功能。 2-調用一個java程序,它在內部調用python腳本並在外部python環境中執行模型創建和執行,並將模型和結果序列化為file / csv或內存DB(或緩存,如hazelcast)父Java應用程序將獲取結果等。我研究了我不能使用Jython來執行Sci-kit模型。 3-我可以使用Jep(在Java中嵌入Python)在CVM中嵌入Cpython嗎? 是否有人嘗試過sci-kit模型?

或者,我應該探索在我的基於JVM的應用程序中使用Mahout或weka - 基於java的機器學習庫。 (我需要支持windows和非windows平台)

我也在探索基於java的H2Oai。 有人試過嗎

我使用IntelliJ IDEA和python插件。 這樣我在同一個項目中同時擁有java和python代碼。 數據在數據庫中; 連接始終是可見的和可訪問的,與編輯器中當前是否有.java或.py文件無關。 在配置列表中,您可以擁有Python腳本,Java應用程序,maven目標等。因此,我認為您不必將Python和Java代碼混合在一起(通過使用Java調用Python腳本)。 這完全沒必要。

我的工作流程是(IntelliJ IDEA中的所有內容):1。准備數據(通常是SQL)2。運行python腳本,它將轉換器管道應用於從某個數據庫表構造的pandas數據幀並輸出PMML。 3.在java應用程序中使用scikit-learn模型。

如果您有一個帶有HDFS后端的ETL,我建議在集群上部署Spark並使用Spark的MLib機器學習算法。 它們支持您上面提到的方法。

您是否介意給出一些關於您計划使用的數據大小(行,列,類型)的上下文? Java不是我推薦的ML的goto語言,但Scala編譯為JVM字節碼,並且具有與java類似的語法(除了具有Java API)。

如果您正在制作概念驗證,那么Java就可以了,但如果您計划使用大數據,那么它實際上並不能很好地擴展。

我找到了解決問題的好方法。 我正在使用Java開發的H2O.ai ,用於使用開源的可擴展機器學習。 它提供Java(Restful API),Python,R和Scala的API。 它具有最佳的分類,回歸,聚類等算法,並且如果有人擁有Spark集群,也可以與Apache Hadoop和Spark(Sparkling-water)無縫集成。 它還提供了一種基於多層前饋人工神經網絡的深度學習算法。 我使用Java綁定API / Rest API,有時使用低級H2o API(用於h2o 3節點集群管理)。

我遇到了另一種基於java的替代方案,稱為微笑 - 統計機器智能和學習引擎,它提供回歸,分類,聚類,關聯規則挖掘,特征選擇等。有沒有人對這些或類似的基於Java的ML庫有更多的反饋?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM