Bagikan melalui


Contoh Kueri Model Pengklusteran Urutan

Berlaku untuk: SQL Server 2019 dan Analysis Services Azure Analysis Services Fabric/Power BI Premium sebelumnya

Penting

Penambangan data tidak digunakan lagi pada SQL Server 2017 Analysis Services dan sekarang dihentikan di SQL Server 2022 Analysis Services. Dokumentasi tidak diperbarui untuk fitur yang tidak digunakan lagi dan dihentikan. Untuk mempelajari selengkapnya, lihat Kompatibilitas mundur Analysis Services.

Saat Anda membuat kueri terhadap model penambangan data, Anda bisa membuat kueri konten, yang menyediakan detail tentang informasi yang disimpan dalam model, atau Anda bisa membuat kueri prediksi, yang menggunakan pola dalam model untuk membuat prediksi berdasarkan data baru yang Anda berikan. Untuk model pengklusteran urutan, kueri konten biasanya memberikan detail tambahan tentang kluster yang ditemukan, atau transisi dalam kluster tersebut. Anda juga dapat mengambil metadata tentang model dengan menggunakan kueri.

Kueri prediksi pada model pengklusteran urutan biasanya membuat rekomendasi berdasarkan urutan dan transisi, pada atribut non-urutan yang disertakan dalam model, atau pada kombinasi atribut urutan dan non-urutan.

Bagian ini menjelaskan cara membuat kueri untuk model yang didasarkan pada algoritma Pengklusteran Urutan Microsoft. Untuk informasi umum tentang membuat kueri, lihat Kueri Penggalian Data.

Kueri Konten

Menggunakan Himpunan Baris Skema Penggalian Data untuk mengembalikan parameter model

Mendapatkan daftar urutan untuk status

Menggunakan prosedur tersimpan sistem

Kueri Prediksi

Memprediksi status atau status berikutnya

Menemukan Informasi tentang Model Pengklusteran Urutan

Untuk membuat kueri yang bermakna pada konten model penambangan, Anda harus memahami struktur konten model, dan jenis node mana yang menyimpan jenis informasi apa. Untuk informasi selengkapnya, lihat Menambang Konten Model untuk Model Pengklusteran Urutan (Analysis Services - Penggalian Data).

Kueri Sampel 1: Menggunakan Himpunan Baris Skema Penggalian Data untuk Mengembalikan Parameter Model

Dengan mengkueri himpunan baris skema penggalian data, Anda dapat menemukan berbagai jenis informasi tentang model, termasuk metadata dasar, tanggal dan waktu model dibuat dan terakhir diproses, nama struktur penambangan yang menjadi dasar model, dan kolom yang digunakan sebagai atribut yang dapat diprediksi.

Kueri berikut mengembalikan parameter yang digunakan untuk membangun dan melatih model, [Sequence Clustering]. Anda dapat membuat model ini di Pelajaran 5 dari Tutorial Penggalian Data Dasar.

SELECT MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Sequence Clustering'  

Contoh hasil:

MINING_PARAMETERS
CLUSTER_COUNT=15,MINIMUM_SUPPORT=10,MAXIMUM_STATES=100,MAXIMUM_SEQUENCE_STATES=64

Perhatikan bahwa model ini dibangun dengan menggunakan nilai default 10 untuk CLUSTER_COUNT. Ketika Anda menentukan jumlah kluster non-nol untuk CLUSTER_COUNT, algoritma memperlakukan angka ini sebagai petunjuk bagi perkiraan jumlah kluster untuk ditemukan. Namun, dalam proses analisis, algoritma mungkin menemukan lebih banyak atau lebih sedikit kluster. Dalam hal ini, algoritma menemukan bahwa 15 kluster paling sesuai dengan data pelatihan. Oleh karena itu, daftar nilai parameter untuk model yang selesai melaporkan jumlah kluster sebagaimana ditentukan oleh algoritma, bukan nilai yang diteruskan saat membuat model.

Bagaimana perilaku ini berbeda dari membiarkan algoritma menentukan jumlah kluster terbaik? Sebagai eksperimen, Anda dapat membuat model pengklusteran lain yang menggunakan data yang sama ini, tetapi mengatur CLUSTER_COUNT ke 0. Ketika Anda melakukan ini, algoritma mendeteksi 32 kluster. Oleh karena itu, dengan menggunakan nilai default 10 untuk CLUSTER_COUNT, Anda membatasi jumlah hasil.

