感谢关注天善智能,走好数据之路↑↑↑

欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!

内容概要:

1、iris数据集简介

2、R模型部署的可能方案

3、H2o.ai框架及pojo/mojo模型部署

正式内容:

iris data set简介

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

数据集链接:http://archive.ics.uci.edu/ml/datasets/Iris

图片来源:

https://en.wikipedia.org/wiki/Iris_flower_data_set

R模型部署的可能方案

R语言模型部署的相关内容网络或者书籍上介绍的比较少,博主在一段时间摸索后对自己了解的可能方案进行如下归纳,仅供参考:

部署方式涉及的包及工具简介

Mojo/PojoH2OH2O可以将训练好的model转换为Plain Old Java Object (POJO) or a Model ObJect, Optimized (MOJO),从而很容易嵌入java环境中。仅需通过提供的h2o-genmodel.jar 生成相应的war包即可。

webAPIpumber包Turn your R code into a web API https://www.rplumber.io,而且还可以通过PM2/ Docker等方式实现服务托管

PMMLr2pmml包R package for converting R models to PMML,然后用java调用pmml进行部署

H2o.ai框架及pojo/mojo模型部署

H2o.ai为开源的AI平台(Open Source AI Platform),提供了R、python、h2oflow等作为前端的机器学习建模平台,支持的算法有:监督学习(GLM、GBM、Deep Learning、Distributed Random Forest、Naive Bayes、Stacked Ensembles),非监督学习(GLRM、K-Means、PCA)以及Word2vec模型。

H2o.ai模型的部署方式

训练分类模型(GBM)=>model输出为pojo格式 =>pojo转换为war包 =>jetty容器运行war包 =>api服务

使用h2o+R训练GBM分类器

#加载包library(h2o)#h2o环境初始化h2o.init()fr <- as.h2o(iris)my_model <- h2o.gbm(x=1:4,y=5,training_frame=fr)h2o.download_pojo(my_model,getwd())h2o.shutdown()

模型保存为:

,同时生成

,在R的工作路径下可以找到。

构建H2O预测服务器

a.准备工作:

Java 1.6、rJava、jetty-runner环境的安装,Linux/ Mac OSX系统

b.build the H2O Prediction Service Builder:

克隆steam文件git clone https://github.com/h2oai/steam

打开一个terminal窗口,进到steam/prediction-service-builder目录下

Run ./gradlew build 来构建服务

出现BUILD SUCCESSFULmessage之后,Run./gradlew jettyRunWar来运行builder service

打开浏览器,输入localhost:55000,出现模型builder界面,选择 GBM_model_R_XXX.java/h2o-genmodel.jar包(上一步生成的文件),此时会生成一个war,保存(拷贝到~/steam/prediction-service-builder目录下)以便下一步使用。

Run the Builder Service

新开一个一个terminal窗口,进到~/steam/prediction-service-builder目录下,运行:java -jar jetty-runner-9.3.9.M1.jar --port 55001 ~/GBM_model_R_1500467395689_54.war

浏览器输入http://localhost:55001,进入预测界面:

输入相关参数,点击predict,页面右侧就出现了预测结果:分属于每一个类别的概率。

同时,还可以点击

箭头按钮,弹出api网址,通过传递参数,即可得到json格式的预测结果:

参考文档:

https://github.com/h2oai/steam/tree/master/prediction-service-builder

PS:

本次只对mojo/pojo的方式进行了阐述,后期会对其他两种方式进行探讨,敬请期待。

本文作者:天善社区 数据取经团

原文链接:https://www.hellobi.com/u/61330

以莺尾花数据集为例,探讨R模型部署之道相关推荐

  1. SVM训练莺尾花数据集

    SVM训练莺尾花数据集 代码在莺尾花数据集上训练SVM,数据集由莺尾花的测量值及其相应的物种标签组成.该模型使用70%数据用于训练,然后剩余部分进行测试.其中′fit′'fit'′fit′方法在训练集 ...

  2. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  3. DL之PerceptronAdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类

    DL之Perceptron&AdalineGD:基于iris莺尾花数据集利用Perceptron感知机和AdalineGD算法实现二分类 目录 基于iris莺尾花数据集利用Perceptron ...

  4. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  5. 莺尾花数据集–贝叶斯分类(day5)

    莺尾花数据集–贝叶斯分类 Step1: 库函数导入 import warnings warnings.filterwarnings('ignore') #忽略了警告错误的输出 import numpy ...

  6. 莺尾花数据集--kNN分类

    Step1: 库函数导入 import numpy as np # 加载莺尾花数据集 from sklearn import datasets # 导入KNN分类器 from sklearn.neig ...

  7. k-近邻(应用sklearn的莺尾花数据集)

    kNN 的作用机制为 在目标周围选取最近k个点,这k个点哪种占比最大,就可以把这个目标分类到那个分类,即有分到相似属性多的类别.  该算法和回归,决策树不同之处是,回归和决策树是通过训练集确定参数,参 ...

  8. KNN实战莺尾花数据集

    0 前言 俗话说,实践才能出真理,能动手就不要逼逼,下面将利用莺尾花数据集实战KNN算法. 1 实战概述 首先,要介绍一下这个实战的整体思路:要做什么.怎么做!第一步,我们应该拿到数据集,了解数据集信 ...

  9. 机器学习系列(五) -- 逻辑回归(莺尾花数据集)

    加载数据 import numpy as np import pandas as pddata = pd.read_csv('iris.csv') # 去掉不需要的ID列 data.drop('ID' ...

最新文章

  1. 38页PPT深度解析:半导体设备产业链全景图
  2. RHEL5系统X桌面中文乱码解决办法
  3. kubernetes入门(06)kubernetes的核心概念(3)
  4. 26期20180606 chmod chown umask 隐藏权限
  5. grep命令做永久别名 显示颜色
  6. 【codevs4632】【BZOJ4326】运输计划,链剖+二分+差分
  7. 股价口碑相继探底 这家“比新东方还要成功”的机构能用AI搏出明天吗?
  8. python自动化测试难不难_我从功能测试进阶到自动化测试工程师的经验总结~|Atstudy...
  9. Tomcat7与Tomcat8的差异详细对比
  10. android音频系统分析,详细分析智能手机Android系统硬件音频架构_ Android手机_Android手机开发_Android_课课家...
  11. idea安装阿里巴巴Java开发规范插件
  12. 网站SEO过程中的死链处理
  13. 小米盒子3显示无网络连接服务器,小米盒子不显示无线网络连不上 - 卡饭网
  14. 第三届蓝桥杯Java组 黄金队列
  15. 浅谈深度学习落地问题
  16. Java技术实验三 货物进销管理系统
  17. 前端常见面试题 —— BFC是什么?
  18. 在Ubuntu18.04上安装USTC-TK2016
  19. 苹果资讯|iOS 14.2 Beta为Control Center添加了新的Shazam音乐识别功能
  20. python读取多个excel表_python 实现读取一个excel多个sheet表并合并的方法

热门文章

  1. 飞塔防火墙添加删除用户配置
  2. 可视化设计,类Excel的快速开发平台
  3. 华为数通笔记-MPLS BGP跨域
  4. 使用网站域名封装Web2App
  5. 关于苹果手机部分版本机型上传时卡住相册问题记录
  6. 『玩转Mybatis』Mybatis超强大的动态SQL大全
  7. logline: 是时候聊一聊前端的日志了
  8. 学术英语理工(第二版)Unit3课文翻译
  9. 基于多传感器数据融合的全自动泊车系统研究与应用(开题报告)
  10. SIM 卡获取运营商信息