H2O操作记录 mnist深度学习

今天详细研究一下h2o flow的操作流程,分析其中的关键步骤及界面要素,为后续改造做准备。

首先h2o flow有点类似于jupyter,是一个文本和代码混合的编辑器,这个思想目前在我们系统中应该不会去考虑!

2018-05-07-15-29-30.jpg

导入文件(Import Files)

h2o貌似支持导入多种文件格式,比如.gz.zip.csv.txt等等,也可以直接导入一个文件目录。

我测试的时候,是直接使用.gz文件,里面其实是一个mnistcsv文件。

系统在导入一个文件之后,会为这个文件生成另外一个后缀为.hex的文件,后续解析文件以及建模都依赖于此。

解析文件(Parse File)

前面的导入文件只是第一步,而这一步解析文件很关键,一般情况下,h2o很智能,它知道怎么去解析文件,但是它也提供了解析文件的各种参数,方便用户选择。

2018-05-07-15-46-46.jpg

下面描述一下这些参数:

  • ID:就是之前说的,系统会为导入的文件起一个后缀为.hex的名字,这个名字在这里可以修改。

  • Parser:这个解析器,我的理解就是对应h2o支持的几种文件格式

    • AUTO:由h2o来自动解析
    • ARFF
    • XLS
    • XLSX
    • CSV
    • SVMLight
    • ORC
    • AVRO
    • PARQUET
  • Separator:应该指的就是文件内列分隔的标识,一般像csv文件都是以,分隔的。下面截几个图示意一下,h2o里支持的分隔符非常多。

    2018-05-07-16-04-31.jpg

    2018-05-07-16-05-34.jpg

  • Column Headers:列头的解析规则,有的文件会在第一行标明列名信息,以有则不会,所以需要设置一下。h2o提供了参数选择,根据实际情况选择即可。

  • Options:其它一些参数配置,Enable single quotes as a field quotation character表示启用单引号表示引用字符。Delete on done应该是指解析完之后就删除导入数据,h2o建议是选中这个的。

  • EDIT COLUMN NAMES AND TYPES:这个是非常重要的设置,需要告诉解析器文件中每一列的列名以及列的数据类型。同样一般情况下,如果没有列名的话,h2o会自增设置,数据类型h2o也会自动判断,但是自动判断不见得都是正确的,最后用户还是需要检查一下,并将一些重要的列设置正确。比如对于分类问题,样本的标签值一般都是数字,但是用户需要在这里将其设置为枚举,即Enum

h2o在解析文件时,会出来如下一个界面,显示解析的进度:

2018-05-07-16-22-00.jpg

h2o中,基本每一个操作都会被当成一个Job

点击View之后:

2018-05-07-16-22-57.jpg

可以看到数据集的详情,并且用户可以将标签列设置为枚举,当标签列设置为枚举之后,h2o会出现针对分类标签的统计图表:

2018-05-07-16-25-14.jpg

上图中的inspect中文含义是“检查”,可以理解为数据可视化,用户可以配置不同的参数,以查看到该标签列的数据分页图表。

2018-05-07-16-35-55.jpg

2018-05-07-16-36-24.jpg

2018-05-07-16-36-49.jpg

impute有点像是纠错的意思,用户可以修改某一列具体取值的计算规则:

2018-05-07-16-45-28.jpg

Column-C785+Method-Mean+Group By C1 C2,我个人理解,意思就是"把C785这一列的值,修改为依据C1和C2,取它们的平均值(Mean)"。

Method有三种取值:Mean(平均值),Median(中值),Mode(取模)

构建模型(Build Model)

第一步:选择模型算法

2018-05-07-16-59-21.jpg

2018-05-07-16-59-36.jpg

由于我现在做的是mnist示例,所以我选择Deep Learning,当选择了深度学习算法之后,会发现界面增加了大量的参数配置:

2018-05-07-17-02-48.jpg

2018-05-07-17-04-18.jpg

2018-05-07-17-04-45.jpg

2018-05-07-17-05-02.jpg

2018-05-07-17-05-36.jpg

下面按照官方说明,给出一些重要的参数说明:

2018-05-07-17-23-23.jpg

上图主要是设置训练数据集以及测试数据集,还有最终的分类列,即上图中的response_column

2018-05-07-17-24-37.jpg
  • activation:设置激活函数

  • hidden:设置隐藏层的维度及神经元个数,这里的128,64,就表示设置了两个隐藏层,第一层有128个神经元,第二层有64个神经元

  • epochs:这个应该都能理解,就是训练的轮数

  • variable_importance:变量重要性,这个我不懂,不乱说

2018-05-07-17-28-37.jpg
  • adaptive_rate:自适应学习率,如果要手动设置的话,需要取消选中状态

  • input_dropout_ratio:这是一个防止过拟合的参数,这是设置输入层的比率,因为输入层只有一个,所以这里设置一个就行了

  • hidden_dropout_ratios:同上,这是设置隐藏层的比率,因为我们刚才设置了隐藏层是两个,所以这里以逗号分隔

  • l1与l2:这也是防止过拟合的参数,具体我不懂

2018-05-07-17-33-39.jpg

2018-05-07-17-34-02.jpg

这四个参数是设置early stop的参数,具体含义我不了解

2018-05-07-17-35-19.jpg

这些参数是设置随机因子学习率衰变率动量因子等,具体看解释吧。

正式构建模型

点击Build Model

2018-05-07-17-37-36.jpg

2018-05-07-19-12-25.jpg

点击上图中的超链接:

2018-05-07-17-42-27.jpg

可以看到h2o为模型提供了大量的可视化数据展示,以及功能按钮。上图展示了对一个模型可以进行的操作:

  • Refresh:刷新

  • Predict:预测

  • Download POJO:这个应该是下载模型对象,具体下载下来,会发现是一个Java文件,文件有3M多,大概10万多行。

  • Download Model Deployment Package(MOJO):一个压缩包,我也不知道是什么东东。

  • Export:将模型导出到指定路径下。

  • Inspect:具体不知道。

2018-05-07-18-32-06.jpg
  • Delete:删除模型

  • Download Gen Model:一个可执行的jar包。

下面仔细看看具体的模型结果展示信息:

第一个是模型参数信息,即前面在构建模型前,所设置的自定义参数:

2018-05-07-18-09-47.jpg

下面这个不知道是什么意思,好像是把损失取了一下对数进行图表展示,但不知道具体有什么含义。

2018-05-07-19-28-46.jpg

下面这个是变量重要性,意思应该就是针对所有的特征列,它能计算出哪些对结果的影响更重要,会对这些特征做一个重要性排序。

2018-05-07-19-29-14.jpg

这应该就是一个训练的混淆矩阵,行是真实分类,列是预测分类,就是结果的展示,每个分类的错误率有多少。

2018-05-07-19-29-42.jpg

这也是一个验证的混淆矩阵,行是真实分类,列是预测分类,就是结果的展示,每个分类的错误率有多少。

2018-05-07-19-30-03.jpg

还有很多的模型结果展示,这里就不列举了。

今天有一个问题一直没有搞明白,无论我怎么修改参数,最终训练的轮数跟我设置的epoch都不一样,而且小非常多,不知道为什么。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容