如何從Java呼叫scikit學習分類器?
我有一個我使用Python的scikit學習訓練的分類器.如何使用Java程式中的分類器?我可以使用Jython嗎有沒有辦法在Python中儲存分類器並將其載入到Java中?有沒有其他的方法來使用它?
你不能使用jython作為scikit – 學習很大程度上依賴於具有許多編譯C和Fortran副檔名的numpy和scipy,因此在jython中無法工作.
在java環境中使用scikit學習的最簡單的方法是:
>將分類器公開為HTTP / Json服務,例如使用諸如ofollow,noindex" target="_blank">flask 或bottle 或cornice 之類的微框架,並使用HTTP客戶端庫從java呼叫它
>在python中編寫一個命令列包裝應用程式,該應用程式讀取stdin上的資料,並使用CSV或JSON(或一些較低級別的二進位制表示)等格式輸出stdout上的預測,並從java呼叫python程式,例如使用Apache Commons Exec .
>使python程式輸出在適合時間學習的原始數值引數(通常作為浮點值的陣列),並在java中重新實現預測函式(對於預測線性模型,這通常很容易,其中預測通常只是閾值點積).
如果您需要在Java中重新實現特徵提取,最後一種方法將會有更多的工作.
最後,您可以使用諸如Weka或Mahout之類的Java庫來實現所需的演算法,而不是使用Java中的scikit學習.
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/12738827/how-can-i-call-scikit-learn-classifiers-from-java