生成PMML模型

具体见我的上一篇博客Python XGBoost保存模型PMML

Java调用PMML模型

Java基本的运行环境就不说了,大家如果能看到这篇文章,基本上就都掌握了Java运行环境。
首先maven导入需要的jar包

  <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.jpmml</groupId><artifactId>pmml-evaluator</artifactId><version>1.4.1</version></dependency><dependency><groupId>org.jpmml</groupId><artifactId>pmml-evaluator-extension</artifactId><version>1.4.1</version></dependency></dependencies>

导入jar包后,将下面代码复制到代码处

package sso.passport;
/*** function:java实现调用pmml文件* datatime:2020-07-10 16:09**/import org.dmg.pmml.FieldName;
import org.dmg.pmml.PMML;
import org.jpmml.evaluator.*;
import java.io.*;
import java.util.*;
import java.util.List;public class Classification {public static void main(String[] args) throws Exception {//模型路径String pathxml = System.getProperty("user.dir") + "/model/xgboost.pmml";//传入模型特征数据Map<String, Double> map = new HashMap<String, Double>();map.put("x1", 5.1);map.put("x2", 3.5);map.put("x3", 0.4);map.put("x4", 0.2);//模型预测predictLrHeart(map, pathxml);}public static void predictLrHeart(Map<String, Double> irismap, String pathxml) throws Exception {PMML pmml;File file = new File(pathxml);InputStream inputStream = new FileInputStream(file);try (InputStream is = inputStream) {pmml = org.jpmml.model.PMMLUtil.unmarshal(is);ModelEvaluatorFactory modelEvaluatorFactory = ModelEvaluatorFactory.newInstance();ModelEvaluator<?> modelEvaluator = modelEvaluatorFactory.newModelEvaluator(pmml);Evaluator evaluator = (Evaluator) modelEvaluator;List<InputField> inputFields = evaluator.getInputFields();Map<FieldName, FieldValue> argements = new LinkedHashMap<>();for (InputField inputField : inputFields) {FieldName inputFieldName = inputField.getName();Object raeValue = irismap.get(inputFieldName.getValue());FieldValue inputFieldValue = inputField.prepare(raeValue);argements.put(inputFieldName, inputFieldValue);}Map<FieldName, ?> results = evaluator.evaluate(argements);List<TargetField> targetFields = evaluator.getTargetFields();for (TargetField targetField : targetFields) {FieldName targetFieldName = targetField.getName();Object targetFieldValue = results.get(targetFieldName);
//                System.out.println("target: " + targetFieldName.getValue());System.out.println(targetFieldValue);}}}
}

本代码也是根据鸢尾花数据进行操作的,由于本人对java语言不甚了解,其中详细注释不好多说,但是一看就能明白。
大家运行如果报错的话,请看下一篇文章(可能有你需要的哦)。
(1)、如果您在阅读博客时遇到问题或者不理解的地方,可以联系我,互相交流、互相进步;
(2)、本人业余时间可以承接毕业设计和各种小项目,如系统构建、成立网站、数据挖掘、机器学习、深度学习等。有需要的加QQ:1143948594,备注“csdn项目”。

Java调用PMML模型相关推荐

  1. java调用pmml

    创建xgboost的模型,训练后保存为pmml文件,这个都没有什么问题的,网上也有很多资源,其实我这个也是抄来的(小声), import pandas from xgboost.sklearn imp ...

  2. java调用onnx模型_开源一年多的模型交换格式ONNX,已经一统框架江湖了?

    原标题:开源一年多的模型交换格式ONNX,已经一统框架江湖了? 机器之心原创 作者:思源 近日,微软亚洲研究院和华为举办了 ONNX 合作伙伴研讨会,这是 ONNX 开源社区成立以来首次在中国举办的活 ...

  3. Java调用Pytorch模型进行图像识别

    之前写了个输入是1x2向量的模型的调用文章,后来有了个需要用到图像识别的项目,因此写下此文记录一下在java中如何借助DJL调用自己写的pytorch模型进行图像识别. 官网例子 我具体模型用的什么模 ...

  4. java调用word2vec模型_word2vec使用過程(Java版)

    這里只介紹如何使用,不介紹原理(想要了解原理的看這里) 1.下載Word2Vec(Java版地址) 2.根據自己情況准備語料庫(搜狗2012全網新聞數據) 3.處理語料庫. 以搜狗2012全網新聞數據 ...

  5. python xgb模型 预测_Python 调用 PMML

    PMML(Predictive Model Markup Language全称是预测模型标记语言,好处在于PMML可以让模型部署环境脱离开发环境,实现跨平台部署,是PMML区别于其他模型部署方法最大的 ...

  6. pytorch移动端教程 Java调用libtorch

    将模型转为libtorch模型之后 剩下的就是移动端是事情了 也就是使用java调用模型因为 libtorch 支持移动端且支持java调用 其实你使用java再电脑做做测试最好 但是不得不说libt ...

  7. Java调用Pytorch实现以图搜图(附源码)

    Java调用Pytorch实现以图搜图 设计技术栈: 1.ElasticSearch环境: 2.Python运行环境(如果事先没有pytorch模型时,可以用python脚本创建模型): 1.运行效果 ...

  8. java调用保存好的神经网络模型

    1.训练模型并保存 import pandas as pd from sklearn.preprocessing import LabelEncoder import numpy as np from ...

  9. java调用pmml_用PMML实现机器学习模型的跨平台上线

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

最新文章

  1. java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组
  2. 人脸检测与对齐之MTCNN网络
  3. 图的存储结构之邻接表
  4. 介绍常用的无线通信技术
  5. Python基础教程:教你制作一个汇率换算程序
  6. java程序往微信群里发消息_通过java程序,给微信发送消息
  7. Vagrant 安装 Centos7
  8. 中国医科大学2021年9月《社区护理学》作业考核试题
  9. mysql上机心得体会_数据库原理上机心得体会
  10. 非常有意思的人体时钟
  11. 计算机一级和二级考试内容有什么不同吗?
  12. Lession08 继承和多态
  13. 白帽子讲Web安全学习之浏览器
  14. 移动通信—无线资源管理
  15. python荣联云通讯短信平台
  16. c++ STL容器 --- 栈stack
  17. 战地服务器名字不显示号码的电话软件,打电话显示虚拟号码的软件,教你打电话隐藏号码...
  18. 漫画:互联网人的十二时辰,程序员最惨!
  19. 牛客SQL 大厂面试真题 某滴打车 6套代码及解析
  20. SpringBoot整合RibbitMQ

热门文章

  1. 《程序员面试金典(第6版)》面试题 16.07. 最大数值(移位 + 整形提升)
  2. 315曝光共享单车10亿押金难退之后,免押金成行业新热点
  3. Vue路由传参小案例
  4. Docker 安装部署与基础操作
  5. 武汉php比Java好_关于Java和PHP哪个前景好的比较
  6. crypto-Matryoshka
  7. 机器翻译--词语对齐
  8. 为什么有的保险买不了?你需要知道核保这些事儿......
  9. poi获取excel2003图表以及相关属性
  10. 汉得HAP框架使用总结(一)本地搭建HAP框架