H2O操作记录 mnist深度学习

2018-12-10  本文已影响0人  yaoleiroyal

今天详细研究一下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

下面描述一下这些参数:

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 2018-05-07-17-28-37.jpg 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为模型提供了大量的可视化数据展示,以及功能按钮。上图展示了对一个模型可以进行的操作:

2018-05-07-18-32-06.jpg

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

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

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都不一样,而且小非常多,不知道为什么。

上一篇 下一篇

猜你喜欢

热点阅读