我有一堆回归测试数据.每个测试只是一个消息列表(关联数组),将消息字段名称映射到值.这些数据中有很多重复.
例如
test1 = [
{ sender => 'client', msg => '123', arg => '900', foo => 'bar', ... },
{ sender => 'server', msg => '456', arg => '800', foo => 'bar', ... },
{ sender => 'client', msg => '789', arg => '900', foo => 'bar', ... },
]
Run Code Online (Sandbox Code Playgroud)
我想表示字段数据(作为最小深度决策树?),以便可以使用最少数量的参数以编程方式重新生成每个消息.例如,在上面
所以我希望能够使用一个程序重新生成这些消息
write_msg( 'client', '123' )
write_msg( 'server', '456' )
write_msg( 'client', '789' )
Run Code Online (Sandbox Code Playgroud)
其中write_msg函数将由嵌套的if语句或使用参数的子函数调用组成.
基于我的原始数据,我如何确定"最重要"的参数集,即能够使用最少数量的参数重新创建数据集的参数?
以下论文描述了发现函数依赖关系的算法:
\n\n\n\n\nY. Huhtala、J. K\xc3\xa4rkk\xc3\xa4inen、P. Porkka\n 和 H. Toivonen。TANE:一种用于发现函数和近似依赖关系的高效算法。计算机杂志,42(2):100\xe2\x80\x93111,\n 1999,doi:10.1093/comjnl/42.2.100。
\n\nI.萨夫尼克和 PA Flach。从关系中自下而上\n 归纳函数依赖性。在过程中。AAAI-93 研讨会:\n 数据库中的知识发现,\n 第 174\xe2\x80\x93185 页,美国华盛顿特区,\n 1993 年。
\n\nC. Wyss、C. Giannela 和 E.\n Robertson。FastFD:一种\n 启发式驱动、深度优先\n 的算法,用于从关系实例中挖掘函数\n 依赖关系。\n 在过程中。数据仓库和知识发现,第 101\xe2\x80\x93110 页,慕尼黑,\n 德国,2001 年,doi:10.1007/3-540-44801-2。
\n\n姚洪和霍华德·J·汉密尔顿。“从数据中挖掘功能依赖性。” 数据挖掘和知识发现,2008,doi:10.1007/s10618-007-0083-9。
\n
在发现多值依赖关系方面也做了一些工作:
\n\n\n\nI.萨夫尼克和 PA Flach。“从关系中发现多值依赖关系。” 智能数据分析杂志,4(3):195\xe2\x80\x93211,IOS Press,2000。
\n