概述

机器学习平台面向大数据分析领域,以分布式计算框架为基础,整合开源的数据科学工具,提供交互式编程和拖拽式实验,支持模型在线训练、评估、预测和部署,为用户提供一站式机器学习,降低机器学习平台运维成本。

机器学习平台的价值体现在提供一站式机器学习平台,包括拖拽式实验、迁移学习、模型服务部署等,兼顾机器学习、深度学习等多样算法框架,支持分布式计算,满足不同层次用户的需求。

(1) 一站式机器学习平台

构建在分布式计算平台基础之上,集数据处理、模型训练、评估预测、自然语言处理为一体的机器学习平台,为团队和个人提供协作的项目空间,可有效提高工作效率。

(2) 迁移学习

用户可根据预置算法和数据创建训练作业,训练结果可提供给模型管理作为模型数据。

(3) 拖拽式实验

提供拖拽式实验,用户通过拖拽实验组件方式完成机器学习流程构建,实现零编码模型训练。模型训练过程中,用户可以实时观察流程执行状态及执行结果。

机器学习平台以分布式计算框架为基础,整合开源的数据科学工具,支持交互式编程和拖拽式实验,为用户提供模型训练、预测、评估和部署的全生命周期管理功能。

术语定义

机器学习:机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

深度学习:深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

Markdown:Markdown是一种标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

JSON: (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

监督学习:利用一组已知类别的样本调整分类器的参数,使分类器达到所要求性能的过程,是从标记的训练数据来推断一个功能的机器学习任务,也称为监督训练或有教师学习。

聚类:聚类是一种重要的无监督学习方法。将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。

归一化:归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量,一般是将数据映射到0-1的范围内。

容器:容器是一个相对独立的运行环境,它对应用程序及其关联性进行隔离,从而构建起一套能够随处运行的自容纳单元。摆脱了对物理硬件的需求,允许我们更为高效地使用计算资源,从而提升能源效率与成本效益。Docker是目前最流行的容器技术之一。

数据管理

数据管理包含两方面,数据源管理和数据集管理。

数据源管理

添加数据源

(1)单击左侧导航栏的“数据源管理”。

(2)单击右侧窗口左上角的“添加数据源”按钮。

(3)在弹出的对话框上单击选择需要添加的数据源类型,然后点击”确定“按钮,将数据源信息填写好,单击测试连接,只要测试通过,点击保存,保存的数据源会在数据源列表中显示。

Snipaste_2020-09-22_09-37-38

修改数据源

(1)在右侧“操作”栏中,单击想要修改的数据源对应的“修改”按钮。

(2)在弹出的对话框内将数据源信息填写好,单击测试连接,测试通过,点击保存。

删除数据源

(1)在右侧“操作”栏中,单击想要删除的数据源对应的“删除”按钮。

(2)单击“确定”按钮,删除数据源,可以看到“删除成功”的提示。

(3)批量删除数据源。选中想要删除的数据源,单击右侧窗口左上角的“批量删除”并在弹出的对话框中单击“确定”,即可批量删除选中的数据集。

数据集管理

我的数据集

1 添加数据集

(1)单击左侧导航栏的“数据集”。

(2)单击右侧窗口左上角的“添加数据集”按钮。

(3)在弹出的对话框上单击“上传”,从本地选择要上传的数据集,并设定存储位置,单击“确定”,待进度条显示100%,单击“确定”按钮,完成添加数据集。

【注意】:目前支持文件大小最大为300MB的csv、tsv、xls、xlsx、xml格式数据集导入,并且推荐csv文件第一行添加英文字段名称。

1601108741(1)

2 下载数据集

选中想要下载的数据集,单击右侧窗口左上角的“下载”按钮,即可将所选数据集打包下载到本地。

2

3 查看数据集

单击数据集名称,在弹出的窗口中可预览前100条数据样本。(目前仅支持预览csv格式数据集)

3

4 删除数据集

(1)在右侧“操作”栏中,单击想要删除的数据集对应的“删除”按钮。

(2)单击“确定”按钮,删除数据集,可以看到“删除成功”的提示。

(3)批量删除数据集。选中想要删除的数据集,单击右侧窗口左上角的“批量删除”并在弹出的对话框中单击“确定”,即可批量删除选中的数据集。

4

5 路径

(1)在右侧“操作”栏中,单击想要查看路径的数据集对应的“路径”按钮。

(2)弹出“存储路径”对话框,在对话框中显示数据集所存储的路径。供后续模型开发和训练使用。

公共数据集

公共数据集在任何工作空间均可见,可用。而工作空间中我的数据集中的数据集,仅在其所在的工作空间可见。

1 下载数据集

选中想要下载的数据集,单击右侧窗口左上角的“下载”即可将所选数据集打包下载到本地。

2 路径

(1)在右侧“操作”栏中,单击想要查看路径的数据集对应的“路径”按钮。

(2)弹出“存储路径”对话框,在对话框中显示数据集所存储的路径。供后续模型开发和训练使用。

模型开发和训练

可视化实验

机器学习平台提供了可视化拖拽型机器学习模式,实验中的实验面板具备了放大、缩小、原始尺寸、适应实验面板、全屏等功能,实验面板中的组件可以随意用鼠标进行拖动,并且利用鼠标滚轮任意放大/缩小实验面板。选中实验面板中的实验组件可查看组件描述并根据需要调整组件细节,选中组件后单击右键可以对执行结果进行查看,也可以保存得到的模型。

1

2

用户可以使用实验模块进行数据读取->数据预处理->特征工程->训练模型->测试评估模型等操作,用户建立起一个完整的流程后即可运行,等待运行结果,省去了代码的编写过程。在训练结束后,模型文件可以保存,用户可以在模型管理模块中查看或下载已保存的模型文件。

创建实验

用户可以在左侧组件列表选择“可视化实验”,然后在右侧窗口的左上角单击“创建”,设定实验名称后单击“确定”即可成功创建该实验。

3

运行实验

(1)用户可以添加、编辑组件,设置组件参数,也可以设置实验运行的参数。

(2)单击下方的“启动”按钮以运行实验,在弹出的提示框选择“确定”,提交实验流程后,可以看到动画展示正在运行的组件。

删除实验

用户可以在实验中选择不再使用的实验文件,单击右侧操作栏的“删除”,在弹出的提示框选择“确定”后即可删除实验。 【注意】:删除操作是不可逆的,请用户谨慎删除。

4

复制实验

用户可以在实验中选择想要复制的实验文件,单击右侧操作栏的“复制”,在弹出的提示框输入名称和描述后选择“确定”即可复制实验。默认名称为“复制的实验名称_copy”。

6

查看实验运行历史

用户可以点击实验列表的右侧操作栏中的“运行历史”,会显示当前实验已经运行的实验记录,其中包含实验运行的总次数和运行成功的平均时间。

7

组件详细说明

1 我的数据集

在“实验—资源列表—我的数据集”中用户可以选择属于实验所在工作空间的数据集。将想要使用的数据集拖拽到实验面板上,单击该组件,可以在窗口右侧的组件选项面板中看到组件的数据类型以及输入路径。

8

【注意】:

(1)可以通过点击组件右上角的叉号来删除组件,也可以单击选中组件,右击鼠标选择“删除”按钮

(2)特征预览可查看本数据的各列的分布及统计信息。

9

2 我的模型

在“我的模型”中,用户可以选择属于实验所在工作空间的模型,将想要使用的模型拖拽到实验面板上即可。利用“我的模型”,用户可以使用自定义的模型进行实验,实现预测等功能。

3 输入输出

在“输入输出”中,IMLP提供了“read_excel”、“read_xml”、“read_url”、“read_database”等读取组件和 “write_pmml” 、“write_database”等写入组件。用户可以通过组件选项面板设置组件的数据类型以及输入输出路径。

10改

4 数据预处理

在“数据预处理”中,用户可以对上一步中读取的数据进行标准化,分箱及处理缺失值、重复值、异常值,降维等操作。将想要进行的预处理操作组件拖拽到实验面板上,从数据集下方的输出端连接一条线至预处理组件上方的输入端。“值”提供了一系列组件来对数据集中的值进行操作。

(1)数据清洗

a) 标准化

