Udostępnij za pośrednictwem


operator zmniejszania

Grupuje zestaw ciągów na podstawie podobieństwa wartości.

Dla każdej takiej grupy operator zwraca wartość pattern, counti representative. Najlepiej pattern opisuje grupę, w której * znak reprezentuje symbol wieloznaczny. Jest count to liczba wartości w grupie, a representative jest jedną z oryginalnych wartości w grupie.

Składnia

T reduce | [kind = ReduceKind] by Expr [with =threshold Próg] [ characters =, Znaki]]

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
Wyrażenie string ✔️ Wartość, o którą należy zmniejszyć.
Threshold real Wartość z zakresu od 0 do 1, która określa minimalny ułamek wierszy wymaganych do dopasowania kryteriów grupowania w celu wyzwolenia operacji redukcji. Wartość domyślna to 0,1.

Zalecamy ustawienie małej wartości progowej dla dużych danych wejściowych. Przy mniejszej wartości progowej pogrupowane są bardziej podobne wartości, co skutkuje mniejszą liczbą, ale bardziej podobnymi grupami. Większa wartość progowa wymaga mniejszej podobieństwa, co powoduje, że więcej grup jest mniej podobnych. Zobacz Przykłady.
Znaki string Lista znaków, które oddzielają się od terminów. Wartość domyślna to każdy znak nienumeryczny ascii. Aby zapoznać się z przykładami, zobacz Zachowanie parametru Znaków.
ReduceKind string Jedyną prawidłową wartością jest source. Jeśli source zostanie określony, operator dołącza kolumnę Pattern do istniejących wierszy w tabeli zamiast agregować według Pattern.

Zwraca

Tabela zawierająca tyle wierszy, ile zawiera grupy i kolumny patterno nazwie , counti representative. Najlepiej pattern opisuje grupę, w której * znak reprezentuje symbol wieloznaczny lub symbol zastępczy dla dowolnego ciągu wstawiania. Jest count to liczba wartości w grupie, a representative jest jedną z oryginalnych wartości w grupie.

Na przykład wynik reduce by city może obejmować:

Wzorzec Count Przedstawiciel
San* 5182 San Bernard
Święty* 2846 Święty Lucy
Moskwa 3726 Moskwa
*-na-* 2730 Jeden -on- Jeden
Paryż 2716 Paryż

Przykłady

Mała wartość progowa

range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText  with threshold=0.001 , characters = "X" 

Wyjście

Wzorzec Count Przedstawiciel
MachineLearning* 1000 MachineLearningX4

Duża wartość progowa

range x from 1 to 1000 step 1
| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))
| reduce by MyText  with threshold=0.9 , characters = "X" 

Wyjście

Wzorzec Count Przedstawiciel
MachineLearning* 177 MachineLearningX9
MachineLearning* 102 MachineLearningX0
MachineLearning* 106 MachineLearningX1
MachineLearning* 96 MachineLearningX6
MachineLearning* 110 MachineLearningX4
MachineLearning* 100 MachineLearningX3
MachineLearning* 99 MachineLearningX8
MachineLearning* 104 MachineLearningX7
MachineLearning* 106 MachineLearningX2

Zachowanie parametru Znaki

Jeśli parametr Characters jest nieokreślony, każdy znak liczbowy spoza ascii staje się separatorem terminów.

range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str

Wyjście

Wzorzec Count Przedstawiciel
inni 10

Jeśli jednak określisz, że "Z" jest separatorem, to tak, jakby każda wartość w str parametrze ma 2 terminy: i tostring(x): foo

range x from 1 to 10 step 1 | project str = strcat("foo", "Z", tostring(x)) | reduce by str with characters="Z"

Wyjście

Wzorzec Count Przedstawiciel
Foo* 10 fooZ1

Zastosuj reduce do oczyszczonych danych wejściowych

W poniższym przykładzie pokazano, jak można zastosować reduce operator do danych wejściowych "oczyszczonych", w których identyfikatory GUID w kolumnie są zastępowane przed zmniejszeniem

// Start with a few records from the Trace table.
Trace | take 10000
// We will reduce the Text column which includes random GUIDs.
// As random GUIDs interfere with the reduce operation, replace them all
// by the string "GUID".
| extend Text=replace_regex(Text, @"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}", @"GUID")
// Now perform the reduce. In case there are other "quasi-random" identifiers with embedded '-'
// or '_' characters in them, treat these as non-term-breakers.
| reduce by Text with characters="-_"

autoklastrowanie

Uwaga

Implementacja reduce operatora jest w dużej mierze oparta na dokumencie A Data Clustering Algorithm for Mining Patterns From Event Logs (Algorytm klastrowania danych dla wzorców wyszukiwania z dzienników zdarzeń) firmy Risto Vaarandi.