我有一个我使用Python的scikit学习训练的分类器.如何使用Java程序中的分类器?我可以使用Jython吗有没有办法在Python中保存分类器并将其加载到Java中?有没有其他的方法来使用它?
你不能使用jython作为scikit – 学习很大程度上依赖于具有许多编译C和Fortran扩展名的numpy和scipy,因此在jython中无法工作.
在java环境中使用scikit学习的最简单的方法是:
>将分类器公开为HTTP / Json服务,例如使用诸如 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