在“标准化”中,用户可以对数据表进行数据标准化、反标准化和按权重尺度变换等操作。并且提供了对应的分布式组件。用户可以通过使用“数据标准化”组件对数据集中的某些数值型字段进行标准化处理。

通过页面右侧的组件选项面板中的“方法”可选择变换方式,“range transformation"可进行归一化处理。将最小值和最大值分别设置为0和1,将数据映射到0-1的区间内,方便处理;通过使用“数据标准化”中的 “Z-transformation”对数据集中的某些数值型字段进行z-score标准化处理,还可以通过“interquartile range”得到四分位距。把所有数值由大到小排列并分成四等份,处于三个分割点位置的数值是四分位数,第三四分位数和第一四分位数的差即是四分位距,它与方差、标准差一样,表示各变量的分散情况。

在左侧组件列表点击“数据标准化”将其拖拽到实验面板上,然后双击该组件,在右侧组件选项面板选择要进行数据标准化操作的特征列,并选择数据标准化方法,确定是否保存原始列。单击实验面板下方的“启动”,等待组件全部显示对勾即可完成数据标准化操作,右键点击该组件可查看数据。

21

“反标准化”组件可以返回一个反转给定标准化模型的标准化模型。“按权重尺度变换”组件根据给定的权重缩放输入数据集,取消选择权重为0的特征,并根据给定的权重计算数值特征的新值。

b) 缺失值

用户可以通过“缺失值”中的组件检查数据是否有缺失值,然后执行各种操作来修复数据或插入新值。此类清洁操作的目标是防止在训练模型时可能出现的数据丢失导致的问题。在左侧组件列表选择“替换缺失值”中的组件,将其拖拽到实验面板上,然后单击该组件,在组件选项面板选择待处理数据类型并单击“选择字段”选择要处理的字段,单击右侧窗口下的“保存”保存相关设置后,单击实验面板下方的“启动”,等待组件全部显示对勾即可完成缺失值处理的操作,右键点击该组件可查看数据。

23

c) 重复值

用户可以通过使用“重复值”中的“删除重复值”组件根据指定的特征比较所有样本,进而从样本集中删除重复的样本。如果所选特征中的值相同,则认为两个样本重复。

24

d) 异常值

异常值检测是查找具有与期望非常不同的数据对象的过程,这些对象称为离群值或异常值。根据方法策略的不同,用户可以通过选择“异常值”中的组件对数据中的异常值进行检测。“检测异常值距离”可以根据与k个最近邻的距离来识别给定样本集中的n个异常值,用户在右侧组件选项面板可以设定参数n和k,并设定距离值的计算函数。“检测异常值密度”根据数据密度识别给定数据集中的异常值。

“LOF检测异常值”基于局部异常因子(lof)识别给定数据集中的异常值。Lof基于局部密度的概念,其中局部性由k个最近邻给出,其距离用于估计密度。通过比较物体的局部密度与其邻域的局部密度,可以识别出密度相似的区域,以及密度比邻域低得多的点。“COF检测异常值”基于类异常因子来识别异常值,它同样是一种根据密度检测异常值的方法。

25

(2)数据过滤

在“数据过滤”中,用户可以采用“过滤样本”组件对数据表进行过滤操作。滤波器可以将某列数值限定在一定范围以内,或过滤、保留特定的数值。“过滤范围内样本”按序列在数据集中选择一个范围,保留这个范围内的数据,移除剩余的数据。将过滤器与数据表连接,通过右侧组件选项面板设置组件相关属性并保存后,单击实验面板下方的“启动”,运行成功后完成对数据的过滤。

15改

(3)数据采样

