机器学习方法及系统的制作方法

文档序号:6622387阅读:202来源:国知局
机器学习方法及系统的制作方法
【专利摘要】本发明涉及一种机器学习方法,包括如下步骤:对来自不同数据源的数据进行预处理;对上述预处理后的数据进行特征提取以得到特征量;将上述特征提取的特征量转换为二进制文件格式进行存储;根据用户输入或选择的算法和参数,通过统一的接口将上述存储的二进制文件交给Hadoop系统或者GraphLab系统进行计算处理。本发明还涉及一种机器学习系统。本发明不仅能够处理易切分的普通数据集,还能够处理数据依赖性强的图数据,具有更多的选择和灵活性,而且提供更加简洁统一的接口,能够有效降低开发人员的学习难度。
【专利说明】
机器学习方法及系统

【技术领域】
[0001]本发明涉及一种机器学习方法及系统。

【背景技术】
[0002]目前已有的大数据处理系统主要有两种:一种是基于MapReduce模型的Hadoop系统,另一种是基于图计算模型的GraphLab系统。
[0003]其中,MapReduce模型是把海量数据切分为相对独立的多个子数据集,然后将这些子数据集分配到分布式集群上进行大规模并行计算,最后再将各个机器的计算结果收集起来,从而得到最终的计算结果。这个模型的原理决定了它只擅长处理一种数据,也即可以被切分为相对独立的各个子部分的数据集,而对于数据依赖性较强的其他类型的计算任务就显得无能为力。
[0004]而GraphLab系统则是基于图模型。它将一个大图按照图分割的算法分割为多个关联度较低的子图,然后在各个子图之间进行并行计算。图数据是一种数据关联性很强的数据,因此它在一定程度上弥补了 Hadoop的不足。
[0005]然而,MapReduce模型和图模型都十分复杂,理解起来十分困难。基于这两种模型实现的大规模机器学习系统,则更是繁琐。更糟糕的是,这两种模型的差别导致了相对应的机器学习系统有巨大的差别,它们的接口完全不同。开发人员需要彻底理解两种模型后,再学习两个完全不同的系统开发,内容多,难度大,学习曲线十分陡峭,严重阻碍了大规模机器学习系统的应用。


【发明内容】

[0006]有鉴于此,有必要提供一种机器学习方法及系统。
[0007]本发明提供一种机器学习方法,该方法包括如下步骤:对来自不同数据源的数据进行预处理;对上述预处理后的数据进行特征提取以得到特征量;将上述特征提取的特征量转换为二进制文件格式进行存储;根据用户输入或选择的算法和参数,通过统一的接口将上述存储的二进制文件交给Hadoop系统或者GraphLab系统进行计算处理。
[0008]其中,该方法还包括:信息提示以及用户交互:所述信息提示指向用户展示当前系统的运行状态、运行进度,并提示用户进行相关的变量设置;所述用户交互包括:标准输入和配置文件输入两种方式。
[0009]该方法还包括:提供统一的接口。
[0010]该方法还包括:权限认证,通过身份认证的用户才能够使用该系统提供的服务。
[0011]所述数据包括:文本数据、视频数据及图数据;所述预处理包括:数据清洗、数据集成、数据规约。
[0012]本发明还提供一种机器学习系统,该系统包括预处理模块、特征提取模块、转换模块及处理模块,其中:所述预处理模块用于对来自不同数据源的数据进行预处理;所述特征提取模块用于对上述预处理后的数据进行特征提取以得到特征量;所述转换模块用于将上述特征提取的特征量转换为二进制文件格式进行存储;所述处理模块用于根据用户输入或选择的算法和参数,通过统一的接口将上述存储的二进制文件交给Hadoop系统或者GraphLab系统进行计算处理。
[0013]其中,该系统还包括交互模块用于:信息提示以及用户交互:所述信息提示指向用户展示当前系统的运行状态、运行进度,并提示用户进行相关的变量设置;所述用户交互包括:标准输入和配置文件输入两种方式。
[0014]该系统还包括接口封装模块用于:提供统一的接口。
[0015]该系统还包括认证模块用于:权限认证,通过身份认证的用户才能够使用该系统提供的服务。
[0016]所述数据包括:文本数据、视频数据及图数据;所述预处理包括:数据清洗、数据集成、数据规约。
[0017]本发明机器学习方法及系统,封装了 Hadoop和GraphLab的所有功能,不仅能够处理易切分的普通数据集,还能够处理数据依赖性强的图数据,具有更多的选择和灵活性,而且提供更加简洁统一的接口,能够有效降低开发人员的学习难度。

