机器学习方法及系统与流程

文档序号:14991541发布日期:2018-07-20 22:19阅读:186来源:国知局
本发明涉及计算机领域,具体涉及一种机器学习方法及系统。
背景技术
:随着大数据时代的到来面向大数据场景的各种解决方案也应运而生,其中使用机器学习方法实现海量数据挖掘是主要的方案,它主要用于从数据中学习数据的规律,并产生模型,应用模型到场景中进行预测。机器学习的优劣依赖于特征数据的选取以及加工,在传统行业(如电力,石油等)中的机器学习领域中所面对的数据虽然是企业几十年积累得来,但数据的量级也只有百万级,因此进行特征数据的选取与加工时无论何种方式都能够取得不错的效果。然而在电子商务这种新兴互联网行业中,往往每天就能够产生上亿级别的数据。当机器学习遇到上亿级别的海量数据时,如何做好特征数据便成了一个重要的议题。现有的机器学习系统如图1所示,包括获取模块102和生成模块103。获取模块102为特征数据的采集模块,通过数据提取脚本1021从各个不同的数据源抓取数据存储到大数据文件系统1022,接着从大数据文件系统1022中提取数据整合后生成数据文件1023,并将数据文件1023提交到模块103。生成模块103基于多个数据文件1023进行机器学习,生成模型文件1033。但在实际应用中发现,现有的机器学习系统存在一些缺点,例如,数据文件1023虽然经过初步整合,但数据量依然很大,从而导致模块103进行机器学习的时候需要占用较多的资源,这直接影响了机器学习的效率。技术实现要素:有鉴于此,本发明提供一种机器学习方法及系统,将特征数据转换为libsvm格式后进行机器学习,解决了机器学习中由于资源占用过多影响学习效率的问题。根据本发明实施例的第一方面,本发明实施例提供一种机器学习方法,包括:获取特征数据;将所述特征数据转换为libsvm格式的特征数据;以及基于所述libsvm格式的特征数据生成机器学习模型。优选地,所述将所述特征数据转换为libsvm格式的特征数据包括:根据预定义的转换规则,将所述特征数据中的每个值均转换为libsvm格式,从而将将所述特征数据转换为libsvm格式的特征数据。优选地,还包括:在所述基于libsvm格式的特征数据生成机器学习模型之前,将所述libsvm格式的特征数据划分为训练数据和测试数据;则所述基于所述libsvm格式的特征数据生成机器学习模型包括:基于所述训练数据进行机器训练,生成机器学习模型;基于所述测试数据测试所述机器学习模型,以确定所述机器学习模型是否达到预设要求。优选地,还包括:只存储达到预设要求的所述机器学习模型。优选地,还包括:在所述将所述特征数据转换为libsvm格式的特征数据之前,将所述特征数据进行数据清洗和加工。根据本发明实施例的第二方面,本发明实施例提供一种机器学习系统,包括:获取模块,用于获取特征数据;转换模块,用于将所述特征数据转换为libsvm格式的特征数据;生成模块,用于基于所述libsvm格式的特征数据生成机器学习模型。优选地,所述转换模块包括:根据预定义的转换规则,将所述特征数据中的每个值均转换为libsvm格式,从而将将所述样本文件转换为libsvm格式的数据文件。优选地,还包括:划分模块,用于将所述libsvm格式的特征数据划分为训练数据和测试数据;则所述生成模块包括:模型生成单元,用于基于所述训练数据进行机器训练,生成机器学习模型;验证单元,用于基于所述测试数据测试所述机器学习模型,以确定所述机器学习模型是否达到预设要求。优选地,还包括:存储模块,用于只存储达到预设要求的所述机器学习模型。优选地,还包括:预处理模块,用于将所述特征数据进行数据清洗和加工。本实施例中提供的机器学习方法,将特征数据转换为libsvm格式后进行机器学习,由于libsvm格式的数据在机器学习以稀疏矩阵的形式存储和计算,由此机器训练时需要处理的数据量大大减少,从而减少了资源占用,并进一步提高计算效率。附图说明通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是现有的机器学习系统的示意性框图;图2是根据本发明实施例的机器学习系统的示意性框图;图3是根据本发明实施例的将关系型数据转换为libsvm格式的数据的一个示例;图4是根据本发明实施例的机器学习方法的流程图;图5是根据本发明另一实施例的机器学习方法的流程图。具体实施方式以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。本文中提及的术语解释如下:[资源]:在进行机器学习或数据挖掘计算时所使用的cpu、内存和硬盘等统称为资源。[稀疏矩阵]:矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,则称该矩阵为稀疏矩阵(sparsematrix);。图2是根据本发明实施例的机器学习系统的示意性框图。参考图2,机器学习系统包括获取模块202、生成模块203和转换模块204。其中,获取模块202、生成模块203和图1的实施例中的模块102和103相同,不同之处在于转换模块204。转换模块204接收获取模块202输出的特征数据2043,并将特征数据2043进行格式转换,转换为libsvm格式的特征数据,进而将libsvm的数据文件输出到生成模块203中,生成模块203基于简化后的特征数据进行模型训练,生成机器学习模型。libsvm格式是当今机器学习领域中的一种主要数据格式。这种格式可以将数据以标签和索引的方式进行存储,对于转换前为空值的数据也能够在转换中进行舍弃,最终形成标签与索引形式的稀疏矩阵提交给算法进行计算。转换后能够有效降低数据的存储量,另外将全部数据数值化也能够使机器学习算法的计算成本降低,同时提升算法能够接收的数据量。图3是根据本发明实施例的将关系型数据转换为libsvm格式的数据的一个示例。关系型数据以二维表的形式存储,其每一列都要与一个规则对应。这些规则一般被存储成文本文件,其表征了特征数据和转换后的数据之间映射关系。转换的过程是每条规则将关系型数据解析为特征索引与特征值对应的形式。图3中的原始数据如表1所示。表1targetcol1col2col3034北京880,0,1|881,1,0132天津334,0,1|221,1,0转换规则文件内容如下:1.col1:*;2.col2:北京,天津,上海,广州;3.col3:browse_flag,search_flag,addtocart_flag。在上述转换规则文件中,每一个以数字开头的行代表关系型数据中的一列。如果该列是字符型,那么文件中对应的就是该列的枚举值;如果该列是数值型,那么文件中只映射该列的列值;如果该字段是由多种情况相同单位的属性集组合列,那么文件映射是属性集组合列。从而根据原始数据和转换规则文件,col1则解析为<index>:字段内数值;col2则解析为<index>:如果字段内的字符在枚举范围内,则为1,否则为0;col3则将每种情况拆分开,再将每种情况下的属性赋予不同的<index>,如:880,0,1|881,1,0转化为<index1>:0,<index2>:1,<index3>:1,<index4>:0。最终得到如图3所示的libsvm格式的数据文件。可以理解的是,图3只是一种转换规则的示例,也可以定义其他形式的转换规则,并应用其将特征数据转换为机器学习易于理解和存储的libsvm格式的数据,以提高机器学习的效率。图4是根据本发明实施例的机器学习方法的流程图。所述机器学习方法包括以下步骤。在步骤401中,获取特征数据。特征数据可以是从任何地方使用任何手段收集来的数据,其收集的主要方式主要有数据采集、问卷调查、系统产生等,现在企业中进行机器学习或数据挖掘工作通常是从成熟的数据仓库中提取数据生成特征数据。该特征数据一般是二维表数据。在步骤402中,将特征数据转换为libsvm格式的特征数据。将特征数据进行格式转换,生成libsvm格式的数据。优选的是,预先定义一个转换规则,将转换规则中的每个规则和数据文件中的数据匹配,从而生成libsvm格式的数据。在步骤403中,基于libsvm格式的数据文件生成机器学习模型。基于libsvm格式的数据文件进行机器学习,生成机器学习模型。本实施例中提供的机器学习方法,将特征数据转换为libsvm格式后进行机器学习,由于libsvm格式的数据在机器学习以稀疏矩阵的形式存储和计算,由此机器训练时需要处理的数据量大大减少,从而减少了资源占用,并进一步提高计算效率。应该指出的是,虽然上述机器学习方法包括了数据转换和机器训练的步骤,但两者在实际处理没有关联,可以将两者作为各自独立的子系统,分别部署在不同的服务器上,利于调整和测试每个子系统的功能,并实现子系统之间的松耦合。图5是根据本发明另一实施例的机器学习方法的流程图。所述机器学习方法包括以下步骤。在步骤501中,获取特征数据。本步骤和步骤401相同,这里就不再赘述。在步骤502中,进行数据清洗和加工。数据清洗是指发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。数据加工包括例如根据机器学习需求加工数据以使数据更符合机器学习算法的要求。在步骤503中,根据转换规则将特征数据转换为libsvm格式。在步骤504中,数据拆分,将特征数据分为训练数据和测试数据。在步骤505中,基于训练数据进行机器训练,获得机器学习模型。在步骤506中,基于测试数据进行测试验证,以确定机器学习模型是否达到预设要求。特征数据为用于机器学习的数据。在上述步骤中,可以将特征数据划分为训练数据和测试数据,其中,训练数据用于进行算法训练,生成机器学习模型,测试数据属于用于验证生成的机器学习模型。可以根据验证结果判断生成的机器学习模型是否满足预设要求。例如,规定准确率超过预设阈值的机器学习模型为满足预设要求的模型。如果生成的机器学习模型不满足预设要求,从本步骤跳转到步骤502,重新加工数据,并基于新加工的数据生成新的机器学习模型。在步骤507中,存储达到预设要求的机器学习模型。将满足要求的机器学习模型存储到例如大数据文件系统,用于后续的预测场景。本发明实施例提供的机器学习方法,基于转换后的libsvm格式的特征数据进行机器训练和测试验证,减少了资源占用,进一步提高计算效率。进一步地,可以将特征数据中的特征数据划分为若干子集,并发地执行基于每个子集的机器训练,以生成多个机器学习模型,并通过多组测试数据对每个机器学习模型进行测试验证,从而获得其中表现较好的机器学习模型。系统的各个模块或模块可以通过硬件、固件或软件实现。软件例如包括采用java、c/c++/c#、sql等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。根据本发明的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能模块、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过internet连接的多个pc机、pc服务器、刀片机、超级计算机等。以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1