Aracılığıyla paylaş


reduce işleci

Değer benzerliğine göre bir dizi dizeyi birlikte gruplandırın.

Bu tür her grup için işleç bir pattern, countve representativedöndürür. Karakterin pattern joker karakteri temsil ettiği * grubu en iyi şekilde açıklar. count, gruptaki değerlerin sayısıdır ve representative grubundaki özgün değerlerden biridir.

Sözdizimi

T reduce | [kind = ReduceKind] by İfade [with [ = threshold Eşik] [, = characters Karakterler]]

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
İfade string ✔️ Azaltılan değer.
Threshold real Azaltma işlemini tetikleyebilmek için gruplandırma ölçütleriyle eşleştirmek için gereken en düşük satır kesirini belirleyen 0 ile 1 arasında bir değer. Varsayılan değer 0,1'dir.

Büyük girişler için küçük bir eşik değeri ayarlamanızı öneririz. Daha küçük bir eşik değeriyle, daha benzer değerler birlikte gruplandırılır ve bu da daha az ama daha benzer gruplara neden olur. Daha büyük bir eşik değeri daha az benzerlik gerektirir ve bu da daha az benzer olan daha fazla grupla sonuçlanır. Bkz. Örnekler.
Karakterler string Terimler arasında ayrı olan karakterlerin listesi. Varsayılan değer, ascii olmayan her sayısal karakterdir. Örnekler için bkz . Karakter Davranışı parametresi.
ReduceKind string Tek geçerli değer olur source. belirtilirsesource, işleci sütunu tarafından Patterntoplama yerine tablodaki var olan satırlara eklerPattern.

Döndürülenler

, countve representativebaşlıklı patterngrup ve sütun sayısı kadar satırı olan bir tablo. En pattern iyi, karakterin joker karakteri veya rastgele ekleme dizesi için yer tutucuyu temsil ettiği * grubu açıklar. count, gruptaki değerlerin sayısıdır ve representative grubundaki özgün değerlerden biridir.

Örneğin, sonucu reduce by city şunları içerebilir:

Desen Sayı Vekil
San* 5182 San Bernard
Aziz* 2846 Saint Lucy
Moskova 3726 Moskova
*-üzerinde-* 2730 Bire Bir
Paris 2716 Paris

Örnekler

Küçük eşik değeri

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" 

Çıktı

Desen Sayı Vekil
MachineLearning* 1000 MachineLearningX4

Büyük eşik değeri

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" 

Çıktı

Desen Sayı Vekil
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

Karakter Davranışı parametresi

Karakterler parametresi belirtilmemişse, ascii olmayan her sayısal karakter bir terim ayırıcısı olur.

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

Çıktı

Desen Sayı Vekil
Diğer 10

Ancak, "Z" öğesinin bir ayırıcı olduğunu belirtirseniz, içindeki her değer str 2 terim gibidir: foo ve tostring(x):

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

Çıktı

Desen Sayı Vekil
Foo* 10 fooZ1

Temizlenmiş girişe uygula reduce

Aşağıdaki örnekte, daraltılmakta reduce olan sütundaki GUID'lerin azaltmadan önce değiştirildiği bir "temizlenmiş" girişe işlecinin nasıl uygulanabileceği gösterilmektedir

// 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="-_"

otomatik küme

Not

işlecinin reduce uygulanması büyük ölçüde Risto Vaarandi tarafından yapılan Olay Günlüklerinden Araştırma Desenleri için A Veri Kümeleme Algoritması kağıdını temel alır.