在看H2O,把阅读官方booklet和API了解到的一些东西随手记了下来,以为备忘,遂成此小文。
概述
- H2O 是一款针对智能应用的机器学习和深度学习的开源程序集。PayPal/思科/Nielsen等等也是其使用者。
- 它丧心病狂地提供了包括R / Python / Scala / Java / JavaScript等在内的诸多语言接口
- 支持单机和分布式运行。
- 算法包括:广义线性模型,朴素贝叶斯,PCA,K均值聚类等。
下载
- 安装前需要先行安装JAVA。
- h2o可以直接通过CRAN下载得到,但CRAN中的版本有时滞后,且在实际操作时速度慢,可以直接在官网下载安装包.
- 既可以通过网页与H2O交互 也可以通过包括R在内的各种语言接口与H2O交互。
初始化
library(h2o)
h2o.init(ip = 'localhost', port = 54321, nthreads = -1, max_men_size = '4g')
- 此ip和port连接了本机的服务器,不填默认也为此。
- nthread默认值-2,表示用2个CPU核心,-1表示主机上有多少用多少,正数表示一个特定数。
- max_mem_size定义给h2o的内存空间,一般4倍的数据大小能够获得最好的运行效果。它的值必须是1024的整数倍,最小2M,默认值是1g(32bit JAVA版本),1/4的内存大小(64bit JAVA版本).
- 对于分布式的系统,可以用h2o.clusterInfo()来查看集群信息。
备数据
- H2O是个独立的程序,R接口只是H2O 的一层皮,当数据被传给H2O以后,所有的数据操作都是在H2O上进行的。
- 用H2O可以处理数以千计的factor levels。
H2O:"R,你用table秀一下这些信息"
R:"臣妾做不到啊……"
//话说我得有多无聊,大晚上编这种段子。。。
- 圈子不同,偏要强融
as.data.frame()
H2O->Ras.h2o()
R->H2O- 一定要记得确保转换的目标具有足够大的内存空间。
- 可以用
str.H2OFrame()
查看下其中元素信息确保转换正确。
模型
监督学习
- 广义线性模型