Tengo un montón de datos de pruebas de regresión. Cada prueba es solo una lista de mensajes (matrices asociativas), asignando nombres de campos de mensaje a valores. Hay mucha repetición dentro de estos datos.cómo identificar el conjunto mínimo de parámetros que describen un conjunto de datos
Por ejemplo
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', ... },
]
me gustaría para representar los datos de campo (como un árbol de decisión mínima profundidad?) De manera que cada mensaje puede ser regenerado mediante programación utilizando un número mínimo de parámetros. Por ejemplo, en el anterior
- foo es siempre 'bar', por lo que no necesito mencionar que
- remitente y el cliente están correlacionados, por lo que sólo es necesario mencionar uno u otro
- msg y es diferente cada vez
así que me gustaría ser capaz de regenerar estos mensajes con un programa a lo largo de las líneas de
write_msg('client', '123')
write_msg('server', '456')
write_msg('client', '789')
donde la función write_msg estaría compuesta por sentencias if anidadas o llamadas a subfunciones utilizando los parámetros.
Según mis datos originales, ¿cómo puedo determinar el conjunto de parámetros "más importantes", es decir, los que me permitirán recrear mi conjunto de datos utilizando la menor cantidad de argumentos?
Hmm. Me alegra ver que este problema realmente es difícil, y no he estado dando vueltas sin motivo. Gracias por recopilar esas referencias. – Eric