用户可以通过使用“数据采样”中的组件对数据进行采样,选择“采样”时,抽取样本的大小可以直接定义或按其占样本集的比例来定义;选择“分层采样”时,随机生成子集同时确保子集中的层级分布与数据集的分布相同;选择“有放回采样”时,采样结果可能包含重复数据。此外,用户还可以选择Kennard-Stone法采样和基于模型采样的方法。

用户可以通过使用“数据拆分”组件将数据集按比例拆分为训练集和测试集,右侧组件选项面板中可以设置拆分比率、采样类型及随机种子。“数据拆分”组件的左侧输出端代表训练集,右侧输出端代表测试集。:拆分比率在0到1之间,默认设置为0.75,表示训练集占总体数据集的比率。

16

(4)数据分箱

用户可以通过使用“数据分箱”组件对数据进行划分。建立模型时,经常需要对连续变量进行离散化,特征离散化后模型会更稳定,降低了过拟合风险。比如在建立申请评分卡模型时用logistic作为基模型就需要对连续变量进行离散化,离散化通常采用分箱方法。

分箱方法是一种简单常用的预处理方法,通过考察相邻数据来确定最终值。所谓“分箱”,实际上就是按照属性值划分的子区间,如果一个属性值处于某个子区间范围内,就称把该属性值放进这个子区间所代表的“箱子”内。把待处理的数据(某列属性值)按照一定的规则放进一些箱子中,考察每一个箱子中的数据,采用某种方法分别对各个箱子中的数据进行处理。平台提供的分箱组件包括按样本数离散化、按频率离散化、按熵离散化和用户指定离散化。

在左侧组件列表点击“分箱”中的组件将其拖拽到实验面板上,然后单击该组件,在右侧组件选项面板设置分箱个数。单击实验面板下方的“启动”,等待组件全部显示对勾即可完成分箱操作,右键点击该组件可查看数据。

22

(5)数据排序

用户可以通过“数据排序”组件将表中数据进行排序,在右侧组件选型面板可设置升序或降序排序。“乱序”组件可以将数据集复制后重新打乱顺序以创建新的样本集。

17改

(6)数据克隆

用户可以通过“克隆行”组件对数据集进行克隆操作以创建新的样本集。

在“数据预处理”中,用户可以对上一步中读取的数据进行特征操作、样本操作、数据表操作及值操作等预处理。将想要进行的预处理操作组件拖拽到实验面板上,从数据集下方的输出端连接一条线至预处理组件上方的输入端。

5 数据转换

(1)列转换

在“列转换”中,用户可以对数据进行名称和角色的调整、类型转换、特征选择和特征生成等操作。

a) 设置名称和角色

对数据集名称进行各种方法的重命名操作,包括替换重命名、通用方法重命名、样本值重命名和构造方法重命名等。同时可以对数据集的角色(标签、权值、预测值等)进行设定和交换,改变一个或多个特征的作用。

11改

b) 类型转换

用户可以通过“类型转换”组件对数据集中的某些字段进行类型转换,在左侧组件列表点击“类型转换”将其拖拽到实验面板上,然后双击该组件,在右侧组件选项面板选择要转换成特定类型数据的字段。在选择字段窗口中可以看到字段的名称和数据类型,用户可以使用左侧的勾选框选择一个或多个需要转换类型的字段。单击右侧组件选项面板下的“保存”保存相关设置后,单击实验面板下方的“启动”,等待组件全部显示对勾即可完成类型转换的操作,右键点击该组件可查看数据。输出端为经过类型转换的数据集。

12改

(2)值转换

“值转换”提供了一系列组件来对数据集中的值进行操作,包括映射、替换、赋值、合并等。

(3)表转换

a) 分组

分组是将一个数据集划分成若干区域,分组和聚合常常联合使用。在“分组”中,用户可以通过“聚合”组件运行一个聚合函数,对一组值进行计算,并返回单个值。其效果和SQL中的group by 和 having 相似。

18改

b) 旋转

“旋转”包括数据透视表、汇总多列和转置功能。“转置”是较常用的组件,它可以交换数据集的行和列。“数据透视表”通过拆分列创建一个新表,将数据分组并计算每组的总和、平均值等。“汇总多列”将数据集中每个对应多个特征的样本转化成多个样本,每个样本对应一个特征。

19改

c) 连接

用户可以通过“添加合并”组件将指定列的两个或两个以上数据集合并为一个。通过“相减”组件,用户可以将两次数据集相减返回id只存在于数据集1而不存在于数据集2的样本,两个数据集必须都包含id特征,同时id类型必须相同。同样,用户可以根据“连接”中的其他组件求得满足以上条件的两个数据集的交集、并集和超集等。使用“笛卡尔积”组件可以建立两个集合的笛卡尔乘积,与上述连接算子不同,笛卡尔积不需要数据集的id特征。比如有两个类别特征color和light,它们分别可以取值为yellow,green,purple和on, off。这两个特征各自可以离散化为3维和2维的向量。对它们做笛卡尔乘积转化,就可以组合出长度为6的特征,它们分别对应着原始值对(yellow, on),(yellow, off),(green, on),(green, off),(purple, on),(purple, off)。

20改

6 特征工程

(1)特征选择

用户可以利用“特征选择”中的组件标识具有最强预测能力的数据集中的要素,其评价标准从数据集本身的内在性质获得,与特定的学习算法无关,具有较好的通用性。通常选择和类别相关度大的特征或者特征子集。将“过滤式特征选择”拖拽到实验面板上,双击后可以在右侧组件选项面板中设置特征选择方法、特征列、标签列和要保留的特征个数,然后启动实验并运行成功后即完成特征选择并且会分别输出转换结果表和特征重要性排序表。

在数据特征中同样存在着冗余特征,用户可使用“选择”中的组件删除相应的特征。另外,通过“操作子集”组件可以从数据集中选择一个包含一个或多个特征的子集,在子集上运行算子的子过程。

13改

(2)特征生成

