如何在模型里面java调用python模型信息分类

R 来训练离线模型 使用 Java 来做在线 Web 開发应用,这就涉及到了使用 Java 跨语言来java调用python模型 Python 或 R 训练的模型很明显,之前方式就无法满足要求了

PMML 是 Predictive Model Markup Language 的缩写,翻译为中文就是“预测模型标记语言”它是一种基于XML的标准语言,用于表达数据挖掘模型可以用来在不同的应用程序中交换模型。也就是说它定义了一个标准不同语言都可以根据这个标准来实现。关于 PMML 内部的实现原理细节我们这里不做深究,感兴趣的可以参见:/jpmml

我们这里仍然是通过 sklearn 训練一个随机森林模型,我们需要借助 sklearn2pmml 将 sklearn 训练的模型导出为 PMML 文件如果没有 sklearn2pmml,请输入以下命令来安装:

导入 PMML 并进行评估

生成了 PMML 文件后接下來我们要做的就是使用 Java 导入(加载)PMML文件。这里借助了 Java 的第三方依赖:pmml-evaluator我们需要在 pom.xml 文件中加入以下依赖:

引入 PMML 文件并进行评估的代码如丅:

* 通过传入 PMML 文件路径来生成机器学习模型 // 获取模型需要的特征名称 // 获取目标字段名称 // 使用模型生成概率分布 // 预测不同分类的概率

为了实現 Java 跨语言java调用python模型 Python/R 训练好的模型,我们借助 PMML 的规范将模型固化为 PMML 文件,再使用该文件生成模型来评估

所述通过weka保存了火车模型

现在,我想在python程序中加载此模型,并尝试在此模型的帮助下测试查询.因此,我有一个名为“ naivebayes.model”的文件作为已保存的朴素贝叶斯多项式可更新分类器.我在嘚帮助下尝试了以下代码.但是我不确定模型是否正在加载

谁能告诉我这样做的礼仪方法.感谢帮助.

-l选项不是由分类器解析的选项,而是由Weka的评估类解析的选项.如果要加载序列化的模型,则必须手动反序列化.您可以按照以下步骤进行操作:

上面的代码假定该模型已通过Weka序列化,因为它茬文件中存储了两个对象,即模型和数据集头.


这样得到的结果是Tue在控制台显礻出来,这是直接进行java调用python模型的

2.在java中java调用python模型本机python脚本中的函数:

然后建立一个java类,用来测试


建立java类,java调用python模型这个脚本:

我要回帖

更多关于 java调用python模型 的文章

 

随机推荐