在 java 程序中使用 scikit-learn 分类器
Posted
技术标签:
【中文标题】在 java 程序中使用 scikit-learn 分类器【英文标题】:Using sciki- learn classifier into java program 【发布时间】:2015-09-25 14:10:40 【问题描述】:我有一个训练有素的 scikit-learn 分类器 (Python),我需要在 Java 程序中使用它。 我知道我可以按如下方式存储我的 python 分类器 (clf):
joblib.dump(clf, 'my_model.pkl', compress=_)
我也知道有 python-weka-wrapper library ,我们可以在 python 中使用 weka 分类器,但我会以相反的方式操作。我需要一种方法将我的 *.pkl 文件加载到 java 程序中,创建另一个分类器(例如使用 weka API)并使用此文件中包含的信息对其进行初始化。有没有办法做到这一点?
【问题讨论】:
【参考方案1】:一种方法是创建一个仅实现预测 API 的新 Weka 分类器。分类器提供预测 API 调用,将数据传递给间接执行的 Python 脚本,该脚本返回预测结果。见http://weka.wikispaces.com/Making+predictions和http://weka.sourceforge.net/doc.stable/weka/classifiers/evaluation/Prediction.html
【讨论】:
感谢您的回复,但我需要在 android 应用程序中使用分类器,因此无法执行 python 脚本。在***.com/questions/12738827/… 讨论中,有人建议“让 python 程序输出在拟合时学习的原始数值参数(通常作为浮点值数组)并在 java 中重新实现 predict 函数”。如何从分类器的原始数据重新实现预测功能?你有什么想法吗?以上是关于在 java 程序中使用 scikit-learn 分类器的主要内容,如果未能解决你的问题,请参考以下文章
为 TfidfVectorizer scikit-learn 使用自定义词汇的问题
如何使用 pip 包安装程序让我的 scikit-learn 库在 Windows 上工作?