用户可以利用“特征生成”中的组件生成新的特征,包括空特征、合并特征、聚合特征和绝对值特征等,也可以利用“生成高斯函数”组件,根据已有的特征,指定mean和sigma值来建立高斯函数。

14改

(3)特征权重

在机器学习中,我们时常需要计算出特征所占的比重,“特征权重”中就提供了一系列组件来帮助用户确定特征权重。平台提供的方法包括按PCA加权、按信息增益加权、按信息增益比例加权、按规则加权、按值平均加权、按偏差加权、按相关性加权、按卡方加权、按基尼系数加权、按树模型重要性加权、按不确定度加权、按Relief加权、按SVM加权、按成分模型加权及按用户指定加权等。“特征权重”还包括了“权重转数据集”组件,用户可以通过这个组件由权重生成一个新的数据集,一列是特征名称,一列是对应的权重值。

(4)降维

降维指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维是数据预处理的重要部分,它既可以缩小数据量,又可以减少冗余信息或噪声信息带来的误差。“降维”中提供了多种组件供用户选择。

主成分分析(PCA)是最常用的线性降维方法,它通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。将“降维”中的“主成分分析”组件拖拽到画板中,单击组件,在右侧组件选项面板中选择“keep variance”,可以设定方差阈值进行降维;选择“fixed number”,可以设定降维维度来进行降维操作。核主成分分析则是对主成分分析的非线性拓展,可以挖掘到数据集中的非线性信息。

26

此外,“降维”中还提供了独立成分分析、广义Hebbian、奇异值分解和自组织映射等降维方法。

通常,希望进行训练的数据是已经做好清理的数据,比如,通过数据预处理保证数据正确的编码格式,或是数据拥有一致的结构。数据预处理可以提高数据的质量,从而有助于提高后续学习过程的精度和性能。“数据清洗”中还包含了“质量分析”算子,可以计算数据质量,这些度量值可以帮助用户决定是否将数据用于建模。

7 统计分析

(1)相关性分析

相关性分析是指对两个或多个具有相关性的变量元素进行分析,从而衡量变量元素之间的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。相关性分析是一种可以展示特征间是否相关、相关性强弱的统计学方法。平台提供的相关性分析方法有相关性矩阵、协方差矩阵、方差分析ANOVA、分组ANOVA、转换矩阵、转换图、互信息矩阵和雨流矩阵等。

(2)相似性分析

相似性分析是指度量所选数据与数据集中其他数据的相似性。相似性分析常用于分类、聚类任务中。在左侧面板将“相似性分析”中的“生成相似分析”拖拽到实验面板上,单击后可以在右侧组件选型面板中选择度量类型和相应的变量度量方式。平台提供的度量类型有混合变量、类型变量度量、数值变量度量和Bregman散度等。

8 建模、预测、评估

(1)建模

在“建模”中,IMLP提供了常用的预测型模型和聚类模型,并包含了关联关系、相关性分析、相似性分析、特征权重、优化方法和时间序列分析等功能模块。

a) 预测型模型

预测型模型时指用于预测的,用数学语言或公式所描述的事物间的关系,包括回归和分类两种模型。它在一定程度上揭示了事物间的内在规律,预测时将这种规律作为预测值的直接依据。IMLP提供的预测型模型有最大频率分类模型、随机分类器、惰性模型、贝叶斯模型、树模型、规则模型、神经网络、函数模型、逻辑回归、支持向量机、判别分析模型、集成学习模型、winnow模型和最大熵模型等。

b) 聚类

聚类算法提供了常用的KMeans聚类及其衍生版本,同时又提供了期望最大化聚类、支持向量聚类、随机扁平聚类、层次聚类等方法。另外需要注意的是,聚类算法组件有两个输出,一个是左侧输出端输出训练模型并可作为“聚类模型预测”组件左侧输入端的输入,另一个是右侧输出端直接输出预测结果。

c) 关联与推荐

用户还可以利用“关联与推荐”中的组件来进行关联分析。关联分析用于发现隐藏在数据集中的有意义的联系,所发现的联系可用关联规则的形式表示。

d) 时间序列分析

时间序列是同一现象在不同时间上的相继观察值排列而成的序列。根据观察时间的不同,时间序列中的时间可以是年份、季度、月份及其他各种时间表现形式。时间序列分析就是根据已有的数据对未来进行预测。“时间序列分析”提供了时间序列转换、时间序列滤波、时间序列分解、时间序列特征提取、时间序列窗口创建、时间序列预测及时间序列验证等功能。

e) 优化方法

“优化方法”提供了一系列组件帮助用户进行参数优化、特征选择、特征生成、特征权重确定等操作。

(2)预测

用户可以通过“预测”中的“应用模型”组件,在数据集上应用一个模型。“应用模型”左侧输入端接收“我的模型”或者经过“训练模型”组件传出的训练好的模型,右侧输入端接收用于预测的数据集,要求预测组件右侧组件选项面板设置的特征字段与训练模型时使用的相同,输出端输出预测结果表。

(3)评估

机器学习平台提供了预测型模型性能、聚类模型性能和显著性检测模型评估三类模型评估组件,分别用于评估算法中的预测、聚类和显著性检测模型性能。组件输入端接收由预测组件生成的预测结果集或者聚类算法组件右端输出的预测结果集。

用户可以将目标算法拖拽到实验面板上,单击算法组件,在右侧组件选项面板设置算法的相关参数并保存以备使用。所有的机器学习算法组件均提供一个用于输入训练集的输入接口和一个用于输出训练好的模型的输出接口。在成功训练之后,右键单击机器学习算法组件并选择“保存模型”,在弹出的对话框内输入模型相关信息后单击“确定”,模型文件将保存到“内部存储”中,用户可以在模型管理中查看或下载模型文件。

(4)示例

以下将通过回归算法中的线性回归为例,进行相关操作说明。用户可参考该例来自行操作其他实验。

a) 数据集导入、数据预处理及算法选择

