plugin diffpatterns

Membandingkan dua himpunan data dari struktur yang sama dan menemukan pola atribut diskrit (dimensi) yang mencirikan perbedaan antara dua himpunan data. Plugin dipanggil dengan operator evaluate.

diffpatterns dikembangkan untuk membantu menganalisis kegagalan (misalnya, dengan membandingkan kegagalan dengan kegagalan dalam jangka waktu tertentu), tetapi berpotensi menemukan perbedaan antara dua himpunan data dari struktur yang sama.

Catatan

diffpatterns bertujuan untuk menemukan pola yang signifikan (yang mengambil bagian dari perbedaan data antara himpunan) dan tidak ditujukan untuk perbedaan baris demi baris.

Sintaks

T | evaluate diffpatterns(SplitColumn,SplitValueA,SplitValueB [,WeightColumn,Threshold,MaxDimensions,CustomWildcard, ...])

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Jenis Diperlukan Deskripsi
SplitColumn string ✔️ Nama kolom yang memberi tahu algoritma cara membagi kueri menjadi himpunan data. Menurut nilai yang ditentukan untuk argumen SplitValueA dan SplitValueB , algoritma membagi kueri menjadi dua himpunan data, "A" dan "B", dan menganalisis perbedaan di antaranya. Dengan demikian, kolom terpisah harus memiliki setidaknya dua nilai yang berbeda.
SplitValueA string ✔️ Representasi string dari salah satu nilai dalam SplitColumn yang ditentukan. Semua baris yang memiliki nilai ini dalam SplitColumn mereka dianggap sebagai himpunan data "A".
SplitValueB string ✔️ Representasi string dari salah satu nilai dalam SplitColumn yang ditentukan. Semua baris yang memiliki nilai ini dalam SplitColumn mereka dianggap sebagai himpunan data "B".
WeightColumn string Kolom yang digunakan untuk mempertimbangkan setiap baris dalam input sesuai dengan bobot yang ditentukan. Harus berupa nama kolom numerik, seperti int, , longreal. Secara default setiap baris memiliki berat '1'. Untuk menggunakan nilai default, masukkan tilde: ~. Penggunaan umum kolom berat yaitu untuk memperhitungkan pengambilan sampel atau bucketing/agregasi data yang sudah disematkan ke dalam setiap baris.

Contoh: T | extend splitColumn= iff(request_responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", sample_Count)
Ambang long Panjang dalam kisaran 0,015 hingga 1. Nilai ini menetapkan perbedaan rasio pola minimal antara dua set. Defaultnya adalah 0,05. Untuk menggunakan nilai default, masukkan tilde: ~.

Contoh: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", 0.04)
MaxDimensions int Menetapkan jumlah maksimum dimensi yang tidak berkorelasi per pola hasil. Dengan menentukan batas, Anda mengurangi runtime kueri. Defaultnya tidak terbatas. Untuk menggunakan nilai default, masukkan tilde: ~.

Contoh: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", 3)
CustomWildcard string Menetapkan nilai kartubebas untuk jenis tertentu dalam tabel hasil yang akan menunjukkan bahwa pola saat ini tidak memiliki pembatasan pada kolom ini. Defaultnya adalah null, kecuali untuk kolom string yang defaultnya adalah string kosong. Jika defaultnya adalah nilai yang layak dalam data, nilai kartubebas yang berbeda harus digunakan. Contohnya,*. Untuk menggunakan nilai default, masukkan tilde: ~.

Contoh: T | extend splitColumn = iff(request-responseCode == 200, "Success" , "Failure") | evaluate diffpatterns(splitColumn, "Success","Failure", "~", "~", "~", int(-1), double(-1), long(0), datetime(1900-1-1))

Mengembalikan

diffpatterns mengembalikan sekumpulan kecil pola yang menangkap bagian data yang berbeda dalam dua set (yaitu, pola yang menangkap persentase besar baris dalam himpunan data pertama dan persentase rendah baris dalam set kedua). Setiap pola diwakili oleh baris dalam hasil.

Hasil diffpatterns mengembalikan kolom berikut:

  • SegmentId: identitas yang ditetapkan ke pola dalam kueri saat ini (catatan: ID tidak dijamin sama dalam kueri berulang).

  • CountA: jumlah baris yang diambil oleh pola di Set A (Set A setara dengan where tostring(splitColumn) == SplitValueA).

  • CountB: jumlah baris yang diambil oleh pola di Set B (Set B setara dengan where tostring(splitColumn) == SplitValueB).

  • PercentA: persentase baris di Set A yang diambil oleh pola (100,0 * CountA / count(SetA)).

  • PercentB: persentase baris di Set B yang diambil oleh pola (100,0 * CountB / count(SetB)).

  • PercentDiffAB: perbedaan poin persentase absolut antara A dan B (|PercentA - PercentB|) adalah ukuran utama signifikansi pola dalam menggambarkan perbedaan antara dua set.

  • Kolom lainnya: adalah skema asli input dan menjelaskan pola, setiap baris (pola) mewakili persimpangan nilai non-wildcard kolom (setara dengan where col1==val1 and col2==val2 and ... colN=valN untuk setiap nilai non-wildcard dalam baris).

Untuk setiap pola, kolom yang tidak diatur dalam pola (yaitu, tanpa batasan pada nilai tertentu) akan berisi nilai wildcard, yang null secara default. Lihat di bagian Argumen di bawah ini bagaimana kartubebas dapat diubah secara manual.

  • Catatan: polanya sering kali tidak berbeda. Mereka mungkin tumpang tindih, dan biasanya tidak mencakup semua baris asli. Beberapa baris mungkin tidak termasuk dalam pola apa pun.

Tip

  • Gunakan di mana dan proyek dalam pipa input untuk mengurangi data menjadi apa yang Anda minati.
  • Ketika Anda menemukan baris yang menarik, Anda mungkin ingin menelusurinya lebih jauh dengan menambahkan nilai spesifiknya ke filter where Anda.

Contoh

StormEvents 
| where monthofyear(StartTime) == 5
| extend Damage = iff(DamageCrops + DamageProperty > 0 , 1 , 0)
| project State , EventType , Source , Damage, DamageCrops
| evaluate diffpatterns(Damage, "0", "1" )

Output

SegmentId CountA CountB PercentA PercentB PercentDiffAB Provinsi EventType Sumber DamageCrops
0 2278 93 49.8 7.1 42.7 Hail 0
1 779 512 17.03 39.08 22.05 Angin Badai Petir
2 1098 118 24.01 9.01 15 Spotter terlatih 0
3 136 158 2.97 12.06 9.09 Koran
4 359 214 7.85 16.34 8.49 Banjir Bandang
5 50 122 1,09 9.31 8.22 IOWA
6 655 279 14.32 21.3 6.98 Penegakan Hukum
7 150 117 3.28 8.93 5.65 Banjir
8 362 176 7.91 13.44 5.52 Manajer Darurat