开源项目Easy Machine Learning简介

Easy Machine Learning这个项目是网络数据挖掘课上老师团队做系统,推荐给我们用来做大作业,目前只学了点皮毛,先对项目的简介进行大概的翻译。原项目地址

什么是Easy Machine Learning

机器学习算法已经成为许多大数据应用的关键组成部分。然而,机器学习的全部潜力还远远没有发挥出来,因为使用机器学习算法是困难的,尤其是在Hadoop和Spark等分布式平台上。关键障碍不仅来自于算法本身的实现,还包括将它们应用到实际应用程序中的处理,这些应用程序通常涉及多个步骤和不同的算法。
我们的平台Easy Machine Learning提供了一种通用的基于数据流的系统,用于简化将机器学习算法应用到现实世界任务的过程。在系统中,一个学习任务被制定为一个有向无环图(DAG),其中每个节点代表一个操作(例如机器学习算法),每个节点代表从一个节点到其后代的数据流。任务可以手动定义,也可以从现有的任务/模板中克隆。在向云提交任务后,每个节点将自动按照DAG执行。为使用户创建、配置、提交和监视任务的拖放方式实现了图形用户界面。
系统的优势如下:
1. 降低了定义和执行机器学习任务的障碍;
2. 共享和重用算法的实现,工作任务,以及实验结果;
3. 在一项任务中无缝集成独立算法和分布式算法。

该系统由三个主要组成部分组成:

  • 分布式机器学习库:不仅实现了常用的机器学习算法,而且还实现了数据预处理/后处理、数据格式转换、特征生成、性能评估等算法。这些算法主要是基于Spark实现的。

  • 一个基于gui的Machine Learning Studio系统:允许用户创建、配置、提交、监视和分享他们的机器学习过程。机器学习库中的所有算法都可以在Studio系统中进行访问和配置。它们是构建机器学习任务的关键构件。
    这里写图片描述

  • 执行任务的云服务。我们基于Hadoop和Spark的开源大数据平台构建服务。为了构建一个平台,我们在Docker上组织了一个服务器集群。从GUI接收任务DAG后,每个节点将自动调度,在所有依赖数据源就绪后运行。节点上的算法会根据它们的实现在Linux、Spark或map - reduce中运行。
    这里写图片描述

如何包含到我的工程?

pull整个项目,并准备一些必要的环境和开发工具。

如何使用Easy Machine Learning Studio

启动EasyML工程后,访问:http://localhost:18080/EMLStudio.html,使用账号[email protected] 密码: bdaict。推荐使用Chrome打开。
这里写图片描述
如下图所示,用户可以使用页面左侧面板中列出的算法和数据集创建机器学习任务(dataflow DAG)。可以选择点击程序和数据面板中列出的算法和数据集。还可以单击作业面板,选择现有任务,克隆它,并进行必要的修改。用户可以在右侧面板中配置每个节点的任务信息和参数值。任务中的节点可以对应于独立的Linux程序或运行在Spark或Hadoop map - reduce上的分布式程序。
这里写图片描述
在单击submit按钮之后,该任务将提交到云上运行。每个节点的状态用不同的颜色表示,如下图所示。
这里写图片描述
用户可以右击完成执行节点的绿色输出端口预览输出数据。可以从每个完成执行节点的右击菜单中检查stdout和stderr日志。用户可以通过右键单击相应的输出端口来检查节点的输出。在执行过程中打印的标准输出和标准错误信息可以通过右击相应的节点来检查,并选择菜单显示STDOUT和Show STDERR。
这里写图片描述
完成的(无论成功与否)任务可以被进一步修改并重新提交以运行,如下图所示。我们的系统只会安排受影响的节点运行。未受影响节点的输出被直接重用,以节省运行时间和系统资源。
这里写图片描述
用户可以上传自己的算法包和数据集,用于创建自己的任务或与其他用户共享。通过单击upload program按钮,弹出窗口允许用户指定算法包的必要信息,包括名称、类别、描述和命令行模式字符串等,如下图所示。最重要的是用预定义的格式编写命令行模式字符串。它定义了一个节点的输入端口、输出端口和参数设置。我们在面板中开发了一个工具,帮助用户编写命令行字符串模式。通过点击上传数据按钮,用户可以上传一个类似于上传算法包的数据集。
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章