在左侧资源列表中选择数据集拖拽到实验面板上,并拖拽“设定角色”和“数据拆分”组件与数据集相连,单击“数据拆分”组件,在右侧组件选型面板设定拆分比例,将数据集分为训练集和测试集,在左侧组件列表选择建模-预测型建模-函数模型,将“线性回归”拖拽到实验面板上,将数据集与该组件的输入端连接,双击该组件,在右侧组件选项面板设置相关属性后保存。单击启动待运行成功后即可查看训练好的模型,也可通过组件的输出端将输出模型与预测组件相连进行模型预测操作。

27

b) 模型预测

根据训练好的模型,预测样本的类别或数值。

将“预测”中的“应用模型”拖拽到实验面板中,将其左侧输入端连接前面步骤“线性回归”组件的模型输出端,右侧输入端连接经过预处理的数据集。保存后启动实验。

28

c) 评估

预测型模型性能、聚类模型性能和显著性检测三类模型评估组件,分别用于评估算法中的预测型模型、聚类模型和显著性检测模型性能。这里仍以“线性回归”为例,它属于回归模型,故使用“回归模型性能”组件对模型性能进行评估。

29

9 工具

机器学习平台还提供了执行脚本、流程控制、随机生成数据和解压zip的工具。

(1)执行脚本

用户可通过使用“执行脚本”中的组件指定python、R或Java代码和Groovy脚本来直接在进程内编写自己的算子。单击这些组件,在右侧的组件选项面板中单击文本编辑,即可编写算子。这些脚本将在进程运行时被解释和执行。

(2)流程控制

流程控制是指程序运行中,个别子程序运算的方式,平台中的“流程控制”包括循环和集合两部分。循环组件可以在满足循环条件的情况下,反复执行某一段程序。将“循环”组件拖拽到实验面板上,单机该组件,在右侧的组件选项面板上可以设定迭代次数,也就是子流程循环的频率。

在“集合”中,用户可以通过“收集”组件将多个输入对象合并到一个集合中,也可以使用“选择”组件从给定的对象集合中返回指定的单个对象。此外,平台还提供了集合扁平化和集合平均功能。

(3)随机生成数据

在机器学习算法使用过程中,常常需要数据来验证算法,调试参数,但有时找到一组适合某种特定算法类型的数据样本却并不容易,这时就用到了随机生成数据的功能,用户可以通过“随机生成数据”中的组件生成适合某种模型的数据。

将“生成数据”组件拖拽到实验面板上,单机该组件,在右侧的组件选项面板上选择目标函数,类型有求和函数、多项式函数、单变量非线性函数等。此外,平台还支持生成销售数据、团队利润数据、转账数据、事务数据等。

30

10 自然语言处理

自然语言处理(NLP)是机器学习的一大分支,它以一种智能与高效的方式,对文本数据进行系统化分析、理解和信息提取。通过NLP,我们可以管理大量的文本数据,或执行大量的自动化任务,并解决各种各样的问题。

(1)文本预处理

“文本预处理”提供了一系列组件供用户进行文本预处理。用户可使用“繁简转换”和“汉字拼音转换”进行基础转换,也可使用“文本标准化”进行大小写转换、全半角转换等标准化处理。“停用词过滤”可以过滤掉停用词,“简单分词器”则使用停用词或正则表达式实现字符串的切分。将“文本预处理”中的“繁简转换”组件拖拽到实验面板上,单击组件,在右侧的组件选项面板上单击“编辑列表”,点击“新增”,选择要进行转换的属性名和转换方法,即可进行转换,实验完成后单击“繁简转换”组件,右键可查看结果。

31

“字符数列转切分数列”使用正则表达式对字符序列进行切分,平台还提供了组件来对切分序列进行前缀特征生成和后缀特征生成。此外,用户还可以通过组件来进行不同规则的计数操作。

平台还支持HTML网页解析,用户可以对HTML压缩包文件进行页面解析与提取元素操作。

(2)分词以及词性标注

以中文为例,一个中文文本从形式上看是由汉字(包括标点符号等)组成的一个字符串。由字可组成词,由词可组成句子,进而由一些句子组成段、节、章、篇。可见,如果需要处理一篇中文语料,从中正确的识别出词是一件非常基础而重要的工作。平台在“分词以及词性标注”中提供了原子分词、机械分词和统计分词等功能。

32

(3)命名实体识别

命名实体识别是指从文本中识别出命名性词汇,为关系抽取等任务做铺垫,狭义上就是指识别出人名、地名、机构名、时间和ID等类型的命名实体。“命名实体识别”中就提供了相应的识别组件。

33

(4)句法依存

句法依存是自然语言处理的核心问题之一,旨在将句子从语句的序列形式按照某种语法体系转化为图结构(通常为树结构),以描述出各个词语之间的主谓宾等依存关系。也即指出了词语之间在句法上的搭配关系,这种搭配关系是和语义相关联的。“句法依存”提供了基于三种不同方法的训练、预测和评估组件。

“ShiftReduce句法依存”即基于转移的依存句法分析。初始状态下,栈中仅有一个根节点,缓存中存储句子中全部的词。一个状态经过一个转移动作变为一个新的状态,转移动作共有移进、左归约和右归约三种。其中移进动作将缓存中第一个词压入栈中;左归约在栈顶的两个词之间产生一条左指向依存弧,同时将栈顶第二个词下栈;右归约在栈顶的两个词之间产生一条右指向依存弧,同时将栈顶词下栈。

“神经网络句法依存”则利用非线性的神经网络帮助提取各个特征的隐含联系,具有较好的泛化能力。“PCFG句法依存”即基于概率上下文无关文法的短语结构分析方法,是一种应用较为成功的语句驱动的统计句法分析方法。

34

(5)文本特征

