La fonction d'exploration de motifs analyse des échantillons comportant plusieurs attributs selon des conditions spécifiques. Elle détecte des modèles distincts qui influencent le partitionnement des données, ce qui vous aide à identifier rapidement les causes des écarts entre les conditions.
diff_patterns
Cette fonction compare deux jeux de données de même structure pour identifier les modèles d'attributs discrets (dimensions) divergents. Elle est conçue pour comparer les modèles (ensembles d'éléments fréquents) présents dans des données tabulaires.
Syntaxe
diff_patterns($TABLE, $HEADER, $SPLIT_COLUMN, $TEST_VAL, $CONTROL_VAL, $METRIC_COLUMN, $WEIGHT_COLUMN, $PARAM)
Paramètres
Lorsque vous utilisez la fonction de statistiques de différence de motifs, assurez-vous que la colonne $SPLIT_COLUMN contient des lignes pour les valeurs $TEST_VAL et $CONTROL_VAL. La fonction ne peut pas effectuer de comparaison si les données du groupe test ou du groupe témoin sont manquantes.
Paramètre | Type de données | Obligatoire | Description |
$TABLE | row<array<T>, array<E>, ..., array<F>> | Oui | Table d'entrée pour la fonction diff_patterns. Chaque colonne représente une dimension pour l'analyse détaillée. |
$HEADER | array<varchar> | Oui | Noms des colonnes. Ces noms correspondent aux colonnes de $TABLE. Le nombre de noms d'en-tête doit correspondre au nombre de colonnes de la table. |
$SPLIT_COLUMN | varchar | Oui | Nom de la colonne cible utilisée pour distinguer les groupes. La catégorie de tag prend actuellement uniquement en charge le type chaîne. |
$TEST_VAL | varchar | Oui | Valeur dans $SPLIT_COLUMN correspondant au groupe test. Assurez-vous que $TEST_VAL existe dans $SPLIT_COLUMN. Sinon, il est impossible de distinguer les deux groupes. Généralement, $TEST_VAL correspond à une valeur anormale. |
$CONTROL_VAL | varchar | Oui | Valeur dans $SPLIT_COLUMN correspondant au groupe témoin. Assurez-vous que $CONTROL_VAL existe dans $SPLIT_COLUMN. Sinon, il est impossible de distinguer les deux groupes. $CONTROL_VAL correspond à une valeur normale. |
$METRIC_COLUMN | double/int | Non | Colonne de métrique. La valeur par défaut est Si vous souhaitez analyser l'impact des combinaisons de dimensions sur une métrique spécifique en plus des groupes de données, spécifiez une colonne de métrique. Par exemple, si une colonne « qps » enregistre votre métrique, l'algorithme peut calculer les écarts de cette métrique pour diverses combinaisons de dimensions. |
$WEIGHT_COLUMN | varchar | Non | Colonne de pondération. La valeur par défaut est '' , ce qui signifie qu'aucune colonne de pondération n'est spécifiée. Si ce paramètre n'est pas défini, toutes les lignes sont supposées avoir le même poids. Si une colonne de pondération est définie, tous les calculs prennent en compte les poids. Par exemple, une ligne avec un poids de 2 est traitée comme si elle apparaissait deux fois par rapport aux lignes ayant un poids de 1. |
$PARAM | varchar | Non | Pour plus d'informations, consultez Détails du paramètre param. |
Détails du paramètre param
|
Paramètre |
Description |
Type |
Obligatoire |
Par défaut |
Valeurs valides |
|
minimum_support_fraction |
Support minimal d'un motif de sortie dans le groupe test. Par exemple, si un motif apparaît avec une fréquence de 0,1 dans le groupe test, son support est de 0,1. Ce paramètre contrôle le nombre de motifs de sortie en ajustant la sensibilité. |
double |
Non |
0,05 |
(0, 1) |
|
allow_sample |
Indique si l'échantillonnage est autorisé pour les calculs. |
bool |
Non |
true |
[true, false] |
|
agg_op |
Un motif filtre plusieurs lignes de données. La fonction calcule ensuite la valeur agrégée de ces lignes dans METRIC_COLUMN. Ce paramètre spécifie l'opération d'agrégation à utiliser. Si METRIC_COLUMN n'est pas spécifié, la valeur par défaut est 1 pour le groupe test et 0 pour le groupe témoin. |
string |
Non |
"avg" |
["sum", "avg", "max", "min", "count", "p95"] |
|
shapley_value_min_fraction |
Fraction minimale de la valeur de Shapley pour une condition. Ce paramètre contrôle le nombre de conditions dans un motif. |
double |
Non |
0,1 |
(0, 1) |
Exemples
-
Analyse de requête :
L'indicateur
set session enable_remote_functions=trueest requis car cette fonctionnalité est en aperçu public. Vous devez ajouter cet indicateur manuellement. Cette exigence sera supprimée dans les versions futures.* | 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 -
Sorties :
[["\"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]
Détails de la valeur de retour
Paramètre | Type | Description | Exemple |
$RET.patterns | array<varchar> | Modèles de table, qui sont des ensembles d'éléments fréquents. |
|
$RET.test_supports | array<bigint> | Fréquence du modèle correspondant dans le groupe test. |
|
$RET.control_supports | array<bigint> | Fréquence du modèle correspondant dans le groupe témoin. Par comparaison, les résultats qui apparaissent en premier dans la sortie de diff_patterns ont une fréquence beaucoup plus élevée dans le groupe test (groupe anormal) que dans le groupe témoin (groupe normal). |
|
$RET.test_ratio | array<double> | Ratio du modèle correspondant dans le groupe test (label=1) par rapport à l'ensemble total des données de test. |
|
$RET.control_ratio | array<double> | Ratio du modèle correspondant dans le groupe témoin (label=0) par rapport à l'ensemble de validation total. |
|
$RET.difference | array<double> | Différence entre les données du groupe test et celles du groupe témoin. |
|
$RET.test_average_metric | array<double> | Valeur moyenne de METRIC_COLUMN pour les données correspondant au motif. Si METRIC_COLUMN est '', cette valeur de retour n'a pas de sens. |
|
$RET.control_average_metric | array<double> | Valeur moyenne de METRIC_COLUMN pour les données ne correspondant pas au motif. Si METRIC_COLUMN est '', cette valeur de retour n'a pas de sens. |
|
$RET.error_msg | varchar/null | Message d'erreur. Si aucune erreur ne se produit, la valeur de retour est |
|