本发明涉及数据生成、提示工程、可视化评估领域,尤其涉及一种使用合成数据表进行可视化评估的系统。
背景技术:
1、评估环节在可视化社区中具有重要地位,近年来,越来越多的研究工作将评估环节纳入可视化社区中以验证其技术的有效性。在实际工作中,可视化从业者往往需要通过合成特定的数据表进行评估测试,例如,在算法研究中,研究者需要整合充足的数据集对算法进行彻底、完备的测试,以便将其推广至所有数据集;在定性评估中,研究者需要精心设计满足特定要求的数据集,以便更好地演示可视化特征。
2、然而,生成合适的数据集往往面临着三个方面的挑战:第一,数据集的特征空间是巨大且交错的,用户为了在控制实验中隔离变量,要求数据集满足数据维度、数据量、数据模式(如趋势和分布)等特征。第二,合成数据集的有效性经常受到质疑,因为数据合成的过程通常是未知的,因而所得到的数据难以复现与分析,这在以往的研究中也被称为“黑盒问题”。第三,构建一个测试数据集十分耗时耗力,往往需要研究者具备高级的编程技术,尤其是当数据需要满足特定语义时,构造的复杂度将会急剧提升。
3、数据生成技术已被广泛应用于软件测试与可视化测试中。除了使用python、r和matlab等编程语言手动生成高维数据集之外,许多研究工作提出了数据合成方法。在数据库应用程序中,开发者可以通过自动推理的方式测试sql语句。此外,也有许多基于约束的求解器技术被用于解决该问题,可以将数据表建模为属性上的关系或在给定的测试条件下生成对应数据集。上述方法虽然功能强大,但所涉及的约束多是为数据库应用程序量身定制的,包括主键、最值、空值等约束;而这些方法并不适合直接应用于可视化评估,为了解释可视化特征,测试所用的数据集需要包含一些不同的数据模式,如趋势、相关性和聚类等等。
4、此外,也有不少研究者提出了基于可视化的技术,以便用户能够交互式地创建数据集,并在同一个界面中对输出结果进行进一步探索,这些数据集模拟了多维聚类、相关性、趋势和异常值等数据模式。相对而言,现有系统擅长创建具有特定统计特征的数据,但是它们在多种约束条件组合作用时生成效果受限,用户往往难以在string类型中定义数据属性,如满足特定分布、具有重复值和包含空值等。
5、现有的可视化领域的数据生成系统使用五种类型的生成器(随机生成器、几何生成器、辅助生成器、函数生成器和序列生成器)来描述数据特征。用户在使用该系统时,可以通过集成不同的生成器来定义数据属性,并使用平行坐标图来显示所生成的高维数据。然而,该系统在生成数据时,所调用的生成器受次序影响,当前生成器将修改上一生成器所输出的结果,当生成器叠加数量较多时,最终输出结果无法保证依旧满足最初生成器的约束;同时,该系统并不支持定义具有丰富语义的数据属性;此外,该系统并不是为可视化评估量身定制,对于生成结果的展示只有平行坐标图这一形式,用户的操作自由度较低。
技术实现思路
1、针对现有技术的不足,本发明提出一种使用合成数据表进行可视化评估的系统。
2、具体技术方案如下:
3、一种使用合成数据表进行可视化评估的系统,包括数据特征声明模块、可视化结果展示模块、自定义评估模块:
4、所述数据特征声明模块用于接收json格式定义的数据规范,依次进行规范解析、数据生成、数据完善和数据输出;所述数据规范包括表格整体定义和每一列的具体约束;
5、所述规范解析具体为:拆分原始数据规范中的集合关系,输出一个或多个存储于列表中的规范;
6、所述数据生成具体为:获取解析后的单个规范的表格整体行数以及每一列数据规范中的生成器信息,交由gpt处理,接收并执行gpt返回的数据生成代码,得到该列对应的候选数据列;
7、所述数据完善具体为:使用可满足性模理论smt,结合修饰类约束条件,将候选数据列依次交由smt求解器z3进行计算,得到满足所有约束的数据列;若不存在某个数据列能够同时满足所有约束,则认为无解;
8、所述数据输出具体为:将满足所有约束的各列数据整合为一张或多张完整的合成数据表,并输出;
9、所述可视化结果展示模块用于接收可视化绘制代码、数据特征声明模块所生成的合成数据表,并对其进行可视化展示;
10、所述可视化绘制代码在可视化函数中进行定义,所述可视化函数以参数形式提供绘制所需要的合成数据表、绘制区域对应的dom元素和外部库;每一张合成数据表对应一个可视化绘制结果;
11、所述自定义评估模块用于接收评估代码、数据特征声明模块生成的合成数据表、可视化结果展示模块生成的可视化绘制结果,计算各合成数据表的评估指标,作为评估函数返回值输出;当未定义具体评估指标的计算方式时,该评估函数默认返回可视化函数的运行时间;
12、所述评估代码在评估函数中进行定义,所述评估函数提供评估所需的合成数据表、绘制区域对应的dom元素和绘制实例。
13、进一步地,所述数据规范包含以下7类约束:
14、(1)表格:用于约束数据表的整体属性,包括行数、列数、排序方式三类;
15、(2)特殊值:用于约束数据表中某一列的特殊值情况,包括重复值数量、空值数量;
16、(3)统计值:用于约束数据表中某一列的统计情况,包括取值范围、分位数、最大值、最小值、总和、平均值、方差和标准差;
17、(4)条件语句:用于约束数据表中某一列的数据内容,包括freqif、if、switch;
18、(5)类型:用于约束数据表中某一列的数据类型,包括字符串型、整型和实数型;
19、(6)序列:用于约束数据表中某一列的序列类型与具体内容,以字符串形式指定所选的类型和对应的参数值;
20、(7)随机数:用于约束数据表中某一列的分布情况,以字符串形式指定所选的类型和对应的参数值;
21、其中,统计值约束与字符串类型约束相冲突,字符串类型约束与序列约束相冲突,序列约束与随机数约束相冲突;
22、所述表格、特殊值、统计值、条件语句为修饰类约束条件。
23、进一步地,所述规范解析还包括对单个数据规范中存在的无效输入进行检测,若存在无效输入,规范解析步骤将停止运行并报告错误内容。
24、进一步地,所述数据完善具体操作为:将每一个修饰类约束转换成布尔表达式,并且所有使用“and”连接符进行连接的约束需要被同时满足;除用户定义的显式约束外,每一列数据默认包含一个约束,即该列数据从候选数据列中选取;将所有布尔表达式输入smt求解器z3后,得到满足所有约束的数据列输出,若不存在某个数据列能够同时满足所有约束,则认为无解。
25、进一步地,所述可视化结果展示模块还将所述数据特征声明模块的原始数据规范与原始数据内容进行可视化展示。
26、进一步地,所述可视化结果展示模块还将所述自定义评估模块的评估结果使用柱状图形式可视化展示。
27、本发明的有益效果是:
28、(1)本发明将可满足性模理论求解器和提示工程相结合,不仅允许可视化工作者定义具有丰富语义的数据属性,还能保证所有数据属性均满足硬性约束。
29、(2)本发明提出的系统是为可视化评估量身定制的,允许使用者将合成数据表与可视化脚本相连接,并且使用自定义的定量指标对可视化结果进行评估。
30、(3)本发明可以提高可视化工作者的评估效率,包括灵活定义数据属性,直观展示不同数据表下的可视化效果,以及以图表形式展现自定义评估指标。
31、(4)本发明具有泛化性与通用性,数据特征声明模块可以被推广到层级数据可视化领域。