“文本特征”提供了计数、特征提取等功能。“词频统计”在对文本进行分词的基础上,对文本中的词语进行频率(出现次数)统计,输出词频统计表等。将“文本特征”中的“词频统计”组件拖拽到实验面板上,单击组件,在右侧的组件选项面板上分别选择文本id所在列名和文本所在列名,保存后点击启动,即可进行词频统计,实验完成后单击“词频统计”组件,右键可查看结果。“ngram统计计数”是在词的基础上生成n-gram,并统计在全部语料集上,对应n-gram的个数。

35

“特征哈希”的目标是把原始的高维特征向量压缩成较低维特征向量,且尽量不损失原始特征的表达能力。它通过产生文本的n-gram文本信息,针对n-gram文本信息通过MurmurHash3方法得到哈希值,来产生文本的哈希特征。“ngram特征提取”首先对文档进行粗切分,得到语段序列,然后对语段序列进行gram切分,得到gram频段列表,并选择频度大于设定阈值的gram片段作为特征向量。

“TF-IDF”即“词频-逆文档频率”的缩写。在词频的基础上,有时要对每个词分配一个代表重要性的权重。如果某几个词语在一篇文章中出现的次数一样多,最常见的词可能帮助较小,给予较小的权重,而较少见的词可以给予较大的权重,这个权重即“逆文档频率(IDF)”,它的大小与一个词的常见程度成反比。将得到的词频(TF)和逆文档频率(IDF)相乘,就得到了一个词的TF-IDF值,某个词对文章的重要性越强,它的TF-IDF值就越高。

Doc2Vec是一种非监督算法,可以获得句子/段落/文档的向量表达,是Word2Vec的拓展,还可以用监督学习的方法进行文本分类,例如经典的情感分析问题。

(6)文本相似

文本相似用于度量两份文本之间的相似度。将“文本相似”中的“字符串相似度”组件拖拽到实验面板上,单击组件,在右侧的组件选项面板上分别选择两个文档特证名,保存后点击启动,即可计算这两个特征的相似度。“字符串相似TopN”则输出前N个相似度最高的字符串对。“文章相似度”是在字符串相似对的基础上,基于词来计算两两文章之间的相似度。

36

“语义向量距离”即基于算法语义向量结果(如Word2Vec生成的词向量),计算给定的词(或者句子)的扩展词(或者扩展句),即计算其中某一向量距离最近的向量集合。其中一个用法是,基于Word2vec生成的词向量结果,根据输入的词返回最为相似的词列表。

37

(7)文本分类

文本分类也是NLP的重要任务之一,用于对本文的类型进行预测,应用在垃圾邮件过滤、新闻分类等领域。平台提供的文本分类方法有贝叶斯分类训练和FastText分类训练。

38

(8)敏感词

“敏感词中的”中的组件可以检测和过滤涉政、涉黄、涉暴、垃圾广告等违规单词,从而提供安全保障。将“敏感词检测”组件拖拽到实验面板上,第一个输入端口连接要检测到文本数据集,第二个输入端口连接用户自定的敏感词词典,在实验面板上单击“敏感词检测”组件,在右侧的组件选项面板上单击“选择字段”可以选择要检测的文本列。保存后单击“启动”可运行程序。

39

(9)其他功能组件

除了上述功能组件,“自然语言处理”中还提供了同义词、分段分句、自动摘要、观点抽取、主题模型训练、Word2Vec等一系列组件供用户使用。

实验模板

用户可以通过实验模板功能从模板创建新的实验,简化了做相同实验时的拖拽操作,并且“模板列表”里还提供了模板导入等相关功能。

1 从模板创建实验

用户可以点击实验模板中操作下的“从模板创建”选项来创建新的实验。

2 模板导入

通过单击实验模板界面左上角的“模板导入”,用户可以通过“从实验中导入”和“从本地导入”两种方式导入实验模板。

3 实验子流程

支持复合算子(子流程算子)操作,复合算子如下图所示,为双线框标识。双击复合算子,可进入复合算子内部(子流程面板),其内部默认有输入输出节点,复合算子内部支持用户自定义拖拽形成流程,且支持多层子流程的嵌套。

40改

42

实验版本

提供实验版本功能,可将当前实验通过“保存为版本”按钮保存为版本,并通过右上角版本选择下拉框选择相应的版本。如下图所示。

43 “Latest”版本为进入实验之后的默认版本,通过选择进入历史版本后,面板会置灰,并禁用单个算子的拖拽功能,各算子参数可见,但不能修改,这样保证了历史版本的不可变性。如果想在历史版本上进一步开发,可通过右下角的启动编辑按钮,将当前历史版本覆盖“Latest”版本确认覆盖后原有“latest”版本将会被覆盖。

44

另外,如下图所示,IMLP提供了版本管理功能,可删除,修改(版本号)除“Latest”以外的版本信息。

45

注意事项

46

(1)实验的状态总共有三种:草稿、运行、已完成、失败。“草稿”代表只是创建了实验,没有运行实验;“完成”代表创建实验后并运行成功;“失败”代表创建实验后运行失败。

(2)单击组件,右侧的属性面板参数要点击保存后才会生效。

(3)机器学习里“预测”组件的特征列设置要和“训练模型”组件的特征列设置保持一致,“评估”组件的目标列设置要和“训练模型”组件的目标列设置保持一致。

(4)在实验中,选中机器学习算法组件并右键单击,选择“保存模型”,即可将训练好的模型保存到模型菜单里。

(5)实验运行结束后,右键单击组件,可以看到各组件的执行结果和日志。

自动机器学习

自动机器学习可加速构建和验证模型的过程,本系统内自动机器学习主要分为分类和回归问题。自动模型可帮助您评估数据,提供解决问题的相关模型,并在计算完成后帮助您比较这些模型的结果。

创建autoML任务

(1)单击左上角”创建“按钮,跳转到“创建 autoML任务 ”页面。

(2)进行数据选择,选择要执行autoML任务的数据集。点击右下角的“下一步”按钮。

(3)设置目标,选择数据集的目标列,选择任务类型(分类、回归),点击右下角的“启动”按钮。

