当前位置: 首页 > 面试题库 >

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

沈国安
2023-03-14
问题内容

我有一个使用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。



 类似资料:
  • K-means k是一个超参数,表示要聚类成多少类。K-means计算方法是重复移动类的重心,以实现成本函数最小化,成本函数为: 其中μk是第k类的重心位置 试验 构造一些样本用户试验,如下: # coding:utf-8 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) import matplotlib.pyplot as pl

  • scikit-learn 是一个 Python 的机器学习项目。是一个简单高效的数据挖掘和数据分析工具。基于 NumPy、SciPy 和 matplotlib 构建。 Installation 依赖 scikit-learn 要求: Python (>= 2.7 or >= 3.3) NumPy (>= 1.8.2) SciPy (>= 0.13.3) 运行示例需要 Matplotlib >= 1

  • 本文向大家介绍scikit-learn 使用交叉验证训练分类器,包括了scikit-learn 使用交叉验证训练分类器的使用技巧和注意事项,需要的朋友参考一下 示例 使用虹膜数据集: 数据分为训练集和测试集。要做到这一点,我们使用train_test_split效用函数来分割双方X和y(数据和目标矢量)用随机选择train_size=0.75(训练集包含数据的75%)。 训练数据集被输入到k最近邻

  • 我如何将与此等价的东西传递给scikit-learn分类器,如随机森林或SVM分类器?

  • Introduction to Machine Learning with scikit-learn This video series will teach you how to solve Machine Learning problems using Python's popular scikit-learn library. There are 10 video tutorials tot

  • 问题内容: 我正在使用具有9个样本和大约7000个属性的随机森林模型。在这些样本中,我的分类器可以识别3个类别。 我知道这远非理想条件,但我正在尝试找出哪些属性在特征预测中最重要。哪些参数最适合优化功能重要性? 我尝试了不同的方法,发现“重要特征”(即数组中的非零值)的数量急剧增加。 我已经阅读了文档,但是如果有任何经验,我想知道最适合调整哪些参数,并简要说明原因。 问题答案: 根据我的经验,sk