【专利附图】

【附图说明】
[0018]图1为本发明机器学习方法的流程图;
[0019]图2为本发明的系统架构图;
[0020]图3为本发明机器学习系统的硬件架构图。

【具体实施方式】
[0021 ] 下面结合附图及具体实施例对本发明作进一步详细的说明。
[0022]参阅图1所示,是本发明机器学习方法较佳实施例的作业流程图。
[0023]步骤S401,对来自不同数据源的数据进行预处理。其中,所述数据包括:文本数据、视频数据及图数据。所述预处理包括:数据清洗、数据集成、数据规约。具体而言:
[0024]所述数据清洗指:剔除严重不完整的数据,比如文本数据中包含不完整的字段项,则直接删除该条记录。
[0025]所述数据规约指:将来自不同数据源的数据的格式进行统一:将每个文本数据转化为一行进行表达;将每条视频数据转换为一个文件进行存储;将图数据转化为通用的EdgeList格式,也即每行包含两个顶点、一条边以及该边的权值。
[0026]所述数据集成指:将规约后的来自不同数据源的数据集成到相同的数据文件中。
[0027]步骤S402,对上述预处理后的数据进行特征提取以得到特征量。具体而言:
[0028]对于所述文本数据、所述视频数据每行为一条记录,对于所述图数据则每行为一条边,以行为单位进行特征提取,最终将文本数据、视频数据、图数据都转化为数字形式表述。进一步地,对所述文本数据、所述视频数据及所述图数据处理如下:
[0029]文本数据特征提取:采用向量空间模型(Vector Space Model, VSM)提取出用于表达每条文本数据的数学量。
[0030]视频数据特征提取:通过灰度共生矩阵方法,将每条视频数据压缩为一个矩阵以表达该视频具有的数学本质。
[0031]图数据特征提取:将不同含义的图数据抽象为图的顶点和边,从而得到数学意义上的抽象图。比如将人抽象为顶点,将人与人之间的关系抽象为边,从而得到人际关系的数学抽象。
[0032]步骤S403,将上述特征提取的特征量转换为二进制文件格式进行存储。这是由于海量数据的读写在大规模数据分析中往往是性能瓶颈之一,高效的压缩文件格式能够节约读与时间,提闻运行效率和性能。
[0033]步骤S404,信息提示以及用户交互。所述信息提示指向用户展示当前系统的运行状态、运行进度,并提示用户进行相关的变量设置:选择想要使用的算法和平台。所述用户交互包括:标准输入和配置文件输入两种方式。所述标准输入指通过键盘输入,所述配置文件输入指通过编辑XML格式的配置文件来控制变量信息。
[0034]步骤S405,根据用户交互时的输入或选择,对上述以字符格式存储的数据,也即二进制文件,进行计算处理。
[0035]通过步骤S404的用户交互,确定需要使用的算法和参数,然后通过统一的接口将计算任务交互给Hadoop系统或者GraphLab系统进行计算。如图2所示Dolphin部件提供任务分发、参数转换、接口转换、任务管理、多线程加速等功能。当任务到来时,它根据用户选定的平台和算法,决定将任务分发给哪个底层系统进行处理;然后从用户设定的变量中解析参数,并且将参数转化为一个统一的字符串格式;并且将任务记录在数据库中,以备能够查询其进度和必要时停止;当有多个任务同时开启时,可以开启多个线程,每个线程负责对一个任务进行管理。图2中OS是操作系统,JDK是基于java技术的开发套件,Hadoop是基于可分割数据流的大数据处理系统,Mahout是基于Hadoop开发的一套机器学习算法库,GraphLab是基于图模型的机器学习系统。
[0036]步骤S406,为本发明提供统一的接口,对下层的Hadoop以及GraphLab进行进一步抽象,从而避免开发者必须学习两种不同的模型和两套完全不同的编程接口,降低了学习难度。
[0037]首先按照两种系统提供的算法功能将其分为分类、聚类、预测、关联分析四类,然后分别对于每一类功能都按照具体算法名称构造新函数,最后将所有函数的参数转化为字符串形式进行统一。
[0038]步骤S407,权限认证,使得通过身份认证的用户才能够使用该系统提供的服务,从而保证了系统安全。本实施例由图2中Tomcat和RESTfulAPI构成。该步骤基于Tomcat容器实现。将本发明部署在Tomcat容器内,并且基于广泛应用的HTTP协议,实现了如下RESTful API:
[0039]〈protocol〉://〈ip>:〈port〉/〈website〉/〈service〉 ! 〈method〉? <uid> = <value>&〈token> = <value>&<paramters> = <value>
[0040]其中,protocol可以是http或者https, website为部署时选定的名称,service为用户设定的平台和算法,method是相关调用函数,而uid和token用于用户身份验证,parameters是用户交互提供的计算参数。用户通过发起HTTP请求即可直接调用该服务。
[0041]参阅图2所示,是本发明机器学习系统的硬件架构图。该系统包括预处理模块、特征提取模块、转换模块、交互模块、处理模块、接口封装模块及认证模块。
[0042]所述预处理模块用于对来自不同数据源的数据进行预处理。其中,所述数据包括:文本数据、视频数据及图数据。所述预处理包括:数据清洗、数据集成、数据规约。具体而言:
[0043]所述数据清洗指:剔除严重不完整的数据,比如文本数据中包含不完整的字段项,则直接删除该条记录。
[0044]所述数据规约指:将来自不同数据源的数据的格式进行统一:将每个文本数据转化为一行进行表达;将每条视频数据转换为一个文件进行存储;将图数据转化为通用的EdgeList格式,也即每行包含两个顶点、一条边以及该边的权值。
[0045]所述数据集成指:将规约后的来自不同数据源的数据集成到相同的数据文件中。
[0046]所述特征提取模块用于对上述预处理后的数据进行特征提取以得到特征量。具体而目:
[0047]对于所述文本数据、所述视频数据每行为一条记录,对于所述图数据则每行为一条边,以行为单位进行特征提取,最终将文本数据、视频数据、图数据都转化为数字形式表述。进一步地,对所述文本数据、所述视频数据及所述图数据处理如下:
[0048]文本数据特征提取:采用向量空间模型(Vector Space Model, VSM)提取出用于表达每条文本数据的数学量。
[0049]视频数据特征提取:通过灰度共生矩阵方法,将每条视频数据压缩为一个矩阵以表达该视频具有的数学本质。
[0050]图数据特征提取:将不同含义的图数据抽象为图的顶点和边,从而得到数学意义上的抽象图。比如将人抽象为顶点,将人与人之间的关系抽象为边,从而得到人际关系的数学抽象。
[0051]所述转换模块用于将上述特征提取的特征量转换为二进制文件格式进行存储。这是由于海量数据的读写在大规模数据分析中往往是性能瓶颈之一,高效的压缩文件格式能够节约读与时间,提闻运行效率和性能。
[0052]所述交互模块用于提供信息提示以及用户交互。所述信息提示指向用户展示当前系统的运行状态、运行进度,并提示用户进行相关的变量设置:选择想要使用的算法和平台。所述用户交互包括:标准输入和配置文件输入两种方式。所述标准输入指通过键盘输入,所述配置文件输入指通过编辑XML格式的配置文件来控制变量信息。
[0053]所述处理模块用于对上述以字符格式存储的数据,也即二进制文件,根据用户交互时的输入或选择进行计算处理。
[0054]通过所述交互模块的用户交互,确定需要使用的算法和参数,然后通过统一的接口将计算任务交互给Hadoop系统或者GraphLab系统进行计算。如图2所示Dolphin部件提供任务分发、参数转换、接口转换、任务管理、多线程加速等功能。当任务到来时,它根据用户选定的平台和算法,决定将任务分发给哪个底层系统进行处理;然后从用户设定的变量中解析参数,并且将参数转化为一个统一的字符串格式;并且将任务记录在数据库中,以备能够查询其进度和必要时停止;当有多个任务同时开启时,可以开启多个线程,每个线程负责对一个任务进行管理。图2中OS是操作系统,JDK是基于java技术的开发套件,Hadoop是基于可分割数据流的大数据处理系统,Mahout是基于Hadoop开发的一套机器学习算法库,GraphLab是基于图模型的机器学习系统。
[0055]所述接口封装模块用于为本发明提供统一的接口,对下层的Hadoop以及GraphLab进行进一步抽象,从而避免开发者必须学习两种不同的模型和两套完全不同的编程接口,降低了学习难度。
[0056]首先按照两种系统提供的算法功能将其分为分类、聚类、预测、关联分析四类,然后分别对于每一类功能都按照具体算法名称构造新函数,最后将所有函数的参数转化为字符串形式进行统一。
[0057]所述认证模块用于权限认证,使得通过身份认证的用户才能够使用该系统提供的服务,从而保证了系统安全。本实施例由图2中Tomcat和RESTful API构成。该步骤基于Tomcat容器实现。将本发明部署在Tomcat容器内,并且基于广泛应用的HTTP协议,实现了如下 RESTfulAPI:
[0058]<protocol>://<ip>:<port>/<website>/<service> ! <method> ? <uid> = <value>&〈token> = <value>&<paramters> = <value>
[0059]其中,protocol可以是http或者https,website为部署时选定的名称,service为用户设定的平台和算法,method是相关调用函数,而uid和token用于用户身份验证,parameters是用户交互提供的计算参数。用户通过发起HTTP请求即可直接调用该服务。
[0060]本发明封装了 Hadoop系统和GraphLab系统的所有功能,比仅仅使用Hadoop系统或者GraphLab系统具有更多的选择和灵活性。其次本发明提供了统一简洁的接口,隐藏了两种系统的复杂度,从而避免了开发人员需要学习两种完全不同的系统,极大的降低了学习难度。再次基于RESTful的服务使得该机器学习系统能够无缝迁移到几乎所有平台上,适用性广。另外,本发明提出的机器学习系统能够处理文本、视频、图数据等多种异构数据,具有明显优势。
[0061]虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。
【权利要求】
1.一种机器学习方法,其特征在于,该方法包括如下步骤: 对来自不同数据源的数据进行预处理; 对上述预处理后的数据进行特征提取以得到特征量; 将上述特征提取的特征量转换为二进制文件格式进行存储; 根据用户输入或选择的算法和参数,通过统一的接口将上述存储的二进制文件交给Hadoop系统或者GraphLab系统进行计算处理。
2.如权利要求1所述的方法,其特征在于,该方法还包括: 信息提示以及用户交互:所述信息提示指向用户展示当前系统的运行状态、运行进度,并提示用户进行相关的变量设置;所述用户交互包括:标准输入和配置文件输入两种方式。
3.如权利要求1所述的方法,其特征在于,该方法还包括:提供统一的接口。
4.如权利要求3所述的方法,其特征在于,该方法还包括:权限认证,通过身份认证的用户才能够使用该系统提供的服务。
5.如权利要求1所述的方法,其特征在于,所述数据包括:文本数据、视频数据及图数据;所述预处理包括:数据清洗、数据集成、数据规约。
6.一种机器学习系统,其特征在于,该系统包括预处理模块、特征提取模块、转换模块及处理模块,其中: 所述预处理模块用于对来自不同数据源的数据进行预处理; 所述特征提取模块用于对上述预处理后的数据进行特征提取以得到特征量; 所述转换模块用于将上述特征提取的特征量转换为二进制文件格式进行存储; 所述处理模块用于根据用户输入或选择的算法和参数,通过统一的接口将上述存储的二进制文件交给Hadoop系统或者GraphLab系统进行计算处理。
7.如权利要求6所述的系统,其特征在于,该系统还包括交互模块用于: 信息提示以及用户交互:所述信息提示指向用户展示当前系统的运行状态、运行进度,并提示用户进行相关的变量设置;所述用户交互包括:标准输入和配置文件输入两种方式。
8.如权利要求6所述的系统,其特征在于,该系统还包括接口封装模块用于:提供统一的接口。
9.如权利要求8所述的系统,其特征在于,该系统还包括认证模块用于:权限认证,通过身份认证的用户才能够使用该系统提供的服务。
10.如权利要求6所述的系统,其特征在于,所述数据包括:文本数据、视频数据及图数据;所述预处理包括:数据清洗、数据集成、数据规约。
【文档编号】G06F17/30GK104166701SQ201410379539
【公开日】2014年11月26日 申请日期:2014年8月4日 优先权日:2014年8月4日
【发明者】涂继业, 张涌, 宁立 申请人:深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1