(4)根据分配的任务进行模型的训练,并把模型的结果进行输出。

(5)对于结果较好的模型可以点击操作栏的“保存”按钮,进行模型保存。

54

55

55

查看autoML任务

(1)单击autoML任务名称,在跳转到页面可以看到自动学习结果。

(2)对于结果较好的模型可以点击操作栏的“保存”按钮,进行模型保存。

57

删除autoML任务

用户可以在自动机器学习任务列表中选择不再使用的自动机器学习任务,单击右侧的“删除”,在弹出的提示框选择“确定”后即可删除自动机器学习任务。

57

修改autoML任务

(1)在自动机器学习任务列表中选择需要修改的自动机器学习任务,单击右侧的“修改”,跳转到“创建 autoML任务 ”页面。

(2)进行名称和描述的修改。点击右下角的“下一步”按钮。

(3)设置目标,选择数据集的目标列,选择任务类型(分类、回归),点击右下角的“启动”按钮。

(4)根据分配的任务进行模型的训练,并把模型的结果进行输出。

(5)对于结果较好的模型可以点击操作栏的“保存”按钮,进行模型保存。

57

迁移学习

迁移学习用于管理模型数据的训练作业任务,用户可根据预置算法和数据创建训练作业,训练结果可提供给模型管理作为模型数据。

迁移学习列表

在迁移学习列表中,平台为用户展示了工作空间中已创建的迁移学习。用户可以按照名称进行查询,按照作业状态进行筛选,查看迁移学习包含的版本个数,查看迁移学习最新版本的运行时长。

53

删除迁移学习

在迁移学习列表中,用户可以通过点击迁移学习记录所在行的“删除”按钮,对该迁移学习执行删除操作。需要注意的是,删除迁移学习将删除该迁移学习所包含的所有版本。

53

创建迁移学习

单击迁移学习列表左上方的“创建迁移学习”按钮,即可进入向导式的创建流程。

(1)设定迁移学习参数,在创建迁移学习的第一个页面中,用户需要依次填写:

a) 迁移学习名称,迁移学习描述等基本信息;

b) 选择从已保存的训练参数加载;或者选择迁移学习任务类型、数据集、预训练模型,并设定模型训练的超参数;

c) 设置迁移学习CPU核数的限制、内存的限制以及失败重启次数;

d) 勾选是否保存以上设定的参数,可供以后的迁移学习直接导入。

53

(2)确定迁移学习参数

53

(3)提交任务,查看迁移学习详情

53

查看迁移学习详情

在迁移学习列表中单击想要查看的迁移学习名称,即可查看迁移学习详情。在迁移学习详情页面,展现的是该迁移学习的全部版本的详细信息,主要包括运行状态,运行时长,迁移学习配置,以及迁移学习日志。

单击左上方的“版本过滤”按钮即可筛选出指定的版本详情。

单击右上方的“更多操作”按钮,可以执行“保存作业参数”、“停止”和“删除”操作。

53

预置算法

机器学习平台提供了数十个基于TensorFlow等深度学习框架,面向图像分类、目标检测等任务的预训练模型。用户可以基于预训练模型,对自定义的数据应用迁移学习技术进行模型训练。

53

作业参数

作业参数列表展示了保存的迁移学习参数,查看作业参数,并且可以快捷地加载作业参数创建迁移学习任务。

53

自定义作业

自定义作业用于管理模型数据的训练作业任务,与迁移学习不同,用户可使用自行编写的训练任务代码包,训练结果可提供给模型管理作为模型数据使用。

1

创建自定义作业

(1)点击左上角的“创建自定义作业”按钮,会跳转到创建自定义作业页面。

(2)填写好创建自定义作业页面必选项,点击“创建并启动”按钮。

1

查看自定义作业

(1)用户可以在自定义作业列表中查看在实验中保存的自定义作业,可以在右侧操作栏单击“修改”或“删除”按钮。

(2)在自定义作业列表中单击想要查看的自定义作业名称,即可查看自定义作业详情。在自定义作业详情页面,展现的是该自定义作业的全部版本的详细信息,主要包括运行状态,运行时长,自定义作业配置,自定义作业日志,以及自定义作业监控等信息。

单击右上方的“更多操作”按钮,可以执行“修改任务”、“停止”、“下载”和“删除”操作。

1

修改自定义作业

用户在自定义作业详情页面点击右侧“修改任务”按钮,即可进入修改自定义作业页面,填写好修改的信息,单击“修改并启动”按钮,即可修改成功。

1

模型管理

模型管理主要用于管理通过实验流程保存的模型,用户可以查看模型列表、下载、删除模型文件、基于当前模型发布本地服务等功能。

内部模型

内部模型为老版本的模型管理,仅用来维护老用户创建的模型,不再支持导入模型功能。

model_1

查看模型

用户可以在模型列表中查看在实验中保存的经过训练的模型。并且可以通过点击模型列表中的模型来查看模型信息。

model_1

删除模型

(1) 用户可以在模型列表中选择不再使用的模型,单击右侧的“删除”,在弹出的提示框选择“确定”后即可删除模型。

(2)批量删除模型。选中想要删除的模型,单击右侧窗口左上角的“批量删除”并在弹出的对话框中单击“确定”,即可批量删除选中的模型。

【注意】:删除操作是不可逆的,请用户谨慎删除。

model_1

存储路径

用户可以通过单击“路径”来查看模型文件的存储位置。

model_1

下载模型文件

用户可以在模型列表中选择想要下载的模型,单击右侧的“下载”,即可下载模型文件。

发布服务

用户可基于当前模型发布本地服务,供用户对当前模型进行使用。

model_1

外部模型

外部模型提供完整的模型管理功能

model_1

新建模型

(1)点击左上角的“新建模型”按钮,会弹出新建模型对话框。

(2)填写好新建模型对话框必选项,点击“确定”按钮。

model_1

查看模型

