一种用于构建数据分析流程的数据分析服务推荐方法及***
技术领域
本发明涉及数据分析领域,具体来说,涉及基于机器学习的数据分析服务组合流程的构建方法,更具体地说,涉及一种用于构建数据分析流程的数据分析服务推荐方法及***。
背景技术
数据分析往往需要通过组合多个服务以构建数据分析流程来实现。一个数据分析流程中包含多个数据分析服务以及服务之间的顺序执行关系。数据分析服务是数据分析算法的封装,如数据预处理、特征选取、分类、回归、评估等,通过封装相应算法提供接口供调用。在流程运行时,按照顺序执行关系依次调用每个数据分析服务,对所需分析的数据集进行处理,每一步的输出作为下一步的输入,最终得到数据分析结果。但是,现有技术下,在构建数据分析流程时,存在服务选择难、参数优化难的问题,根据不同的数据集选择合适的服务以及优化参数是一件非常麻烦的事情,而且往往在数据分析过程中需要探索多次才能得到最终结果。例如某省交通管理部门想要通过分析高速公路收费站过车数据来预测近期交通流量,进而提前设置车道来缓解交通拥堵。交通管理人员的目标是建立一个预测车流量的模型,但是使用什么算法、设置什么参数,都需要专业数据分析知识,对交通管理人员来说具有很大困难。同时由于数据分析的不确定性,用户经常需要在查看结果后,对数据分析流程进行修改,例如引入或替换其他服务,修改服务参数等,经过多次尝试才能得到最终满意的结果,这对数据分析人员提出了更大的挑战。传统服务推荐技术大多针对通用的服务组合问题进行推荐,尚未针对数据分析的特定需求、以多次交互的形式来为用户进行数据分析服务推荐,存在推荐效率低、推荐结果不准确等问题。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的用于构建数据分析流程的数据分析服务推荐方法及***。
根据本发明的第一方面,提供一种用于构建数据分析流程的数据分析服务推荐方法,用于为构建待分析数据集的数据分析流程进行数据分析服务推荐,所述数据分析服务推荐方法包括:S1、获取待分析数据集以及待分析数据集对应的数据分析任务描述信息;S2、响应于数据分析服务的首次推荐需求,根据待分析数据集对应的数据分析任务描述信息、待分析数据集的特征,从数据分析服务集合中为待分析数据集进行第一步单步服务推荐,获得第一步单步服务推荐集合,其中,所述数据分析服务集合为用于构建数据分析服务流程的所有数据分析服务组成的集合。优选的,所述推荐方法还包括:S3、响应于数据分析服务的再次推荐需求,根据待分析数据集对应的数据分析任务描述信息、待分析数据集的特征以及已构建的数据分析流程片段,从数据分析服务集合中为待分析数据集从已构建的流程片段的下一步开始进行单步服务推荐。
其中,所述待分析数据集对应的数据分析任务描述信息至少包括:数据分析任务类型、运行时间上限值、任务目标数据特征集合、性能评价指标集合、数据集划分策略。
在本发明的一些实施例中,通过如下方式进行第一步单步服务推荐:S21、根据待分析数据集对应的数据分析任务描述信息、待分析数据集的特征,基于数据分析服务集合生成可用数据分析流程集合以及每个数据分析流程的性能评分;S22、从可用数据分析流程集合中选取综合评分高于预设阈值的数据分析流程,选取所有选出的数据分析流程中第一步对应的数据分析服务生成第一步单步推荐服务集合。优选的,所述步骤S21中,通过如下方式生成可用数据分析流程集合:S211、提取待分析数据集计算数据集元特征;S212、基于待分析数据集的元特征,将数据分析流程中的每一步对应的数据分析服务作为一个节点,采用博弈模型进行多次循环搜索以得到多个数据分析流程组成可用数据分析流程集合,其中,每次搜索生成一个可用数据分析流程并获得该流程的性能评分。在本发明的一些实施例中,所述步骤S212中的每一次循环包括:S2121、初始化博弈模型,所述博弈模型包括第一蒙特卡洛树搜索模型、第二个蒙特卡洛树搜索模型、与所述第一蒙特卡洛树搜索模型相连的第一LSTM预测模型;S2122、将数据分析流程中的每一步对应的数据分析服务作为一个节点,使用第一蒙特卡洛树搜索模型和第一LSTM预测模型进行多次搜索,得到多个数据分析流程以及每个数据分析流程对应的性能评分,并用得到的多个数据分析流程、待分析数据集的元特征、第一蒙特卡洛树搜索模型的当前状态训练第一LSTM预测模型以得到第二LSTM预测模型;S2122、将第一蒙特卡洛树搜索模型与第一LSTM预测模型作为第一个参与者、第二个蒙特卡洛树搜索模型与第二LSTM预测模型作为第二个参与者,进行博弈搜索,对比搜索结果,将最先搜索出可用数据分析流程的参与者对应的LSTM预测模型作为下一次循环的第一LSTM预测模型,将最先搜索出的可用数据分析流程作为此次搜索的可用数据分析流程。优选的,所述第一蒙特卡洛树搜索模型和第一LSTM预测模型、第二蒙特卡洛树搜索模型和第二LSTM预测模型进行博弈搜索时,从蒙特卡洛树的根节点开始,基于数据分析服务集合,依次计算每个数据分析服务的综合评分,其中:针对每一级子节点,将综合评分超过默认阈值的数据分析服务作为此级子节点对应的可用服务,组成可用服务集合;在当前级子节点对应的可用服务集合中选择综合评分最高的数据分析服务作为当前子节点对应的数据分析服务,并且继续搜索此节点的后继节点直至数据分析流程结束;搜索结束后沿蒙特卡洛树结构向上反向传播此次搜索中每个节点的访问次数和质量值,并根据每级节点选择的数据分析服务生成一个可用数据分析流程,执行该流程得到其性能评分。优选的,每个数据分析服务的综合评分通过如下方式计算:
其中,T(l,a)是前后节点对应的数据分析服务之间的服务关联约束强度,l是当前节点在流程中的前一个节点,a是当前节点所选数据分析服务;Q(s,a):代表当前节点的质量值;P(s,a):代表LSTM模型预测得到的选取此服务的概率值;N(s)是MCTS的搜索次数;N(s,a)是此服务被访问的次数;s表示蒙特卡洛树的当前状态,w、c是根据历史实验数据积累判定的权值。
在本发明的一些实施例中,上述实施例所述的前后节点对应的数据分析服务之间的服务关联约束强度是通过分析历史数据分析流程挖掘得到的,其中:
当前节点的质量值通过如下方式计算:
Q(s,a)=(N(s,a)*Q(s,a)+v)/(1+N(s,a))
其中,v是蒙特卡洛树搜索模型的预置参数。
在本发明的一些实施例中,采用与第一步单步服务推荐相同的方法从已构建的流程片段的下一步开始进行单步服务推荐,其中,在博弈搜索时,从蒙特卡洛树中已构建的流程片段最后一个服务对应的节点开始,基于数据分析服务集合,依次计算每个数据分析服务的综合评分,其中:针对每一级子节点,将综合评分超过默认阈值的数据分析服务作为此级子节点对应的可用服务,组成可用服务集合;在当前级子节点对应的可用服务集合中选择综合评分最高的数据分析服务作为当前子节点对应的数据分析服务,并且继续搜索此节点的后继节点直至数据分析流程结束;搜索结束后沿蒙特卡洛树结构向上反向传播此次搜索中每个节点的访问次数和质量值,并根据每级节点选择的数据分析服务生成一个可用数据分析流程,执行该流程得到其性能评分。
根据本发明的第二方面,提供一种用于构建数据分析流程的数据分析服务推荐***,所述推荐***包括:服务推荐接口模块,用于接收待分析数据集、数据分析任务以及针对待分析数据集已构建的数据分析流程片段,返回服务推荐结果;数据分析流程生成模块,用于根据待分析数据集对应的数据分析任务描述信息、待分析数据集的特征、已构建的数据分析流程片段,基于数据分析服务集合生成可用数据分析流程集合以及每个数据分析流程的性能评分;单步服务推荐模块,用于从可用数据分析流程集合中选出综合评分高于预设阈值的数据分析流程,选取所有选出的数据分析流程中在已构建的数据分析流程片段的下一步对应的数据分析服务生成该步的单步推荐服务集合;数据分析服务管理模块,用于管理数据分析相关的服务信息;服务关联关系管理模块,用于管理数据分析服务之间的关联关系。
与现有技术相比,本发明的优点在于:本发明通过在数据分析流程构建过程中为用户提供即时服务推荐,指导用户进行决策分析,可以支持没有数据分析专业知识的普通业务用户也能方便地使用数据分析服务来完成业务需求,可以更好地适应用户的个性化需求,大大降低数据分析的难度,有效节约人力成本,提高数据分析的质量和效率。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的一种用于构建数据分析流程的数据分析服务推荐方法流程示意图;
图2为根据本发明实施例的可用数据分析流程生成过程示意图;
图3为根据本发明实施例的一种蒙特卡洛树搜索模型搜索示例示意图;
图4为根据本发明实施例的一种用于构建数据分析流程的数据分析服务推荐***结构示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
为了解决现有技术下推荐效率低、推荐结果不准确的问题,本发明针对特定数据集及数据分析任务进行服务推荐,提高推荐效率和推荐结果准确率。
根据本发明的一个实施例,如图1所示,本发明的一种用于构建数据分析流程的数据分析服务推荐方法,包括步骤S1、S2、S3,下面详细介绍每个步骤。
在步骤S1中,获取待分析数据集,以及数据分析任务描述信息。首先获取用户指定的待分析数据集,数据集是一个数据的集合,可以为文本形式,如csv(逗号分隔值)文件格式,每一行代表一条记录,每条记录由多个字段组成,字段间通过逗号或制表符等分隔符进行分隔;还可以为一组图像文件,以及该组文件的描述信息文件,其中包含每个图像文件的名称、标签信息等。数据分析任务的描述信息包括数据分析任务类型(如分类、回归等)、运行时间上限值、任务目标数据特征集合、性能评价指标集合(如回归任务常用评价指标有:均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE);分类任务的常用评价指标有:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、P-R曲线(Precision-RecallCurve)、F1 Score、混淆矩阵(Confuse Matrix)、ROC、AUC等)、数据集划分策略(默认训练集、测试集比例6:4)。
在步骤S2中,结合数据特征及服务关联为用户推荐一组数据分析服务,以及各服务相关的数据分析流程及性能值。此时,主要针对待分析数据集进行初次推荐,待分析数据集还没有对应已构建的流程片段,需要从数据分析服务的第一步开始推荐,此时,根据待分析数据集对应的数据分析任务描述信息、待分析数据集的特征,从数据分析服务集合中为待分析数据集进行第一步单步服务推荐,获得第一步单步服务推荐集合,从第一步单步服务推荐集合中选取第一步的数据分析服务,形成数据分析流程片段,其中,所述数据分析服务集合为用于构建数据分析服务流程的所有数据分析服务组成的集合。根据本发明的一个实施例,对待分析数据集进行第一步单步服务推荐时,包括数据分析流程生成和单步服务推荐两部分,其中:
1)数据分析流程生成:
基于待分析数据集以及数据分析任务描述信息,计算数据分析流程,生成一组可选用的数据分析流程组成可用数据分析流程集合,本实施例中采用博弈模型来生成数据分析流程,如图2所示,采用博弈模型进行博弈对抗搜索,包含以下几阶段:数据集元特征计算、初始化博弈模型、以及博弈阶段。
数据集元特征计算阶段:根据待分析数据集计算数据集元特征,包括数据维度(Dimensionality)、特性数量(NumberOfFeatures)、最大分类特征基数(MaxCardinalityOfCategoricalFeatures)、数字特征的最大四分位稀疏度(QuartileSkewnessOfNumericFeatures)、平均数特征值(MeanMeansOfNumericFeature)、平均数字属性熵(MeanNumericAttributeEntropy)、缺失值比率(RatioOfMissingValues)、有缺失值的特征比率(RatioOfFeaturesWithMissingValues)等。
初始化博弈模型阶段:根据上述信息初始化博弈模型,初始化的博弈模型中包括两个蒙特卡洛树搜索(MCTS)模型作为博弈参与者以及一个长短期记忆神经网络模型(LSTM)模型。
其中,需要说明的是,MCTS是一种采用基于树的数据结构,能权衡探索与利用、在搜索空间巨大时仍然比较有效的搜索算法,可用来解决服务搜索空间过大的问题。其基本思路是:通过不断的模拟得到大部分节点的上界置信区间(UCB)值,然后下次模拟的时候根据UCB值有策略的选择值得利用和值得探索的节点继续模拟,在搜索空间巨大并且计算能力有限的情况下,这种启发式搜索能更集中地、更大概率找到一些更好的节点。每个MCTS模型中包含初始树结构,其中根节点为初始节点,根节点的每个一级子节点代表数据分析流程中可能的第一步服务节点,二级子节点代表数据分析流程中可能的第二步服务节点,以此类推。树的深度为数据分析流程最大长度,取值可根据历史数据经验来设定。
LSTM模型是一种特殊的循环神经网络(RNN)。LSTM的单个循环结构内部有四个状态,相比于RNN,LSTM循环结构之间保持一个持久的单元状态不断传递,用于决定哪些信息要遗忘或者继续传递。初始化产生的LSTM模型由LSTM层以及2个全连接层构成,将在博弈阶段用来预测流程中每一步的服务选择概率。LSTM层包括输入层、隐藏层和输出层。其中输入层接收的数据为待分析数据集元特征、数据分析任务描述信息、MCTS树的当前状态(包括从MCTS树根节点开始每一步已选择的服务节点、以及每一步服务节点的选取概率)。隐藏层由多个神经单元构成,每个神经单元通过当前输入及上一时刻的输出来得到当前输出。输出层为LSTM预测结果,通过全连接层进行维度变换,得到MCTS树的当前状态下选择某个服务节点的概率值。
博弈阶段:博弈阶段使用上述博弈模型,以自我博弈的方式进行博弈。在博弈阶段,数据分析服务所对应的MCTS树的节点将被选取,从而可以沿着从树的根节点开始到叶子节点结束的路径,形成数据分析流程。
根据本发明的一个实施例,博弈阶段中包含了多次循环,循环次数可根据历史推荐经验设定。在每次循环中,执行下述步骤:
a)为第一个MCTS参与者MCTS1配置已有LSTM模型LSTM1作为其预测模型,当第一次执行循环时,此LSTM模型就是初始化博弈模型阶段得到的LSTM模型;
b)用第一个MCTS参与者执行多次MCTS搜索,得到多个可选用的数据分析流程及其性能评分,用得到的多个可选用的数据分析流程结合待分析数据集的元特征训练LSTM模型得到一个新LSTM模型,作为第二个MCTS参与者的预测模型;
c)开始博弈:参与者1和参与者2进行对抗,对每个MCTS参与者,执行一次MCTS搜索,比较搜索结果,最先生成可用的数据分析流程的一方为此次博弈的胜出者,保留胜者的LSTM模型,将其设为已有LSTM模型,进入下一轮循环;将胜利者生成的可用的数据分析流程作为此次循环的搜索结果。
上述b和c步骤中,使用MCTS搜索的具体步骤为:
从MCTS树的根节点开始,对数据分析服务集合,依次计算每个数据分析服务的综合评分。综合评分超过默认阈值(可根据历史实验数据积累判定)的数据分析服务作为此步的可用服务,组成可用服务集合。如果可用服务集合不为空,在可用服务集合中选取综合评分最高的数据分析服务,并且继续搜索此节点的后继节点。当到达流程最大步数或者计算得到的可用服务集合为空时,结束MCTS搜索,并且沿树结构向上反向传播每个节点的访问次数和质量值,这些数据将用于下次计算综合评分。此时从根节点到结束节点可得到一个数据分析流程。执行此流程,根据执行结果计算得到流程的性能评分,然后将此数据分析流程和性能评分记录下来,形成可选用的数据分析流程集合,用于后继的单步服务推荐。根据本发明的一个示例,以树的深度是3为例,说明一个MCTS搜索过程,如图3所示,从根节点T0开始搜索,对数据分析服务集合,依次计算每个数据分析服务的综合评分,综合评分超过默认阈值的数据分析服务作为此步的可用服务,通过综合评分计算,在一级子节点对应的可用服务有四个,分别表示为子节点T11、T12、T13、T14,其中,子节点T12的综合评分最高,在一级子节点处选择子节点T12对应的数据分析服务作为第一步的数据分析服务,然后从T12开始,继续搜索后继节点对应的服务;在子节点T12的后继节点中,二级子节点处,可用服务有三个,分别表示为子节点T21、T22、T23,其中,子节点T21的综合评分最高,在二级子节点处选择子节点T21对应的数据分析服务作为第二步的数据分析服务,然后从T21开始,继续搜索后继节点对应的服务;在子节点T21的后继节点中,三级子节点处,可用服务有三个,分别表示为子节点T31、T32、T33,其中,子节点T32的综合评分最高,在三级子节点处选择子节点T32对应的数据分析服务作为第三步的数据分析服务,由于树的深度为3,所以在第三步数据分析服务完成后结束搜索,最后得到由子节点T12-T21-T32形成的路径对应的数据分析服务组成的一个数据分析流程,是本次搜索到的数据分析流程。
其中,在计算每个服务的综合评分时,使用上界置信区间(UCB)公式进行计算:
T(l,a)是前后数据分析服务之间的服务关联约束强度,其中l是当前节点在流程中的前一个服务节点,a是所选服务,其中,服务关联关系是通过分析历史数据分析流程挖掘得到的,具体包含以下要素:li=<sourceID,targetID,consType,consValue>,其中sourceID是源服务的唯一标识,targetID是目标服务的唯一标识,consType表示两个服务之间的关联约束类别,包括强关联、弱关联和无关联三类,consValue表示具体约束值。当两个服务之间的关联约束类别是强关联时,T(l,a)输出值为1,当关联约束类别是弱关联时,T(l,a)输出值为约束值,当关联约束类型是无关联时,T(l,a)输出值为0;根据本发明的一个示例,服务关联关系挖掘流程包括:①获取待挖掘的历史数据分析流程文本文件,其中包含流程结构描述和流程的性能数据;②从历史数据分析流程中统计出每个服务在紧随其他服务之后出现的次数;③统计每个服务在流程中出现的总次数;④计算出两个服务之间的约束类别及约束值。例如,通过对历史数据分析流程的服务关联关系挖掘,可得到与数据分析服务简单数据填充(SimpleImputer)相关的服务关联关系如下:
·"SimpleImputer(简单数据填充)","Binarizer(二值化处理)","弱关联","0.1198"
·"SimpleImputer(简单数据填充)","KBinsDiscretizer(K型箱分解器)","弱关联","0.1053"
·"SimpleImputer(简单数据填充)","KernelCenterer(核矩阵转化)","弱关联","0.1130"
·"SimpleImputer(简单数据填充)","Normalizer(归一化)","弱关联","0.1189"
·"SimpleImputer(简单数据填充)","OneHotEncoder(热编码)","弱关联","0.0204"
·"SimpleImputer(简单数据填充)","OrdinalEncoder(顺序编码)","弱关联","0.0272"
·"SimpleImputer(简单数据填充)","PowerTransformer(幂变换)","弱关联","0.1798"
·"SimpleImputer(简单数据填充)","QuantileTransformer(非参数转换)","弱关联","0.1139"。
Q(s,a):代表当前节点的质量值,其初始值为0,当MCTS反向传播时,通过如下公式进行计算,其中v是MCTS模型的一个预置参数:
Q(s,a)=(N(s,a)*Q(s,a)+v)/(1+N(s,a))
P(s,a):代表LSTM模型预测得到的选取此服务的概率值。预测输入信息包括待分析数据集元特征、数据分析任务描述信息、MCTS树的当前状态(从MCTS树根节点开始每一步已选择的服务节点、以及每一步服务节点的选取概率),预测得到此状态下选择某个服务节点的概率;
N(s)是MCTS的搜索次数;
N(s,a)是此服务被访问的次数;
w、c是根据历史实验数据积累判定的权值。
博弈完成后保留胜者的LSTM模型,用于下次循环指导MCTS选择服务,从而用强化学习的方法达到不断自我优化的目的。
2)单步服务推荐:
针对上述步骤生成的一组包含性能评分的数据分析流程集合,首先剔除低于一定性能阈值的数据分析流程,保存下来性能良好的流程;然后对这些流程按照性能评分由高到低排序,依次进行下述处理:
初始化单步服务推荐结果集合;
提取流程中第一步服务节点,判断单步服务推荐结果集合中是否存在此服务;
如果没有,则将此推荐服务与所对应的流程及流程性能评分一起加入单步服务推荐结果集合<推荐服务,<流程,流程性能评分>>;
如果已存在此推荐服务,则将流程及性能评分加入此推荐服务的相关流程及性能评分集合中;
所有流程处理完毕后,将单步服务推荐结果集合返回供选择。
在步骤S3中,获取用户构建的数据分析流程片段,再次计算此片段的后继服务集合,进行后继服务推荐。此时,主要针对待分析数据集进行再次推荐,针对待分析数据集已构建有流程片段,需要从数据分析服务集合中为待分析数据集从已构建的流程片段的下一步开始进行单步服务推荐。其中,已构建的流程片段可以是从前面的单步服务推荐结果集合中选取推荐的数据分析服务,也可自行选择其他服务来构建流程,如果在构建流程过程中需要再次获取***推荐,可根据已构建的流程片段推荐出后续单步服务,仍然包含数据分析流程生成和单步服务推荐两个阶段。
其中,在数据分析流程生成阶段中,基于待分析数据集以及数据分析任务描述信息和已构建的数据分析流程片段,计算数据分析流程,生成一组可选用的数据分析流程,包含博弈模型更新以及博弈两个阶段:
博弈模型更新阶段是根据接收到的数据分析流程片段更新博弈模型的两个参与者的MCTS树结构,使得从根节点开始,根据流程片段中选取的服务,仅保留所对应的服务节点所在的边,裁剪其他分支,最终保留流程片段中最后一个服务节点所在的子树。从而避免了重复计算,可加快搜索速度,提高数据分析的效率。仍然以图3的示例为例,一个深度为3的数据分析流程,假设已经构造的流程片段为子节点T12-T21对应的数据分析服务组成的数据分析流程片段,当需要对后继服务进行推荐时,博弈模型更新后直接从子节点T21开始进行搜索,无需从根节点T0开始搜索;假设已构造的流程片段为选择的其他服务组成的已经包含第一步和第二步的数据分析流程片段,当需要对后继服务进行推荐时,博弈模型更新后直接从第二级子节点的下一级子节点开始搜索。
博弈阶段与首次推荐步骤中的博弈阶段原理类似,区别在于为第一个MCTS参与者配置的是上一次推荐过程所产生的胜者的LSTM模型,从而达到复用已有结果,不断优化的效果。博弈完成后仍然保留胜出者的LSTM模型。
在单步服务推荐步骤中,针对上述步骤生成的一组包含性能评分的数据分析流程集合,首先剔除低于一定性能阈值的数据分析流程,保存下来性能良好的流程;然后对这些流程按照性能评分由高到低排序,依次进行下述处理:
初始化单步服务推荐结果集合;
提取流程中已构建片段之后的下一步服务节点,判断单步服务推荐结果集合中是否存在此服务;
如果没有,则将此推荐服务与所对应的流程及流程性能评分一起加入单步服务推荐结果集合<推荐服务,<流程,流程性能评分>>;
如果已存在此推荐服务,则将流程及性能评分加入此推荐服务的相关流程及性能评分集合中。
所有流程处理完毕后,将单步服务推荐结果集合返回供选择。
针对数据分析服务流程已构造的数据分析流程片段的后继服务选择中,可重复上述步骤,对后继服务进行单步推荐,直至完成数据分析流程的最后一步。
根据本发明的一个实施例,如图4所示,提供了一种用于构建数据分析流程的数据分析服务推荐***。包括服务推荐接口模块、数据分析流程生成模块、单步服务推荐模块、数据分析服务管理模块和服务关联关系管理模块。
其中,所示服务推荐接口模块用于接收用户输入的待分析数据集、数据分析任务描述信息,以及用户构建的流程片段,返回单步服务推荐结果。
所述数据分析流程生成模块用于根据待分析数据集、数据分析任务描述信息、以及用户构建的流程片段,生成可用的数据分析流程;其中包括数据集元特征计算模块、博弈模型设置模块、以及博弈模块,数据集元特征计算模块用于根据待分析数据集计算其元特征,博弈模型设置模块用于初始化或者更新博弈模型;博弈模块用于执行博弈模型,产生可选用的数据分析流程集合。
所述单步服务推荐模块用于根据可用的数据分析流程集合和用户已构建的流程片段推荐出一组服务组成单步推荐服务集合。
所述数据分析服务管理模块用于管理数据分析相关的服务信息。
所述服务关联关系管理模块用于管理数据分析服务之间的关联关系。服务关联关系是根据历史数据分析流程挖掘得到的,存储在此模块中,用于指导数据分析流程生成。
本发明实施例的技术方案可以包括以下有益效果:
通过在数据分析流程构建过程中为用户提供即时服务推荐,指导用户进行决策分析,可以支持没有数据分析专业知识的普通业务用户也能方便地使用数据分析服务来完成业务需求,可以更好地适应用户的个性化需求,大大降低数据分析的难度,有效节约人力成本,提高数据分析的质量和效率。
下面结合一个具体的示例详细说明本发明中的推荐方法及***的应用,以某省交通管理部门想要通过交通流量预测来缓解交通拥堵,业务人员目标是建立一个预测车流量的模型为例。对交通部门的业务人员来说,针对交通数据集,选择合适的服务并训练、参数优化是一件非常麻烦的事情,而且往往在数据分析过程中需要探索多次才能得到满意的最终结果。在本发明的数据分析服务推荐方法及***中,用户可以将需求发给服务推荐接口,通过***智能辅助,交互式地进行数据分析流程构建:
1.获取待分析数据集,以及数据分析任务描述信息:首先,***接收到用户指定的高速收费站csv格式数据集(数据属性如表1所示),以及数据分析任务的描述信息:数据分析任务类型为回归,运行时间上限值设置为1小时、任务目标数据特征为时间及车流量属性、性能评价指标为均方差Mean Absolute Error、数据集划分策略为默认(默认训练集、测试集比例6:4)。
表1
字段名 |
说明 |
CARDID |
MTC卡编号 |
CARDNETWORK |
员工编号 |
ENTRYLANE |
进站栏位 |
ENTRYSTATION |
进站站点ID |
ENTRYTIME |
进站时间 |
ETCCPUID |
ETC卡编号 |
EXITLANE |
出站栏位 |
EXITSTATION |
出站站点ID |
EXITTIME |
出站时间 |
VEHICLECLASS |
车辆种类 |
VEHICLELICENSE |
车牌号 |
VEHICLETYPE |
车辆类型 |
2.结合数据特征及服务关联为用户推荐一组数据分析服务,以及各服务相关的数据分析流程及性能值:包含数据分析流程生成和单步服务推荐两个步骤。
1)数据分析流程生成
通过一次MCTS搜索产生的一个用于高速车流量预测的数据分析流程示例如下表2所示。执行此流程,可得到预测出的某地某月高速车流量为283742车次,与测试集比对,可计算得到均方差性能评分为:0.8298058131123824。
表2
经过多次博弈循环后,生成了一组可选用的数据分析流程及对应的性能评分如表3所示:
表3
2)单步服务推荐:
将上述数据分析流程p1、p2、p3、p4作为输入,提取流程第一步服务节点,组成单步服务推荐结果集合<推荐服务,<流程,流程性能评分>>;
·"简单数据填充",
[{p1,0.8298058131123824},
{p3,0.5638540471504101}]
·"缺失值指示器",
[{p2,0.788058131123556},
{p4,0.4868540471504120}]。
业务人员可从单步服务推荐结果集合中选取第一步的数据分析服务,构建数据分析流程片段。
3.获取用户构建的数据分析流程片段后再次推荐:交通管理人员查看推荐结果后,可从推荐结果集合中选取推荐服务,也可直接选用此服务所对应的数据分析流程。例如,用户查看推荐结果后,从推荐结果集中选择了"简单数据填充"服务,之后自行选取了"顺序编码"服务作为第二步服务,构建了包含这两步服务的流程片段。用户希望***继续推荐后继服务,则可再次调用服务推荐接口,将已构建的流程片段发送给服务推荐***。
服务推荐***在获取到用户构建的流程片段后,可为用户推荐出此流程片段的后续单步服务和后续流程。在数据分析流程生成步骤中,以数据集、数据分析任务描述信息和已构建的流程片段为输入,计算数据分析流程,包含博弈模型更新以及博弈两个阶段。可得到一组包含性能评分的数据分析流程,假设再次推荐中生成的可用数据分析流程如下表4所示:
表4
在单步服务推荐步骤中,以上述包含性能评分的数据分析流程和已构建的流程片段为输入,提取流程中已构建片段之后的下一步服务节点,组成单步服务推荐结果集合<推荐服务,<流程,流程性能评分>>;
·"逻辑回归",[{p1,0.8378058131123652}]
·"ARD回归",[{p2,0.6138540471504308}]
·"高斯过程",[{p3,0.45068947368421941}]
用户接收到***返回的推荐结果集后,可以从中选取服务,继续构建数据分析流程,直至获得用户满意的数据分析结果。由此可见,通过采用本发明的推荐方法及***,业务人员无需专业的数据分析技术知识,即可快速准确的构建数据分析流程。
虽然本发明已经通过上述实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。