如何从Java调用scikit-learn分类器?

我有一个使用Python的scikit-

learn训练的分类器。如何使用Java程序中的分类器?我可以使用Jython吗?有什么方法可以在Python中保存分类器并在Java中加载分类器?还有其他使用方式吗?

回答:

您不能使用jython,因为scikit-

learn非常依赖numpy和scipy,它们具有许多已编译的C和Fortran扩展,因此无法在jython中工作。

在Java环境中使用scikit-learn的最简单方法是:

  • 使用microframework如暴露分类作为HTTP /服务的Json,例如烧瓶或瓶子或檐口和使用HTTP客户端库从Java调用它

  • 使用python编写一个命令行包装器应用程序,该程序使用诸如CSV或JSON(或某些较低级别的二进制表示形式)之类的格式读取标准输入数据并在标准输出输出预测,并例如使用Apache Commons Exec从Java调用python程序。

  • 使python程序输出在拟合时学习的原始数值参数(通常作为浮点值的数组),并在Java中重新实现预测函数(对于线性预测模型,预测通常只是阈值点积,这通常很容易实现) 。

如果您还需要用Java重新实现特征提取,那么最后一种方法将需要做更多的工作。

最后,您可以使用Java库(例如Weka或Mahout)来实现所需的算法,而不必尝试使用Java的scikit-learn。

以上是 如何从Java调用scikit-learn分类器? 的全部内容, 来源链接: utcz.com/qa/416775.html

回到顶部