【H2O系列】H2O概述

2023-10-09 15:30
文章标签 概述 系列 h2o

本文主要是介绍【H2O系列】H2O概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kuan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一、下载并安装
      • 1.h2o 介绍
      • 2.架构图
      • 3.gitee 地址
      • 4.部署 demo
      • 5.Windows 启动
      • 6.访问链接
    • 二、web UI 页面介绍
      • 1.cell 介绍
      • 2.help 介绍使用
      • 3.操作按钮
      • 4.支持的文件
      • 5.总结
    • 三、实践一下模型
      • 1.导入数据
      • 2.格式转换
      • 3.数据切分
      • 4.训练模型
      • 5.预测模型
    • 四、补充
      • 1.超参数
      • 2.查看集群状态
      • 3.关闭服务
      • 4.列出所有模型
    • 五.源码理解
      • 1.处理请求
      • 2.源码解读
    • 六.分布式部署

一、下载并安装

1.h2o 介绍

H2O 概述:开源,分布式内存机器学习平台

为了社会和经济稳定,让每个人都可以使用 AI 非常重要

H2O 的核心代码是用 Java 编写的,它的 REST API 允许从外部程序或脚本访问 H2O 的所有功能。该平台包括用于 R,Python,Scala,Java,JSON 和 CoffeeScript / JavaScript 的接口,以及内置的 Web 界面 Flow

最新的版本叫做H2O-3 是 H2O 的第三个化身,并与 Hadoop 和 Spark 等大数据技术无缝协作。 H2O 可以通过更快,更好的预测建模,轻松快速地从数据中获取洞察力。

在这里插入图片描述

一个简单方便的建模工具,提供多种接入方式.java ,python 等客户端.还有一个 h2o-flow 的可视化界面

cluster是一组一起工作的 H2O 节点; 将作业提交到群集时,群集中的所有节点都会处理作业的一部分。

h2o 包括很多产品,h2o flow 是其中一款便利的机器学习,深度学习的工具,在 web UI 上操作即可,不用编写代码就能轻松实现数据的挖掘(当然这也是它的弊端,不写代码肯定功能会受到一定的限制啦)。

对于 flow 的意思就是流的意思,其实 h2o flow 的核心思想就是分成若干个 cell(细胞),然后 cell 按照先后顺序进行 flow。

2.架构图

这里写图片描述

这里写图片描述

3.gitee 地址

https://gitee.com/mirrors/h2o-dev

4.部署 demo

https://h2o-release.s3.amazonaws.com/h2o/rel-zipf/7/index.html

5.Windows 启动

cd /h2o-dev
gradlew.bat build -x test //拉取前端代码
java -jar build/h2o.jar

6.访问链接

http://localhost:54321/

二、web UI 页面介绍

1.cell 介绍

img

2.help 介绍使用

我们还可以在这里找到官方提供成操作案例是非常详细的(在 web 的右侧)

img

就会来到这个页面,发现提供了几乎我们用得上的算法实践

img

点击这个来到导入数据的页面(我们也可以看到我们进行数据挖掘的流程刚好是导入数据,建立模型,预测。发现文档顺序也是这样是),我们可以看到

img

人家给我们说了,实践用到的数据基本上都可以在这个网站上进行下载,个别不是,这不影响,因为对应的 example 会提供

img

3.操作按钮

img

img

img

img

4.支持的文件

image-20210910145516523

5.总结

  • 使用界面如下,类似于 zeppelin 的使用风格.
  • java -jar h2o.jar [各种参数] ,内置了 jetty 服务,直接用 java -jar 就可以启动.然后访问端口为 54321.
  • flow 的方式不能对数据做处理,需要将数据提前处理好.
  • 对中文的支持不是很好.显示乱码.主要是中文是双字节的,h2o 有自己的数据结构(hex).hex 是对单字节的处理.修改下源码即可.
  • h2o 可以直接读取 hdfs (hdfs://…),本地等数据.对于文件格式的支持有 text,csv,parquet 等.orc 的格式需要以 hadoop 集群的方式启动,才能使用.
  • 对 parquet 格式的支持有 timestamp int96 的问题.这个问题主要是 parquet 项目中 timestamp 使用的类型是 int96 造成的.spark,drill 等项目也会遇到这个问题.但是都各自解决掉了.参照 spark 的修改方式.也可以修改.
  • h2o 集群的部署,有三种部署方式,一种是 jvm 进程组建 standalone 集群.另外两种借助 hadoop 实现分布式集群.
  • standalone 集群方式中,没有 HA,其中一台坏掉了这个集群就坏掉了.
  • standalone 集群也会有通信问题,在不使用多长时间后这个集群会因为监听心态通信不成功而 down 掉.(这个问题没有解决),可能是 ipv6 的问题.
  • 使用方式很简单,按照 notebook 的方式引用数据,选择模型类型.很快就能看到各个模型的指标了.
  • h2o 中文社区我是没有找到.整个社区也不是很活跃.

三、实践一下模型

1.导入数据

导入数据很简单,我们可以点击:

img

img

img

img

2.格式转换

将数据转变成统一的格式(.hex)

img

img

img

3.数据切分

(这一步有就切分,没有就不用啦,因为有的时候数据是需要我们切分成 train 和 test,有的时候本来就停供了两个文件,当然我们就不用切分了)

img

img

img

4.训练模型

img

img

img

img

img

5.预测模型

img

img

img

h2o flow 对每一种算法都停供了不同的数据图表,这里演示我用的 gbm,所以图不是没那么多。

四、补充

1.超参数

h2o flow 给我们提供了便利的使用超参数,只需要想建立模型的时候勾选上既可以,比如:

img

然后进行勾选

img

我们进行添加几个数据作为超参数

img

于是我们建立模型后就多出来几个模型,这就是不同的超参数对应的模型

img

我们在建立模型的参数上看到超参数

img

2.查看集群状态

img

因为我是单机模式,所以只有一个

img

3.关闭服务

img

4.列出所有模型

img

img

五.源码理解

1.处理请求

CoreServletProvider
private static final List<ServletMeta> SERVLETS = Collections.unmodifiableList(Arrays.asList(new ServletMeta("/3/NodePersistentStorage.bin/*", NpsBinServlet.class),new ServletMeta("/3/PostFile.bin", PostFileServlet.class),new ServletMeta("/3/PostFile", PostFileServlet.class),new ServletMeta("/3/DownloadDataset", DatasetServlet.class),new ServletMeta("/3/DownloadDataset.bin", DatasetServlet.class),new ServletMeta("/3/PutKey.bin", PutKeyServlet.class),new ServletMeta("/3/PutKey", PutKeyServlet.class),new ServletMeta("/", RequestServer.class)));

2.源码解读

这里写图片描述

六.分布式部署

部署方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tUPVj1qm-1637328322130)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20210908105746844.png)]

  • xgb xgboost 部署
  • k8s
  • hadoop
  • docker
  • EC2 aws 服务器部署
  • Dockerfile.dev

觉得有用的话点个赞 👍🏻 呗。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

这篇关于【H2O系列】H2O概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/173832

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(