La función de minería de patrones analiza muestras con varios atributos según condiciones específicas. Identifica patrones distintivos que afectan la partición de datos y le permite determinar rápidamente las causas de las diferencias entre condiciones.
diff_patterns
Esta función compara dos conjuntos de datos con la misma estructura para identificar patrones de atributos discretos (dimensiones) diferentes. Está diseñada para comparar plantillas (conjuntos de elementos frecuentes) en datos tabulares.
Sintaxis
diff_patterns($TABLE, $HEADER, $SPLIT_COLUMN, $TEST_VAL, $CONTROL_VAL, $METRIC_COLUMN, $WEIGHT_COLUMN, $PARAM)
Parámetros
Al usar la función de estadísticas de diferencia de patrones, asegúrese de que $SPLIT_COLUMN contenga filas tanto para $TEST_VAL como para $CONTROL_VAL. La función no puede comparar si faltan los datos del grupo de prueba o del grupo de control.
Parámetro | Tipo de datos | Obligatorio | Descripción |
$TABLE | row<array<T>, array<E>, ..., array<F>> | Sí | Tabla de entrada para la función diff_patterns. Cada columna es una columna de dimensión para el análisis detallado. |
$HEADER | array<varchar> | Sí | Nombres de las columnas. Deben corresponder a las columnas en $TABLE. El número de nombres de encabezado debe coincidir con el número de columnas de la tabla. |
$SPLIT_COLUMN | varchar | Sí | Nombre de la columna objetivo utilizada para distinguir entre grupos. Actualmente, la categoría de etiqueta solo admite el tipo de cadena. |
$TEST_VAL | varchar | Sí | Valor en $SPLIT_COLUMN correspondiente al grupo de prueba. Asegúrese de que $TEST_VAL exista en $SPLIT_COLUMN; de lo contrario, no se podrán distinguir los dos grupos. Por lo general, $TEST_VAL corresponde a un valor anómalo. |
$CONTROL_VAL | varchar | Sí | Valor en $SPLIT_COLUMN correspondiente al grupo de control. Asegúrese de que $CONTROL_VAL exista en $SPLIT_COLUMN; de lo contrario, no se podrán distinguir los dos grupos. $CONTROL_VAL corresponde a un valor normal. |
$METRIC_COLUMN | double/int | No | Columna de métrica. El valor predeterminado es Si desea analizar el impacto de las combinaciones de dimensiones en una métrica específica además de los grupos de datos, especifique una columna de métrica. Por ejemplo, si una columna 'qps' registra su métrica, el algoritmo puede calcular las diferencias en esta métrica para diversas combinaciones de dimensiones. |
$WEIGHT_COLUMN | varchar | No | Columna de peso. El valor predeterminado es '', lo que indica que no se especifica ninguna columna de peso. Si no se establece este parámetro, se asume que todas las filas tienen el mismo peso. Si se define una columna de peso, todos los cálculos consideran dichos pesos. Por ejemplo, una fila con peso de 2 se trata como si apareciera dos veces en comparación con las filas con peso de 1. |
$PARAM | varchar | No | Para obtener más información, consulte param parameter details. |
Detalles del parámetro param
|
Parámetro |
Descripción |
Tipo |
Obligatorio |
Predeterminado |
Valores válidos |
|
minimum_support_fraction |
Soporte mínimo de un patrón de salida en el grupo de prueba. Por ejemplo, si un patrón aparece con una frecuencia de 0.1 en el grupo de prueba, su soporte es 0.1. Este parámetro controla el número de patrones de salida mediante el ajuste de la sensibilidad. |
double |
No |
0.05 |
(0, 1) |
|
allow_sample |
Especifica si se permite el muestreo para los cálculos. |
bool |
No |
true |
[true, false] |
|
agg_op |
Un patrón filtra varias filas de datos y la función calcula el valor agregado de estas filas en METRIC_COLUMN. Este parámetro especifica la operación de agregación por utilizar. Si no se especifica METRIC_COLUMN, el valor predeterminado es 1 para el grupo de prueba y 0 para el grupo de control. |
string |
No |
"avg" |
["sum", "avg", "max", "min", "count", "p95"] |
|
shapley_value_min_fraction |
Fracción mínima del valor de Shapley para una condición. Este parámetro controla el número de condiciones en un patrón. |
double |
No |
0.1 |
(0, 1) |
Ejemplos
-
Análisis de consulta:
La marca
set session enable_remote_functions=truees obligatoria porque esta función se encuentra en versión preliminar pública. Debe agregar esta marca manualmente. Este requisito se eliminará en versiones futuras.* | set session enable_remote_functions=true ; with t0 as (select JSON_EXTRACT_SCALAR(entity, '$.platform') AS platform, JSON_EXTRACT_SCALAR(entity, '$.region') AS region, cast(value as double) as value, if((value > 100), 'true', 'false') as anomaly_label from log), t1 as ( select array_agg(platform) as platform, array_agg(region) as region, array_agg(anomaly_label) as anomaly_label, array_agg(value) as value from t0), t2 as (select row(platform, region, anomaly_label, value) as table_row from t1), t3 as (select diff_patterns(table_row, ARRAY['platform', 'region', 'anomaly_label', 'value'],'anomaly_label', 'true', 'false', 'value') as ret from t2) select * from t3 -
Salida:
[["\"platform\"='Amazon Prime'","\"platform\"='Console'","\"platform\"='VR'","\"platform\"='Mobile'","\"platform\"='PC'","\"platform\"='Hulu'","\"platform\"='Netflix' AND \"region\"='Asia'","\"platform\"='YouTube'","\"platform\"='Disney+' AND \"region\"='South America'"],[18720,56921,44516,47520,44640,8640,4320,15840,4320],[0,4999,7324,5760,4320,0,0,1440,0],[0.05248902272841978,0.15960083668399478,0.12481844742405635,0.13324136538752713,0.1251661311216164,0.024225702797732206,0.012112851398866103,0.04441378846250904,0.012112851398866103],[0.0,0.0032988991351195829,0.004833194091941553,0.003801092022062172,0.0028508190165466289,0.0,0.0,0.000950273005515543,0.0],[0.05248902272841978,0.1563019375488752,0.1199852533321148,0.12944027336546497,0.12231531210506977,0.024225702797732206,0.012112851398866103,0.0434635154569935,0.012112851398866103],[608.6946996258738,552.6152340898742,501.3011076154948,525.0147121416072,580.8151715760738,409.282718625793,631.6115865793741,603.7699053925991,526.960199868643],[0.0,58.46518308219622,55.396758003518488,49.12926473747681,44.68946999270535,0.0,0.0,20.76262974302821,0.0],null]
Detalles del valor de retorno
Parámetro | Tipo | Descripción | Ejemplo |
$RET.patterns | array<varchar> | Plantillas de tabla, que son conjuntos de elementos frecuentes. |
|
$RET.test_supports | array<bigint> | Frecuencia de la plantilla correspondiente en el grupo de prueba. |
|
$RET.control_supports | array<bigint> | Frecuencia de la plantilla correspondiente en el grupo de control. En comparación, los resultados que aparecen primero en la salida de diff_patterns tienen una frecuencia mucho mayor en el grupo de prueba (grupo anómalo) que en el grupo de control (grupo normal). |
|
$RET.test_ratio | array<double> | Proporción de la plantilla correspondiente en el grupo de prueba (label=1) respecto al conjunto total de datos de prueba. |
|
$RET.control_ratio | array<double> | Proporción de la plantilla correspondiente en el grupo de control (label=0) respecto al conjunto de validación total. |
|
$RET.difference | array<double> | Diferencia entre los datos del grupo de prueba y los del grupo de control. |
|
$RET.test_average_metric | array<double> | Valor promedio de METRIC_COLUMN para los datos que coinciden con el patrón. Si METRIC_COLUMN es '', este valor de retorno no es significativo. |
|
$RET.control_average_metric | array<double> | Valor promedio de METRIC_COLUMN para los datos que no coinciden con el patrón. Si METRIC_COLUMN es '', este valor de retorno no es significativo. |
|
$RET.error_msg | varchar/null | Mensaje de error. Si no ocurre ningún error, el valor de retorno es |
|