本申请公开了基于自动化构建的数据处理的智能交互方法及装置,包括:获取用户输入的处理指令;根据处理指令中的目标对象的模型信息和预先存储的并联规则,确定与目标对象对应的初始构建路径;采用预设编码方法对初始构建路径进行编码,得到与目标对象对应的编码结果;对编码结果进行离位处理,得到与目标对象对应的目标路径信息,所述目标路径信息用于获取不同场景下的场景数据,并对所述场景数据进行处理,这样,可以根据得到目标路径信息快速查找到要处理的场景数据,而不需要像现有技术一样,对于不同场景下的数据,需要采用不同的模型参数以及数据规范化方式,提高数据处理的准确性和效率。
背景技术
现代科学的基础之一是实证;实证就是要求理论与客观实际相一致;而客观实际的数字化描述,就称为观测数据;观测数据可能来源于自然界,人类社会或控制实验等等方面。通常来说,观测数据量大,信息密度低,表述隐晦,难以被人直接理解。故数据分析这门学科的任务,就是对观测数据中的信息进行提炼,以做出概括性描述或展示特定方面的信息。从而为人所理解,进而参与理论推理过程。
随着数据分析领域的发展,大量数据分析算法被开发出来。但数据分析仍是一项烦冗的任务:首先需要选择适宜于目标数据集合的算法,这需要对不同算法的不同参数进行大量测试,比较质控指标进行选择;其次,数据本身的质量也需要进行考察,数据的质量以及数据规范化的策略有时会和算法的选择相互耦合;再者,如何直观全面的展示数据也是数据分析工作流程的一部分。最后,数据集合本身是变动的,一方面,数据集中选择哪些内容参与数据分析是分析中需要考虑的问题,另一方面,新数据记录可能不断加入数据集合中。总之数据分析工作流程冗长,通常划分为:问题定义,数据收集,数据规范化,数据特征探索,数据分析模型算法选择及模型参数调试,模型训练,模型评估,结果汇报等多项步骤。
许多数据分析软件致力于辅助数据分析工作。如SPSS,SAS,SPSSAU,SPSSPRO等等向用户提供图形化交互界面的软件。如python中的scipy,sklearn,statsmodels,C语言中的mlpack等等基于某种计算机语言的数据分析算法库。如MATLAB等等软件专门建立一种计算机语言。进入大数据时代后,一方面观测数据的积累速度呈爆炸性增长,另一方面,不同的数据分析方法层出不穷。这使得数据分析集成软件愈加重要。
自动化构建系统是代码编译领域管理复杂流程的一种成功尝试,典型的自动化构建软件包括make、cmake、apache-ant等等。自动化构建系统将复杂流程中的所有相关对象组织为一张有向无环图。这里的所有相关对象通常是计算机文件系统中的文件,包括:流程中将会建立或修改的待定对象;流程中不会建立或修改,但是需要引用,且可能受到外部修改的外部对象。
构建图由称为规则的一系列三元组描述,规则三元组由目标,依赖,及命令三者组成。目标是一个对象,依赖是若干个对象构成的集合。规则三元组在构建图中的意义是:若目标对象和依赖对象均是构建图中的节点,存在由依赖对象指向目标对象的边;实际意义是,通过规则三元组中的命令,可以由依赖对象生成目标对象。自动化构建系统是一种特殊的自动化流程系统,相比于普通流程,它针对处理外部对象频繁受到修改的情形。代码编译过程中,修改源代码并测试就是这种情形。
在自动化构建中,核心操作在于递归更新,即比较规则中目标对象与依赖对象的生成时间,当目标对象的生成时间晚于任意依赖对象的更新时间时,则执行规则描述的命令来重新生成目标文件。
若目标所在规则标有强制执行标记,或者目标文件不存在。则目标文件的生成时间记为无穷早,即必然需要重新生成。
若依赖项是外部对象,若对应文件不存在则报错,依赖项的生成时间就是文件系统所指示的最近修改时间。
若依赖项是内部对象,则递归更新之;若不需重新生成,依赖项的生成时间就是文件系统所指示的最近修改时间;若进行了重新生成,则依赖项的生成时间记为无穷晚,即本规则的目标必然要重新生成。若依赖项标有临时文件标记,此时依赖项对应的文件已被删除,故将目标文件的生成时间传递给标有临时文件标记的依赖项所在的规则,作为依赖项所在规则的目标的生成时间。
总之,自动化构建过程可以概括为:从用户输入的最终目标开始,以深度优先遍历的方式递归进行更新操作。数据分析算法多种多样,以决策树算法作为例子,决策树是最基础的数据分析算法之一,它分为回归树和分类树两类;其中分类树又可进一步指定“混度指标”和“剪枝策略”这两个局部子算法,每个局部子算法都需要多个参数;故sklearn库中的决策树算法有多达12个参数。更有甚者,到目前为止,仍不断有文献提出“改进的决策树”算法。
数据分析算法的不断开发,带来了两点问题。首先,单一数据分析软件或算法库,难以全面地覆盖各种机器算法。事实上,SPSS通过允许安装python扩展插件来在一定程度上弥补软件的扩展性问题。另一方面,模型选型与参数调节的范围不断增大,对流程的自动化程度带来了更高的要求。目前,sklearn库提供了GridSearchCV类来实现对参数组合的遍历,RandomizedSearchCV类来对参数组合进行抽样;Matlab函数提供了类似fminsearch函数,但是均只能对模型算法所接受的参数进行尝试,尚不能将模型类型选择及数据规范化方式纳入考虑。
目前数据分析领域需要尝试采用不同的模型算法,模型算法的不同参数以及不同的数据规范化方式来对数据集进行分析,甚至需要自行开发模型算法。目前的数据分析集成软件难以对这样复杂的工作流程进行有效管理。因此,如何能够在数据分析任务中对包含多条分枝路径的复杂流程进行有效管理,进而实现自动化,是目前亟需解决的问题。
实现思路