Nilai 10 digunakan secara default karena mengurangi jumlah kluster memudahkan sebagian besar orang untuk menelusuri dan memahami pengelompokan dalam data. Namun, setiap model dan kumpulan data berbeda. Anda mungkin ingin bereksperimen dengan jumlah kluster yang berbeda untuk melihat nilai parameter mana yang menghasilkan model yang paling akurat.

Kueri Sampel 2: Mendapatkan Daftar Urutan untuk Status

Konten model penambangan menyimpan urutan yang ditemukan dalam data pelatihan sebagai status pertama yang digabungkan dengan daftar semua status kedua terkait. Status pertama digunakan sebagai label untuk urutan, dan status kedua terkait disebut transisi.

Misalnya, kueri berikut mengembalikan daftar lengkap status pertama dalam model, sebelum urutan dikelompokkan ke dalam kluster. Anda bisa mendapatkan daftar ini dengan mengembalikan daftar urutan (NODE_TYPE = 13) yang memiliki simpul akar model sebagai induk (PARENT_UNIQUE_NAME = 0). Kata kunci FLATTENED membuat hasilnya lebih mudah dibaca.

Catatan

Nama kolom, PARENT_UNIQUE_NAME, Dukungan, dan Probabilitas harus diapit dalam tanda kurung siku untuk membedakannya dari kata kunci yang dicadangkan dengan nama yang sama.

