一种通用机器学习数据分析平台转让专利

申请号 : CN201611075837.8

文献号 : CN106779087B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈予言倪时龙苏江文王秋琳

申请人 : 福建亿榕信息技术有限公司国家电网公司国网信息通信产业集团有限公司国网信通亿力科技有限责任公司

摘要 :

本发明提供一种通用机器学习数据分析平台,包括界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块以及选择优化模块;所述特征提取模块根据用户设定的特征参数从所述待分析数据中提取所述特征参数;所述特征转换模块用于将用户设定的特征转换成用户所需的表示形式;所述算法模块包含多种算法模型供用户选择以及供用户构建模型,用户构建至少一组模型;所述选择优化模块从构建好的模型中选出最优的模型和最优的参数,然后保存所述最优的模型;上述各模块产生的数据均存储于所述数据存储模块中。本发明用户可以自由组合使用各个模块与算法模型,还可以建立复合模型,快速迭代开发出新型分析模型,大大提高工作效率。

权利要求 :

1.一种通用机器学习数据分析平台,其特征在于:包括界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块以及管理模块;

所述界面模块提供数据输入接口,参数配置接口,结构配置界面以及分析结果展示;

所述预处理模块接收来自所述数据输入接口传入的原始数据,然后将其转换成矩阵的表示方式,存入所述数据存储模块;将所述矩阵表示方式的数据定义为待分析数据;

所述特征提取模块根据用户设定的特征参数从所述待分析数据中提取所述特征参数,供模型训练时使用;若待分析数据需要执行特征提取,则进入特征提取模块;若不需要,则进入特征转换模块;

所述特征转换模块用于将用户设定的特征转换成用户所需的表示形式,目的是为了优化输入的特征参数,以提高模型训练的精度或模型训练的速度;若不需要执行特征转换,则进入算法模块;

所述算法模块包含多种算法模型供用户选择以及供用户构建训练模型,用户构建至少一组训练模型;

所述选择优化模块从构建好的训练模型中通过模型训练选出最优的模型和最优的参数,然后保存所述最优的训练模型,将所述最优的训练模型定义为最优模型;

通过所述选择优化模块选出最优模型后,用户就可以设定使用该最优模型对待分析数据进行分析;

所述预处理模块、特征提取模块、特征转换模块、算法模块以及选择优化模块产生的数据均存储于所述数据存储模块中;

所述管理模块,用于管理机器学习的任务的调度与分配,管理自发现服务,所谓自发现服务为:分布式部署所述数据分析平台的八大模块,分别是:界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块以及管理模块,所述八大模块中除管理模块外的任意一所述模块启动后,会通知所述管理模块,所述管理模块接到所述通知后,将其纳入管理之下;所述八大模块中,除管理模块外的各模块之间定时都会向所述管理模块报告当前状态,如果所述各模块中有一任意模块超过设定的时间没有发送报告,则认为该模块下线,任务将不会分配到该模块上;通过分布式部署所述八大模块及管理模块的自发现服务,使得所述数据分析平台能够快速完成动态扩展。

2.如权利要求1所述的一种通用机器学习数据分析平台,其特征在于:还包括降维模块,所述降维模块配合特征转换模块、算法模块或输出数据时使用,用以降低数据的维度;

当特征转换模块执行过程时,需要降低特征参数的维度,则调用所述降维模块;当算法模块执行过程中,需要降低过程数据的维度,则调用所述降维模块;当预处理模块、特征提取模块、特征转换模块、算法模块或选择优化模执行结束需要输出数据时,需要降低输出数据的维度,则调用所述降维模块。

3.如权利要求1所述的一种通用机器学习数据分析平台,其特征在于:所述预处理模块的所述原始数据的预处理方式包括:数据清洗、格式转换、过采样、正则化或二值化。

4.如权利要求1所述的一种通用机器学习数据分析平台,其特征在于:所述特征提取模块包含TF-IDF转换模块,特征计数转换模块、word2vec词向量转换模块。

5.如权利要求1所述的一种通用机器学习数据分析平台,其特征在于:所述算法模块包含回归模型、分类模型和/或聚类模型。

6.如权利要求5所述的一种通用机器学习数据分析平台,其特征在于:所述回归模型包括线性回归算法、逻辑回归算法、多项式回归算法、Stepwise Regression逐步回归算法、Ridge Regression岭回归算法、Lasso Regression套索回归算法以及ElasticNet回归算法。