用户可以在模型列表中查看创建的模型。

model_1

修改模型

用户可以在模型列表中选择需要修改的模型,单击右侧的“修改”,会弹出修改模型对话框。

model_1

删除模型

用户可以在模型列表中选择不再使用的模型,单击右侧的“删除”,在弹出的提示框选择“确定”后即可删除模型。

【注意】:删除操作是不可逆的,请用户谨慎删除。

model_1

新建版本

(1)用户可以在模型列表中点击操作栏中的“新建版本”,会跳转到新建版本页面。

(2)填写好新建版本页面必选项,点击“立即创建”按钮,即可创建新版本,并且在模型版本列表中显示。

model_1

查看版本

(1)用户可以在模型列表中点击模型名称进入模型版本列表。

(2)用户可以在模型版本列表中进行新建版本、修改、删除、发布服务和下载等操作

model_1

修改版本

用户可以在版本列表中选择需要修改的版本,单击右侧的“修改”,会跳转到修改版本页面。

model_1

删除版本

(1)在右侧“操作”栏中,单击想要删除的版本对应的“删除”按钮。

(2)单击“确定”按钮,删除版本,可以看到“删除成功”的提示。

(3)批量删除版本。选中想要删除的版本,单击右侧窗口左上角的“删除”并在弹出的对话框中单击“确定”,即可批量删除选中的版本。

【注意】:删除操作是不可逆的,请用户谨慎删除。

发布服务

(1)用户可以在版本列表中选择需要发布服务的版本,单击右侧的“发布服务”,会跳转到新建模型服务页面。

(2)填写好新建模型服务页面必选项,点击“创建并启动”按钮,即可创建版本服务,并启动该服务。

model_1

下载版本

用户可以在版本列表中选择需要下载的版本,单击右侧的“下载”,即可将所选版本打包下载到本地。

查看版本信息

(1)用户可以在版本列表中单击版本号,查看版本基本信息。

(2)用户可以看到该版本对应的服务信息,可以单击“创建新服务”按钮,进入新建模型服务页面,创建新服务。

(3)用户可以点击右侧操作栏的“删除”、“启动”或“停止”操作。

model_1

服务管理

机器学习平台为用户提供了服务管理的功能,主要包含删除、查看服务地址、测试服务等操作。

内部模型服务

内部模型服务为老版本的模型服务管理,用来展示用户在内部模型中发布的服务。

1

查看服务地址

用户可以通过单击服务名称来查看服务的访问地址。

1

删除服务

用户可通过点击删除,完成对当前服务的删除操作。

1

测试服务

用户可点击测试,进入到服务测试页面,对当前服务进行测试。

1

外部模型服务

外部模型服务提供完整的模型服务管理功能。

1

创建服务

(1)点击左上角的“创建服务”按钮,会跳转到新建模型服务页面。

(2)填写好新建模型服务页面必选项,点击“创建并启动”按钮,即可创建模型服务,并启动该服务。

1

启动服务

单击服务右侧的“运行”按钮,将启动一个服务实例,启动成功后可以执行“停止”操作。各个服务实例间的资源是隔离的,停止服务不会将其中的资源内容清除,而一旦执行删除服务操作,用户在该服务中的资源及临时结果将无法找回。

1

查看服务

(1)用户可以在服务列表中查看在外部模型中发布的服务。

1

(2)用户可以在服务列表中点击服务名称进入服务详情页面,可以查看到该服务的调用指南、预测、配置、监控信息和日志等信息。

1

(3)调用指南

用户可以看到服务的请求地址、请求方法和参数说明等信息。

(4)预测

用户可以单击“选择文件”按钮,会弹出选择图片对话框,选择图片后,点击“打开”按钮,即可选择图片,然后点击右侧的“预测”按钮,会出现预测结果。

1

(5)配置

用户可以查看到当前服务配置下的模型列表。

1

(6)监控信息

用户可以查看到当前服务的监控信息,只有在运行中才可以查看服务的监控信息。

1

(7)日志

用户可以查看到当前服务的日志信息。

1

计算规格管理

计算规格管理用于自定义平台当前租户下的环境资源,可提供在模型服务管理、自定义作业、notebooks等使用。

1

添加规格

(1)点击左上角的“添加规格”按钮,会弹出添加规格对话框。

(2)填写好添加规格对话框必选项,点击“确定”按钮。

1

查看规格

用户可以在规格列表中查看已创建的规格,可以在右侧操作栏单击“修改”或“删除”按钮。

修改规格

(1)用户可以选择需要修改的规格,单击右侧操作栏的“修改”按钮。

(2)在弹出的对话框内修改信息,修改完成后,单击“确定”按钮。

1

工作空间管理

工作空间管理包括:我的工作空间和协作工作空间两部分,我的工作空间就是登入用户自己创建的工作空间。协作工作空间为其他用户创建的工作空间分享给登入用户的工作空间。

我的工作空间

用户在我的工作空间下可以创建不同的工作空间,在特定的工作空间中创建实验,添加数据集、模型、算子。右上角提供了“创建工作空间”和查询工作空间功能按钮。工作空间可以进行分享、修改、删除操作。点击操作栏中的“修改”,可以修改空间名称和描述。点击“删除”可删除相应的工作空间。点击“分享”,可将工作空间分享给其他用户,协作工作空间页面中可以查看收到分享的工作空间。

1

协作工作空间

协作工作空间下可以看到其他用户创建并分享给我的工作空间。

1

附录

机器学习平台中包含的主要开源组件:

  1. pandas http://pandas.pydata.org/pandas-docs/stable/

  2. scikit-learn http://scikit-learn.org/stable/modules/classes.html

  3. TensorFlow https://www.tensorflow.org

  4. PySpark http://spark.apache.org/docs/2.2.0/api/python/pyspark.html

  5. hdfs3 http://hdfs3.readthedocs.io/en/latest/

  6. TensorBoard https://www.tensorflow.org/get_started/summaries_and_tensorboard