SELECT FLATTENED NODE_UNIQUE_NAME,  
(SELECT ATTRIBUTE_VALUE AS [Product 1],  
[Support] AS [Sequence Support],   
[Probability] AS [Sequence Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_TYPE = 13  
AND [PARENT_UNIQUE_NAME] = 0  

Hasil parsial:

NODE_UNIQUE_NAME Produk 1 Dukungan Urutan Probabilitas Urutan
1081327 Tidak ada 0 #######
1081327 Stand Sepeda Serbaguna 17 0.00111
1081327 Cuci Sepeda 64 0.00418
1081327 (baris 4-36 dihilangkan)
1081327 Celana Pendek Gunung Wanita 506 0.03307

Daftar urutan dalam model selalu diurutkan menurut abjad dalam urutan naik. Urutan urutan penting karena Anda dapat menemukan transisi terkait dengan melihat nomor urut urutan. Nilai Hilang selalu transisi 0.

Misalnya, pada hasil sebelumnya, produk "Women's Mountain Shorts" adalah nomor urut 37 dalam model. Anda dapat menggunakan informasi tersebut untuk melihat semua produk yang pernah dibeli setelah "Celana Pendek Gunung Wanita."

Untuk melakukan ini, pertama-tama, Anda mereferensikan nilai yang dikembalikan untuk NODE_UNIQUE_NAME di kueri sebelumnya, untuk mendapatkan ID simpul yang berisi semua urutan untuk model. Anda meneruskan nilai ini ke kueri sebagai ID simpul induk, untuk mendapatkan hanya transisi yang disertakan dalam simpul ini, yang kebetulan berisi daftar urutan al untuk model. Namun, jika Anda ingin melihat daftar transisi untuk kluster tertentu, Anda dapat meneruskan ID node kluster, dan hanya melihat urutan yang terkait dengan kluster tersebut.

SELECT NODE_UNIQUE_NAME  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_DESCRIPTION = 'Transition row for sequence state 37'  
AND [PARENT_UNIQUE_NAME] = '1081327'  

Contoh hasil:

NODE_UNIQUE_NAME
1081365

Node yang diwakili oleh ID ini berisi daftar urutan yang mengikuti produk "Women's Mountain Shorts", bersama dengan nilai dukungan dan probabilitas.

SELECT FLATTENED  
(SELECT ATTRIBUTE_VALUE AS Product2,  
[Support] AS [P2 Support],  
[Probability] AS [P2 Probability]  
FROM NODE_DISTRIBUTION) AS t  
FROM [Sequence Clustering].CONTENT  
WHERE NODE_UNIQUE_NAME = '1081365'  

Contoh hasil:

t.Product2 Dukungan t.P2 Probabilitas t.P2
Tidak ada 230.7419 0.456012
Rompi Klasik 8.16129 0.016129
Tutup Bersepeda 60.83871 0.120235
Sarung Tangan Half-Finger 30.41935 0.060117
Long-Sleeve Logo Jersey 86.80645 0.171554
Kaus Kaki Balap 28.93548 0.057185
Short-Sleeve Classic Jersey 60.09677 0.118768

Perhatikan bahwa dukungan untuk berbagai urutan yang terkait dengan Women's Mountain Shorts adalah 506 dalam model. Nilai dukungan untuk transisi juga menambahkan hingga 506. Namun, angka-angkanya bukan angka utuh, yang tampaknya sedikit aneh jika Anda mengharapkan dukungan untuk hanya mewakili hitungan kasus yang berisi setiap transisi. Namun, karena metode untuk membuat kluster menghitung keanggotaan parsial, probabilitas transisi apa pun dalam kluster harus ditimbang oleh probabilitasnya milik kluster tertentu.

Misalnya, jika ada empat kluster, urutan tertentu mungkin memiliki peluang 40% milik kluster 1, peluang 30% milik kluster 2, peluang 20% milik kluster 3, dan peluang 10% milik kluster 4. Setelah algoritma menentukan kluster bahwa transisi kemungkinan besar menjadi milik, itu berat probabilitas dalam kluster oleh probabilitas kluster sebelumnya.

Kueri Sampel 3: Menggunakan Prosedur Tersimpan Sistem

Anda dapat melihat dari sampel kueri ini bahwa informasi yang disimpan dalam model rumit, dan bahwa Anda mungkin perlu membuat beberapa kueri untuk mendapatkan informasi yang Anda butuhkan. Namun, penampil Pengklusteran Urutan Microsoft menyediakan serangkaian alat yang kuat untuk menelusuri informasi yang terkandung dalam model pengklusteran urutan secara grafis, dan Anda juga dapat menggunakan penampil untuk mengkueri dan menelusuri paling detail model.

Dalam kebanyakan kasus, informasi yang disajikan dalam penampil Pengklusteran Urutan Microsoft dibuat dengan menggunakan prosedur tersimpan sistem Analysis Services untuk mengkueri model. Anda dapat menulis kueri Ekstensi Penggalian Data (DMX) terhadap konten model untuk mengambil informasi yang sama, tetapi prosedur tersimpan sistem Analysis Services menyediakan pintasan yang nyaman ketika untuk eksplorasi atau untuk menguji model.

Catatan

Prosedur tersimpan sistem digunakan untuk pemrosesan internal oleh server dan oleh klien yang disediakan Microsoft untuk berinteraksi dengan server Analysis Services. Oleh karena itu, Microsoft berhak untuk mengubahnya kapan saja. Meskipun dijelaskan di sini untuk kenyamanan Anda, kami tidak mendukung penggunaannya di lingkungan produksi. Untuk memastikan stabilitas dan kompatibilitas di lingkungan produksi, Anda harus selalu menulis kueri Anda sendiri dengan menggunakan DMX.

Bagian ini menyediakan beberapa sampel cara menggunakan prosedur tersimpan sistem untuk membuat kueri terhadap model pengklusteran urutan:

Profil Kluster dan Contoh Kasus

Tab Profil Kluster menunjukkan daftar kluster dalam model, ukuran setiap kluster, dan histogram yang menunjukkan status yang disertakan dalam kluster. Ada dua prosedur tersimpan sistem yang dapat Anda gunakan dalam kueri untuk mengambil informasi serupa:

  • GetClusterProfile mengembalikan karakteristik kluster, dengan semua informasi yang ditemukan dalam tabel NODE_DISTRIBUTION untuk kluster.

  • GetNodeGraph mengembalikan simpul dan tepi yang dapat digunakan untuk membangun representasi grafik matematika kluster, sesuai dengan apa yang Anda lihat pada tab pertama dari tampilan Pengklusteran Urutan. Simpul adalah kluster, dan tepi mewakili bobot atau kekuatan.

Contoh berikut menggambarkan cara menggunakan prosedur tersimpan sistem, GetClusterProfiles, untuk mengembalikan semua kluster dalam model, dengan profil masing-masing. Prosedur tersimpan ini menjalankan serangkaian pernyataan DMX yang mengembalikan kumpulan profil lengkap dalam model. Namun, untuk menggunakan prosedur tersimpan ini, Anda harus mengetahui alamat model.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('Sequence Clustering', 2147483647, 0)

Contoh berikut menggambarkan cara mengambil profil untuk kluster tertentu, Kluster 12, dengan menggunakan prosedur GetNodeGraphtersimpan sistem , dan menentukan ID kluster, yang biasanya sama dengan angka dalam nama kluster.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','12',0)  

Jika Anda menghilangkan ID kluster, seperti yang ditunjukkan dalam kueri berikut, GetNodeGraph mengembalikan daftar semua profil kluster yang diurutkan dan diratakan:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','',0)  

Tab Profil Kluster juga menampilkan histogram kasus sampel model. Kasus sampel ini mewakili kasus ideal untuk model. Kasus-kasus ini tidak disimpan dalam model dengan cara yang sama seperti data pelatihan; Anda harus menggunakan sintaks khusus untuk mengambil contoh kasus untuk model.

SELECT * FROM [Sequence Clustering].SAMPLE_CASES WHERE IsInNode('12')  

Untuk informasi selengkapnya, lihat PILIH DARI <model>. SAMPLE_CASES (DMX).

Karakteristik Kluster dan Diskriminasi Kluster

Tab Karakteristik Kluster meringkas atribut utama setiap kluster, yang diberi peringkat berdasarkan probabilitas. Anda dapat mengetahui berapa banyak kasus yang termasuk dalam kluster, dan seperti apa distribusi kasus dalam kluster: Setiap karakteristik memiliki dukungan tertentu. Untuk melihat karakteristik kluster tertentu, Anda harus mengetahui ID kluster.

Contoh berikut menggunakan prosedur tersimpan sistem, GetClusterCharacteristics, untuk mengembalikan semua karakteristik Kluster 12 yang memiliki skor probabilitas di atas ambang batas yang ditentukan sebesar 0,0005.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','12',0.0005)  

Untuk mengembalikan karakteristik semua kluster, Anda dapat membiarkan ID kluster kosong.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','',0.0005)  

Contoh berikut memanggil prosedur GetClusterDiscrimination tersimpan sistem untuk membandingkan karakteristik Kluster 1 dan Kluster 12.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('Sequence Clustering','1','12',0.0005,true)  

Jika Anda ingin menulis kueri Anda sendiri di DMX untuk membandingkan dua kluster, atau membandingkan kluster dengan pelengkapnya, Anda harus terlebih dahulu mengambil satu set karakteristik, lalu mengambil karakteristik untuk kluster tertentu yang Anda minati, dan membandingkan dua set. Skenario ini lebih rumit dan biasanya memerlukan beberapa pemrosesan klien.

Status dan Transisi

Tab Transisi Status dari Pengklusteran Urutan Microsoft melakukan kueri rumit di ujung belakang untuk mengambil dan membandingkan statistik untuk kluster yang berbeda. Untuk mereproduksi hasil ini memerlukan kueri yang lebih kompleks dan beberapa pemrosesan klien.

Namun, Anda dapat menggunakan kueri DMX yang dijelaskan di Contoh 2 bagian, Kueri Konten, untuk mengambil probabilitas dan status untuk urutan atau untuk transisi individual.

Menggunakan Model untuk Membuat Prediksi

Kueri prediksi pada model pengklusteran urutan dapat menggunakan banyak fungsi prediksi yang digunakan dengan model pengklusteran lainnya. Selain itu, Anda dapat menggunakan fungsi prediksi khusus, PredictSequence (DMX), untuk membuat rekomendasi atau untuk memprediksi status berikutnya.

Kueri Sampel 4: Memprediksi Status atau Status Berikutnya

Anda dapat menggunakan fungsi PredictSequence (DMX) untuk memprediksi status kemungkinan besar berikutnya, dengan nilai . Anda juga dapat memprediksi beberapa status berikutnya: misalnya, Anda dapat mengembalikan daftar tiga produk teratas yang mungkin dibeli pelanggan, untuk menyajikan daftar rekomendasi.

Kueri sampel berikut adalah kueri prediksi singleton yang mengembalikan lima prediksi teratas, bersama dengan probabilitasnya. Karena model menyertakan tabel berlapis, Anda harus menggunakan tabel berlapis, [v Assoc Seq Line Items], sebagai referensi kolom saat membuat prediksi. Selain itu, saat Anda menyediakan nilai sebagai input, Anda harus menggabungkan tabel kasus dan kolom tabel berlapis, seperti yang ditunjukkan oleh pernyataan SELECT berlapis.

SELECT FLATTENED PredictSequence([v Assoc Seq Line Items], 7)  
FROM [Sequence Clustering]  
NATURAL PREDICTION JOIN  
(SELECT  (SELECT 1 as [Line Number],  
   'All-Purpose Bike Stand' as [Model]) AS [v Assoc Seq Line Items])   
AS t  

Contoh hasil:

Expression.$Sequence Expression.Line Number Expression.Model
1 Tutup Bersepeda
2 Tutup Bersepeda
3 Olahraga-100
4 logo Long-Sleeve Jersey
5 Sarung Tangan Half-Finger
6 Stand Sepeda Serbaguna
7 Stand Sepeda Serbaguna

Ada tiga kolom dalam hasil, meskipun Anda mungkin hanya mengharapkan satu kolom, karena kueri selalu mengembalikan kolom untuk tabel kasus. Di sini hasilnya diratakan; jika tidak, kueri akan mengembalikan satu kolom yang berisi dua kolom tabel berlapis.

Kolom $sequence adalah kolom yang dikembalikan secara default oleh PredictSequence fungsi untuk mengurutkan hasil prediksi. Kolom , [Line Number], diperlukan untuk mencocokkan kunci urutan dalam model, tetapi kuncinya bukan output.

Menariknya, urutan teratas yang diprediksi setelah All-Purpose Bike Stand adalah Cycling Cap dan Cycling Cap. Ini bukan kesalahan. Tergantung pada bagaimana data disajikan kepada pelanggan, dan bagaimana data dikelompokkan saat melatih model, sangat mungkin untuk memiliki urutan semacam ini. Misalnya, pelanggan mungkin membeli batas bersepeda (merah) dan kemudian batas bersepeda lain (biru), atau membeli dua berturut-turut jika tidak ada cara untuk menentukan kuantitas.

Nilai dalam baris 6 dan 7 adalah tempat penampung. Ketika Anda mencapai akhir rantai kemungkinan transisi, daripada mengakhiri hasil prediksi, nilai yang diteruskan sebagai input ditambahkan ke hasil. Misalnya, jika Anda meningkatkan jumlah prediksi menjadi 20, nilai untuk baris 6-20 semuanya akan sama, All-Purpose Bike Stand.

Daftar Fungsi

Semua algoritma Microsoft mendukung serangkaian fungsi umum. Namun, algoritma Pengklusteran Urutan Microsoft mendukung fungsi tambahan yang tercantum dalam tabel berikut.

Fungsi Prediksi Penggunaan
Kluster (DMX) Mengembalikan kluster yang kemungkinan besar berisi kasus input
ClusterDistance (DMX) Mengembalikan jarak kasus input dari kluster yang ditentukan, atau jika tidak ada kluster yang ditentukan, jarak kasus input dari kluster yang paling mungkin.

Fungsi ini dapat digunakan dengan segala jenis model pengklusteran (EM, K-Means, dll.), tetapi hasilnya berbeda tergantung pada algoritma.
ClusterProbability (DMX) Mengembalikan probabilitas kasus input milik kluster yang ditentukan.
IsInNode (DMX) Menunjukkan apakah simpul yang ditentukan berisi kasus saat ini.
PredictAdjustedProbability (DMX) Mengembalikan probabilitas yang disesuaikan dari status tertentu.
PredictAssociation (DMX) Memprediksi keanggotaan asosiatif.
PredictCaseLikelihood (DMX) Mengembalikan kemungkinan bahwa kasus input akan cocok dalam model yang ada.
PredictHistogram (DMX) Mengembalikan tabel yang mewakili histogram untuk prediksi kolom tertentu.
PredictNodeId (DMX) Mengembalikan Node_ID simpul tempat kasus diklasifikasikan.
PredictProbability (DMX) Mengembalikan probabilitas untuk status tertentu.
PredictSequence (DMX) Memprediksi nilai urutan di masa mendatang untuk sekumpulan data urutan tertentu.
PredictStdev (DMX) Mengembalikan deviasi standar yang diprediksi untuk kolom yang ditentukan.
PredictSupport (DMX) Mengembalikan nilai dukungan untuk status tertentu.
PredictVariance (DMX) Mengembalikan varian kolom tertentu.

Untuk daftar fungsi yang umum untuk semua algoritma Microsoft, lihat Fungsi Prediksi Umum (DMX). Untuk sintaks fungsi tertentu, lihat Referensi Fungsi Ekstensi Penggalian Data (DMX).

Lihat juga

Kueri Penggalian Data
Referensi Teknis Algoritma Pengklusteran Urutan Microsoft
Algoritma Pengklusteran Urutan Microsoft
Konten Model Penambangan untuk Model Pengklusteran Urutan (Analysis Services - Penggalian Data)