7.如权利要求5所述的一种通用机器学习数据分析平台,其特征在于:分类模型包括支持向量机(SVM)算法、K最近邻(KNN)算法、决策树(Decision Tree算法、集成学习算法、人工神经网络算法以及朴素贝叶斯算法。

8.如权利要求5所述的一种通用机器学习数据分析平台,其特征在于:所述聚类模型包括K-Means算法和谱聚类算法。

9.如权利要求1所述的一种通用机器学习数据分析平台,其特征在于:所述选择优化模块包括交叉验证模块和网格搜索模块。

10.根据权利要求1所述一种通用机器学习数据分析平台,其特征在于:所述数据存储模块为:分布式存储平台或分布式数据库。

11.根据权利要求1或2所述一种通用机器学习数据分析平台,其特征在于:所述界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块、管理模块以及降维模块的通信接口均采用restful接口,便于接入企业现有的业务系统。

12.根据权利要求1或2所述一种通用机器学习数据分析平台,其特征在于:所述界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块、管理模块以及降维模块的通信方式采用消息队列方式,便于接入企业现有的业务系统。

说明书 :

一种通用机器学习数据分析平台

【技术领域】

[0001] 本发明涉及一种计算机领域,特别涉及一种通用机器学习数据分析平台。【背景技术】
[0002] 当今无疑是数据大爆发的时代,不论是国家,组织还是个人都在源源不断的生产着数据。数据分析的技术简单来说就是以发现有用信息,知识和洞察为目的,进行数据收集,处理,清洗,统计计算,以支持决策制定。比如联合国会根据各国GPD来分配人道援助资金,美联储会根据就业指数来决定是否加息,福建省会根据气象数据预测台风,如此这般。智慧的人们通过各种手段获取了数据,并且根据对这些数据的加工,处理与分析以引导出未来的决策。可以说数据分析技术已经成为各种科学里的重中之重,渗透在各行各业之中,成为社会发展进步的关键动力。
[0003] 所谓数据分析,是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。数据分析是数学与计算机科学相结合的产物。随着机器学习技术的发展,在数据分析领域大放异彩,压倒了传统的统计学方法,成为主流。
[0004] 机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点到以“知识”为重点,再到以“学习”为重点,一条自然、清晰的脉络。显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。
算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。
[0005] 面对如此多样化的数据,想要从中萃取出对于有益的决策,需要根据不同的数据与目标调整预处理模式,分析方法与分析模型等等方面。
[0006] 现有技术方案一:针对单一目的机器学习分析系统
[0007] 大量的专利与技术方案都是拘泥于其使用者自身的需求所设计的的,例如某电商平台的用户喜好分析,电力系统数据分析平台,医学上的基因分析等等。从应用层面来说,这些方案所构建的系统都是只能针对特定目来设计的,如果数据类型有变化,或者分析需求有变化,难免需要对其进行修改,需要耗费极大的人力进行不断修改。从系统层面来说,这种针对特定目的的分析系统,程序接口不统一,不同系统之间无法相互通信。而且由于高度定制化,导致缺乏泛用性,可移植性与复用能力,是资源的一种浪费。从开发层面来说,由于机器学习技术纷繁负责,开发工具与框架甚广,许多算法难度较大,涉及数学与计算机科学,要求具有较高素质的专业人员进行开发设计。
[0008] 现有技术方案二:全自动化机器学习平台
[0009] 如CN201010017918-一种云计算环境下机器学习自动选择方法所述,其方案搭建了一种傻瓜式的机器学习平台,将机器学习步骤全部自动化。它使用户无需搭建机器学习环境,也无需学习理解机器学习算法,不需要调整学习参数,直接通过web上传数据样本,自行选择模型构建。简单来说也就是三步走:自动识别模式,构建模型,执行分析任务。但是其使用模型单一,不能使用多模型串并联分析,对数据操作的自由度大大下降,其中最大的缺点是无法进行深度分析与高度优化。通常,模型的选择与构建需要数据分析员的经验,已经对源数据进行多方面的尝试,整合多种模型,特征提取方式也是多种多样,目前无法通过机器识别自动实现,只能做初步的选择。所以此专利只适用于对于机器学习不了解的一般人使用,对于简单的分析任务确实可以胜任。但是商业化公司、企业、科研单位等数据纷繁复杂,需要高性能,高灵活性,高可复用性,快速迭代的数据分析任务时,由于过于简单的自动化系统,这些需求往往无法得到满足。
[0010] 如上所述,现有的数据分析系统主要技术方案有两种,其中追求高性能、高准确度时,通常需要专业人员耗费大量人力建设特定的系统,系统只局限于当前使用场景,不可移植,维护升级成本高昂;当追求简单易用时,通常采用自动化检测数据集,自动选择模型训练分析的方式。这种方式只适合普通用户的粗略分析目的,对研究与开发人员不友好,操作自由度低,并不适用于需要高准确度,高性能的企业,科研单位。
[0011] 另外,对于高性能且通用性强的数据分析平台,其机器学习训练时经常需要大量的数据输入,并且过程数据所需的容量也十分巨大,如何高效的传输数据也是本系统的一个难点。如果直接让模块之间传递数据,有以下几个问题:一、网络带宽限制,如果同时进行多组在线训练,大数据传输在没有有效调度的情况下会极大降低运行效率。二、直接传输数据,模块之间需要知晓对方的通讯地址,不利于分布式部署。【发明内容】
[0012] 本发明要解决的技术问题,在于提供一种通用机器学习数据分析平台,其内置大量常用算法模型,基本适用于所有数据分析任务。数据分析人员可以自由组合使用各个模块与算法模型,每次构建好的模型,又可作为其他模型的基石,建立复合模型,快速迭代开发出新型分析模型,大大提高工作效率。且本发明各个模块之间使用restful接口通讯,过程数据保存在分布式存储或分布式数据库上,保证各个模块的无状态性,方便分布式部署。
[0013] 本发明是通过以下技术方案解决上述技术问题的:
[0014] 一种通用机器学习数据分析平台,包括界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块以及管理模块;
[0015] 所述界面模块提供数据输入接口,参数配置接口,结构配置界面以及分析结果展示;
[0016] 所述预处理模块接收来自所述数据输入接口传入的原始数据,然后将其转换成矩阵的表示方式,存入所述数据存储模块;将所述矩阵表示方式的数据定义为待分析数据;
[0017] 所述特征提取模块根据用户设定的特征参数从所述待分析数据中提取所述特征参数,供模型训练时使用;若待分析数据需要执行特征提取,则进入特征提取模块;若不需要,则进入特征转换模块;
[0018] 所述特征转换模块用于将用户设定的特征转换成用户所需的表示形式,目的是为了优化输入的特征参数,以提高模型训练的精度或模型训练的速度;若不需要执行特征转换,则进入算法模块;
[0019] 所述算法模块包含多种算法模型供用户选择以及供用户构建训练模型,用户构建至少一组训练模型;
[0020] 所述选择优化模块从构建好的训练模型中通过模型训练选出最优的模型和最优的参数,然后保存所述最优的训练模型,将所述最优的训练模型定义为最优模型;
[0021] 通过所述选择优化模块选出最优模型后,用户就可以设定使用该最优模型对待分析数据进行分析;
[0022] 所述预处理模块、特征提取模块、特征转换模块、算法模块以及选择优化模块产生的数据均存储于所述数据存储模块中;
[0023] 所述管理模块,用于管理机器学习的任务的调度与分配,管理自发现服务,所谓自发现服务为:分布式部署所述数据分析平台的八大模块,分别是:界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块以及管理模块,所述八大模块中除管理模块外的任意一所述模块启动后,会通知所述管理模块,所述管理模块接到所述通知后,将其纳入管理之下;所述八大模块中,除管理模块外的各模块之间定时都会向所述管理模块报告当前状态,如果所述各模块中有一任意模块超过设定的时间没有发送报告,则认为该模块下线,任务将不会分配到该模块上;通过分布式部署所述八大模块及管理模块的自发现服务,使得所述数据分析平台能够快速完成动态扩展。
[0024] 进一步地,一种通用机器学习数据分析平台还包括降维模块,所述降维模块配合特征转换模块、算法模块或输出数据时使用,用以降低数据的维度;当特征转换模块执行过程时,需要降低特征参数的维度,则调用所述降维模块;当算法模块执行过程中,需要降低过程数据的维度,则调用所述降维模块;当预处理模块、特征提取模块、特征转换模块、算法模块或选择优化模执行结束需要输出数据时,需要降低输出数据的维度,则调用所述降维模块。
[0025] 进一步地,所述预处理模块的所述原始数据的预处理方式包括:数据清洗、格式转换、过采样、正则化或二值化。
[0026] 进一步地,所述特征提取模块包含TF-IDF转换模块,特征计数转换模块、word2vec词向量转换模块。
[0027] 进一步地,所述算法模块包含回归模型、分类模型和/或聚类模型。
[0028] 进一步地,所述回归模型包括线性回归算法、逻辑回归算法、多项式回归算法、Stepwise Regression逐步回归算法、Ridge Regression岭回归算法、Lasso Regression套索回归算法以及ElasticNet回归算法。
[0029] 进一步地,分类模型包括支持向量机(SVM)算法、K最近邻(KNN)算法、决策树(Decision Tree算法、集成学习算法、人工神经网络算法以及朴素贝叶斯算法。
[0030] 进一步地,所述聚类模型包括K-Means算法和谱聚类算法。
[0031] 进一步地,所述选择优化模块包括交叉验证模块和网格搜索模块。
[0032] 进一步地,所述数据存储模块为:分布式存储平台或分布式数据库。
[0033] 进一步地,所述界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块、管理模块以及降维模块的通信接口均采用restful接口,便于接入企业现有的业务系统。
[0034] 进一步地,所述界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块、管理模块以及降维模块的通信方式采用消息队列方式,便于接入企业现有的业务系统。
[0035] 本发明具有如下优点:
[0036] 本发明一种通用机器学习数据分析平台,简明易懂,对数据分析人员十分友好。整个平台的过程数据使用分布式存储平台或分布式数据库进行存储,可以很方便的扩展底层系统。各个模块无相互依赖,适合大规模分布式部署。每个模块内部有丰富的模式和参数可供调整,利于深入研究待分析数据。并且内置大量常用算法模型,基本适用于所有数据分析任务。数据分析人员可以自由组合使用各个模块与算法模型,完全不需要具备编码能力,即可构建高度定制化的数据分析模型。每次构建好的模型,又可作为其他模型的基石,建立复合模型,快速迭代开发出新型分析模型,大大提高工作效率。除此之外,本系统各模块的通信接口统一,均为restful接口,只要经过简单的开发,就可以很方便的接入企业现有的业务系统。同时,本数据分析平台的数据存储模块采用分布式存储,将中间数据存储于分布式存储中,通过管理模块进行任务的优化调度,提高运行效率,且各个模块被设计成服务自发现的,在启动后会向管理模块发送信息,即可纳入管理,然后各个模块可以通过管理模块获得下个模块的通讯地址,为分布式部署提供必不可少的条件。【附图说明】
[0037] 下面参照附图结合实施例对本发明作进一步的说明。
[0038] 图1为本发明一种通用机器学习数据分析平台的示意图。
[0039] 图2为本发明分析流程图。【具体实施方式】
[0040] 请参阅图1和图2所示,对本发明的实施例进行详细的说明。
[0041] 重点请参阅图1,一种通用机器学习数据分析平台,包括界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块以及管理模块。所述界面模块、数据存储模块、预处理模块、特征提取模块、特征转换模块、算法模块、选择优化模块、降维模块以及管理模块的通信接口均采用restful接口或采用消息队列的方式,便于接入企业现有的业务系统。所述数据存储模块为:分布式存储平台或分布式数据库。所述预处理模块、特征提取模块、特征转换模块、算法模块以及选择优化模块产生的数据均存储于所述数据存储模块中。
[0042] 对于本发明的管理模块,现举例说明其工作原理:
[0043] 步骤1、机器学习任务开始,管理模块知晓所有模块的运行状态,可以动态调配任务,当用户完成模型构建需要开始学习任务或用户已选出最优模型需要对待分析数据进行分析时,所述管理模块产生一个任务规划,所述任务规划的内容包含任务ID,任务状态,任务逻辑,各模块参数,存储策略;然后将所述任务规划发送给第一个开始工作的起始模块,所述起始模块是用户构建的模型或最优模型开始时所启用的第一个模块;
[0044] 步骤2、所述起始模块接收到所述任务规划,根据所述任务规划中设定的任务逻辑执行任务,并对过程数据进行存储,将存储地址与本次运行相关的一些信息更新到所述任务规划中,得到新任务规划,根据所述新任务规划中规划的下个模块,通过restful接口将所述新任务规划发送给它,如果没有回信,则定时重发;
[0045] 步骤3、所述下个模块接收到所述新任务规划,如果已经收到过,则直接给上个模块回信。如果是新的任务,则进行处理,处理方式与步骤2中描述相同
[0046] 步骤4、重复步骤3直到结束。
[0047] 需要说明的是,本发明除可以选择通过restful接口直接通讯,本发明也支持使用消息队列的方式,本发明中的八大模块的各模块分别设有一个公用的消息队列。例如:若部署了十个特征提取模块,他们共用一个特征提取消息队列。
[0048] 步骤11、机器学习任务开始,所述管理模块产生所述任务规划,并发送到所述起始模块的消息队列;
[0049] 步骤22、所述起始模块从消息队列中取出所述任务规划,根据所述任务规划中设定的任务逻辑执行任务,并对过程数据进行存储,将存储地址与本次运行相关的一些信息更新到所述任务规划中,得到所述新任务规划,根据所述新任务规划中规划的下个模块,将所述新任务规划发送到对应的消息队列中,由管理模块负责检测错误;
[0050] 步骤33、所述下个模块接收到所述新任务规划,如果已经收到过,则直接给上个模块回信。如果是新的任务,则进行处理,处理方式与步骤22中描述相同
[0051] 步骤44、重复步骤33直到结束
[0052] 本发明采用restful接口直接通讯和采用消息队列通讯的方式可以混合使用。
[0053] 所述界面模块提供数据输入接口,参数配置接口,结构配置界面以及分析结果展示,例如,预处理模块、特征提取模块、特征转换模块、算法模块、以及选择优化模块都需要通过界面模块输入参数或者进行算法的结构配置,且该些模块的运行处理结果也是通过界面模块进行展示。
[0054] 所述预处理模块接收来自所述数据输入接口传入的原始数据,然后将其转换成矩阵的表示方式,存入所述数据存储模块;将所述矩阵表示方式的数据定义为待分析数据;所述预处理模块的所述原始数据的预处理方式包括:数据清洗、格式转换、过采样、正则化或二值化。数据清洗将输入的原始数据根据用户设定的条件进行清洗,可以去除无用、重复、破损或者对分析有害的数据。格式转换一般是针对文本文件进行处理,比如将pdf,word,html等富文本文件转换为纯文本,用户也可以设置自定义规则来转换特定数据。过采样使用在输入数据偏少的情况下,根据分析输入数据的特性,模拟出一批与输入数据相似的数据,适当使用可以提高模型训练效果。正则化的过程是将每个样本缩放到单位范数(每个样本的范数为1),如果后面要使用如二次型(点积)或者其它核方法计算两个样本之间的相似性,使用这个方法能极大提高分析速度。二值化基本用在图像处理上,一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,需要制定一些方法,将图像分为两部分。例如对书本OCR提取文字,我们只需要文字,树上其他花花绿绿的部分我们并不需要,二值化可以去除那些噪声,为之后的分析处理打下基础。预处理方式最终都是将原始数据转换成矩阵的表示方式。所述预处理模块的预处理方式包含但并不仅限于上述方式,仅摘选主要方式予以说明。
[0055] 所述特征提取模块根据用户设定的特征参数从所述待分析数据中提取所述特征参数,供模型训练时使用;若待分析数据需要执行特征提取,则进入特征提取模块;若不需要,则进入特征转换模块。所述特征提取模块,主要包含自然语言处理模块,图像特征提取模块,音频特征提取模块。自然语言处理模块,主要使用在输入数据为文本的情况下,对文本进行分词,去除停止词,情感词标注等操作。图像特征提取模块能够提取出图像中的颜色特征、纹理特征、形状特征、空间关系特征等。音频特征提取模块主要对提取出音频最大值、最小值、平均值等特征。特征提取千变万化,很难对所有模式进行说明。此处以输入数据为未分词的中文文章为例,特征提取模块可以选择中文分词器对其分词,根据设定的规则与参数选取将一片转化为一连串的中文单词作为特征,还可以设定特定的词语的在文章中出现的次数作为另一个特征,也可以将文章长度加入特征;对于图像的话,可以提取出有几种颜色数量,颜色种类,文理特征,角,方块,形状位置等;音频比如计算语速(语音时长/发音音节数),音量,音频振幅最小值最大值平均值等等,总之方法多种多样,除内置的提取模型外,用户也可以自行定制。总之特征的选择根据用户的目的和想要的训练模型不同而差别万千。
[0056] 所述特征转换模块用于将用户设定的特征转换成用户所需的表示形式,目的是为了优化输入的特征参数,以提高模型训练的精度或模型训练的速度;若不需要执行特征转换,则进入算法模块。以一组中文单词作为输入特征为例,可以将其通过一些算法或者字典,将输入数据转化为一组或者多组由数字组成的特征,主要目的是为了优化输入的特征参数,以提高模型的精度或者训练速度。
[0057] 特征转换模块主要包含TF-IDF转换模块,特征计数转换模块、word2vec词向量转换模块等。
[0058] TF-IDF转换模块中,TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。用以评估了一个特征对于一个输入数据集中的其中一份数据的重要程度。一个特征的重要性随着它在数据集中出现的次数成正比增加,但同时会随着它在数据集中出现的频率成反比下降。主要用于文本类数据源提取出的特征进行转换,将提取的文字特征转换为特征值。
[0059] 特征计数转换模块,可以认为是简化版的TF-IDF,因为它忽略了一个特征对于一个输入数据集中的其中一份数据的重要程度。主要根据某个特征出现的频次来计算这个特征的权重,转换为特征值。word2vec词向量转换模块,主要用于神经网络模型,不止适用于文本,对图像,音频也有很好的效果。
[0060] word2vec词向量转换模块本质上来说就是一个矩阵分解的模型,简单地说,矩阵刻画了每个词和其上下文的词的集合的相关情况。对这个矩阵进行分解,只取每个词对应在隐含空间的向量,所以word2vec适合的情况就是对于一个序列的数据,在序列局部数据间存在着很强的关联。典型的就是文本的序列了,邻近的词之间关联很强,甚至可以通过一个词的上下文大概预测出中间那个词是什么。学习到的词向量代表了词的语义,可以用来做分类、聚类、也可以做词的相似度计算。
[0061] 所述算法模块包含多种算法模型供用户选择以及供用户构建模型,用户构建至少一组模型。所述算法模块包含回归模型、分类模型和/或聚类模型。
[0062] 所述回归模型包括线性回归算法、逻辑回归算法、多项式回归算法、Stepwise Regression逐步回归算法、Ridge Regression岭回归算法、Lasso Regression套索回归算法以及ElasticNet回归算法。所述回归模型研究的是因变量(目标)和自变量(预测器)之间的关系,这种因变量与自变量的不确定性的关系(相关性关系)。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。以线性回归为例,据现有数据对分类边界建立回归公式,假设数据符合线性方程z=w0x0+w1x1+w2x2+…+wnxn,即z=wTx只要确定参数w,即可计算出回归公式,进而分类。分类问题与回归问题是监督学习问题,区别在于学习函数的预测输出是类别还是值,所以回归模型也可作为分类模型调用。
[0063] 所述分类模型包括支持向量机(SVM)算法、K最近邻(KNN)算法、决策树(Decision Tree算法、集成学习算法、人工神经网络算法以及朴素贝叶斯算法。
[0064] 支持向量机算法会将问题当做一个“求两个类的边界距离”的最优化问题来解决。支持向量机建构一个或多个高维(甚至是无限多维)的超平面来分类资料点,这个超平面即为分类边界。直观来说,好的分类边界要距离最近的训练资料点越远越好,因为这样可以减低分类器的泛化误差。在支持向量机中,分类边界与最近的训练资料点之间的距离称为间隔(margin);支持向量机的目标即为找出间隔最大的超平面来作为分类边界。
[0065] K最近邻(k-Nearest Neighbor,KNN)KNN算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比。
[0066] 决策树(Decision Tree)算法决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分类,同样也可以用来作回归。
[0067] 集成学习(Ensemble Learning)算法通过将其他算法进行组合而形成更优的算法,组合方式包括:不同算法的集成,数据集不同部分采用不同算法分类后的集成或者同一算法在不同设置下的集成。主要有Bagging,Boosting和Stacking三种实现方式。Bagging为每个样本建立分类器。最后,这些多分类器的结果将结合起来,使用平均或多数投票,有助于降低方差。Boosting提供了预测模块的连续学习功能。第一个预测模块从整个数据集上学习,下一个预测模块在前一个的性能基础上在训练数据集上学习。首先对原始数据集进行分类,并给每个观测给予同样的权重。如果第一个学习模块错误预测了类,那么将会赋予错误分类观测较高的权重。这个过程将反复迭代,不断添加分类学习模块,直到达到模型数量或者某个准确度。Boosting有比Bagging更好的预测精准度,但它有时也会过度拟合训练数据。Stacking则是使用多个基础分类器来预测分类。然后,一个新的学习模块与它们的预测结果结合起来,来降低泛化误差。包含有随机森林模型,Adaboost集成模型等。
[0068] 人工神经网络(Artificial Neural Network)算法它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
[0069] 朴素贝叶斯(Naive Bayesian)算法朴素贝叶斯算法是一种十分简单的分类算法:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
[0070] 所述聚类模型包括K-Means算法和谱聚类算法。
[0071] 所述K-Means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。如果在一次迭代前后,J的值没有发生变化,说明算法已经收敛。算法过程如下:
[0072] 1)从N个文档随机选取K个文档作为质心
[0073] 2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类[0074] 3)重新计算已经得到的各个类的质心
[0075] 4)迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束。
[0076] 所述谱聚类(Spectral clustering)算法将数据集中的每个对象看作是图的顶点V,将顶点间的相似度量化作为相应顶点连接边E的权值,这样就得到一个基于相似度的无向加权图G(V,E),于是聚类问题就可以转化为图的划分问题。基于图论的最优划分准则就是使划分成的子图内部相似度最大,子图之间的相似度最小。
[0077] 虽然根据不同的准则函数及谱映射方法,谱聚类算法有着不同的具体实现方法,但是这些实现方法都可以归纳为下面三个主要步骤:
[0078] 1)构建表示对象集的相似度矩阵W;
[0079] 2)通过计算相似度矩阵或拉普拉斯矩阵的前k个特征值与特征向量,构建特征向量空间;
[0080] 3)利用K-means或其它经典聚类算法对特征向量空间中的特征向量进行聚类。
[0081] 以上只是粗略介绍本发明所涵盖的算法大类,由于基于某种基础模型的改进算法过多,故不做进一步列举。
[0082] 所述选择优化模块从构建好的模型中选出最优的模型和最优的参数,然后保存所述最优的模型;所述选择优化模块包括交叉验证模块和网格搜索模块。
[0083] 所述交叉验证模块,是把在某种意义下将原始数据进行分组,一部分做为训练集,另一部分做为验证集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。本发明中主要使用K折交叉验证(K-fold cross-validation),初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的。主要用于验证模型效果,可以从多组模型中筛选出最优模型。
[0084] 所述网格搜索模块,用于搜索从特征提取转换,模型训练,目标数据分析整个流程的各个模块的最佳参数。它可以根据用户输入或者预先设置的参数范围与搜索步长进行搜索。以调整TF-IDF转换模块的参数为例,请参阅表1,假设数据集大小为10000,有参数max_df(为百分数,比如值为95%时,如果10000*95%=9500份数据都含有某特征,则认为此特征过于普遍,舍弃之),min_df(为百分数,比如值为1%,就表面特征值必须最少出现于特征值最少出现次数为10000*1%=100份数据中,即必须有100份数据含有此特征才保留),max_features(最大特征数,如果值为500,根据max_df,min_df筛选出的特征为2000个,则根据这些特征的idf分数排列,取前500个特征),等等参数,根据设置的参数范围max_df(95%~100%),min_df(1%~0.1%),max_features(500~2000)构建网格,然后根据不同参数计算,最后总结最好的参数。
[0085] 表1
[0086]
[0087] 上述计算方法有很多种,本实施介绍以下两种:
[0088] 1.设定迭代总数,将所有参数组合计算完毕,然后挑选最好的一组[0089] 2.使用历史数据构建一个参数预测模型,预测参数最佳变化趋势以挑选参数进行迭代尝试,最终选出最好的一组。
[0090] 通过选择优化模块选出最好的一组模型后,用户就可以设定使用该最优模型对待分析数据进行分析。
[0091] 本实施例一种通用机器学习数据分析平台,还包括降维模块,所述降维模块配合特征转换模块、算法模块或输出数据时使用,用以降低数据的维度;当特征转换模块执行过程时,需要降低特征参数的维度,则调用所述降维模块,比如输入1万篇文章,每篇文章提取出4000个以上的特征,这可能太多了,会较大的影响训练速度,那么就可以使用降维模块对这些特征进行降维,他可以通过一些算法和用户设定的参数,选出代表性比较高的特征,将维度从4000下降到500;当算法模块执行过程中,需要降低过程数据的维度,则调用所述降维模块,算法模块的过程数据的维度由于其模型的不同,维度可能是输入数据的几倍到几十倍,经常需要配合降维模块使用;当预处理模块、特征提取模块、特征转换模块、算法模块或选择优化模执行结束需要输出数据时,需要降低输出数据的维度,则调用所述降维模块,在输出数据时降低数据维度,可以方便可视化展示,由于我们的世界是三维世界,可视化展示要求的图表为二维或者三维,故需要使用降维模型进行降维。
[0092] 下面列举两种降维模块工作原理:
[0093] PCA(Principal Component Analysis)降维模块,是最常用的线性降维方法,对原始的空间中顺序地找一组相互正交的坐标轴,第一个轴是使得方差最大的,第二个轴是在与第一个轴正交的平面中使得方差最大的,第三个轴是在与第1、2个轴正交的平面中方差最大的,这样假设在N维空间中,我们可以找到N个这样的坐标轴,我们取前r个去近似这个空间,这样就从一个N维的空间压缩到r维的空间了,但是我们选择的r个坐标轴能够使得空间的压缩使得数据的损失最小。
[0094] SVD(奇异值分解)降维模块,我们可以利用SVD来逼近矩阵并从中提取重要特征,通过保留矩阵80%-90%的能力,就可以得到重要特征并去除噪声。
[0095] 1、SVD给出一个与原始数据A同大小的对角矩阵S(由Σ的特征值组成),两个矩阵U和V,且满足=U*S*V'。若A为m×n阵,则U为m×m阵,V为n×n阵。奇异值在S的对角线上,非负且按降序排列。
[0096] 2、那么对于方阵Σ呢,就有Σ=USV',ΣΣ'=USV'*VS'U'=U(ΣΣ')U',Σ'Σ=VS'U'*USV'=V(Σ'Σ)V'。其中U是ΣΣ'的特征向量矩阵,V是Σ'Σ的特征向量矩阵,都是n*n的矩阵。
[0097] 3、由于方阵的SVD相当于特征值分解,所以事实上U=V,即Σ=USU',U是特征向量组成的正交矩阵,我们的目的是,从n维降维到k维,也就是选出这n个特征中最重要的k个,也就选出特征值最大的k个。
[0098] 请参阅图2,本发明通用机器学习数据分析平台的工作原理是:
[0099] 步骤1:通过界面模块提供的界面输入所述原始数据;
[0100] 步骤2:根据设定的预处理参数,预处理模块将原始数据转换为可以供分析平台使用的数据表示形式——矩阵,存入数据存储模块,如果需要特征提取则进入步骤3,需要特征转换则进入4,否则直接进入5;
[0101] 步骤3:根据设定的特征提取参数,特征提取模块对待分析数据进行特征提取,存入数据存储模块;
[0102] 步骤4:根据设定的特征转换参数,特征转换模块对待分析数据进行特征转换,存入数据存储模块;
[0103] 步骤5:根据设定的建模参数,通过算法模块组建模型,可以并联或串联之前已经构建好的模型;
[0104] 步骤6:可以重复步骤5,构建多组模型,然后根据用户需求,按照步骤顺序7,8进行模型选择,目的是选出最优的模块和参数;
[0105] 步骤7:根据设定的参数,通过选择优化模块,选出最优的模型与参数;
[0106] 步骤8:使用选择优化模块,选出最优参数;
[0107] 步骤9:保存此最优模型;
[0108] 步骤10:使用最优模型对待分析数据做分类/回归/聚类;
[0109] 步骤11:通过界面模块,从web界面可视化展示或下载结果。
[0110] 使用本发明分析平台,用户可以根据其需求,自由构建多个模型组合成一个大型的模型,以满足复杂的需求。例如当前有任务:从当前舆情分析系统中提取出在福建地区的电力企业相关的负面报道。我们可以把这个任务拆分为三个目标来实现:1.将报道所属地域归类为福建;2.将报道内容分类为电力企业相关;3.将报道情感分类为负面报道。
[0111] 设有原数据集W,下面将以灵活性与复用性做说明:
[0112] 实施方案一:
[0113] 人工将一小部分的W分类为福建地区的电力企业相关的负面报道与其他报道,通过分析平台构建出福建地域分类模型E。
[0114] 但是这种方法由于定义过细,在实际试验中,分类效果差,并且缺乏复用性,如果要建立针对北京地区的模型,还需要重新筛选北京地区的电力企业相关的负面报道。
[0115] 实施方案二:
[0116] 人工将一小部分的W分类为福建类与非福建类,构建分类模型(使用基于决策树的集成学习模型),通过分析平台构建出福建地域分类模型A.
[0117] 人工将一小部分的W分类为电力企业相关类与电力企业无关类,构建分类模型(使用基于Ridge回归模型的分类模型),通过分析平台构建出电力企业相关分类模型B.[0118] 人工将一小部分的W分类为负面报道与非负面报道,构建分类模型(使用神经网络模型),通过分析平台构建出负面报道分类模型C。
[0119] 串联A,B,C构建出福建地区的电力企业相关的负面报道分类模型D。
[0120] 此时A,B,C仍可作为独立模块移植到其他模型中,保持有复用性,并且对每个模块的优化都能最终使D模块也得到优化。如果此时需要构建针对北京地区的电力企业相关的负面报道的分类模型,则只需要人工分类出一批北京地区与非北京地区的数据集进行训练,复用B,C模型即可。
[0121] 此外还可以使用其他算法模型进行组合,辅助提升分类效果,极大的提高了生产效率。
[0122] 本发明使用模块化方式拆解机器学习的各个步骤到各个模块中,简明易懂,对用户十分友好。整个平台的过程数据使用分布式存储平台或分布式数据库进行存储,可以很方便的扩展底层系统。每个模块内部有丰富的模式和参数可供调整,利于深入研究待分析数据。并且内置大量常用算法模型,基本适用于所有数据分析任务。数据分析人员可以自由组合使用各个模块与算法模型,完全不需要具备编码能力,即可构建高度定制化的数据分析模型。每次构建好的模型,又可作为其他模型的基石,建立复合模型,快速迭代开发出新型分析模型,大大提高工作效率。除此之外,本系统各模块的通信接口统一,均为restful接口或消息队列方式,只要经过简单的开发,就可以很方便的接入企业现有的业务系统。同时,本数据分析平台的数据存储模块采用分布式存储,将中间数据存储于分布式存储中,通过管理模块进行任务的优化调度,提高运行效率,且各个模块被设计成服务自发现的,在启动后会向管理模块发送信息,即可纳入管理,然后各个模块可以通过管理模块获得下个模块的通讯地址,为分布式部署提供必不可少的条件。
[0123] 虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。