如何识别描述数据集的最小参数集

Eri*_*ric 6 algorithm

我有一堆回归测试数据.每个测试只是一个消息列表(关联数组),将消息字段名称映射到值.这些数据中有很多重复.

例如

   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)

我想表示字段数据(作为最小深度决策树?),以便可以使用最少数量的参数以编程方式重新生成每个消息.例如,在上面

  • foo总是'bar',所以我不需要提及它
  • 发件人和客户是相关的,所以我只需要提及其中一个
  • 和msg每次都不同

所以我希望能够使用一个程序重新生成这些消息

write_msg( 'client', '123' )
write_msg( 'server', '456' )
write_msg( 'client', '789' )
Run Code Online (Sandbox Code Playgroud)

其中write_msg函数将由嵌套的if语句或使用参数的子函数调用组成.

基于我的原始数据,我如何确定"最重要"的参数集,即能够使用最少数量的参数重新创建数据集的参数?

Veb*_*osa 3

以下论文描述了发现函数依赖关系的算法:

\n\n
\n

Y. 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\n

I.萨夫尼克和 PA Flach。从关系中自下而上\n 归纳函数依赖性。在过程中。AAAI-93 研讨会:\n 数据库中的知识发现,\n 第 174\xe2\x80\x93185 页,美国华盛顿特区,\n 1993 年。

\n\n

C. 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\n
\n

I.萨夫尼克和 PA Flach。“从关系中发现多值依赖关系。” 智能数据分析杂志,4(3):195\xe2\x80\x93211,IOS Press,2000。

\n
\n