Kueri Konten (Penggalian Data)
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.
Kueri konten adalah cara mengekstrak informasi tentang statistik internal dan struktur model penambangan. Terkadang kueri konten dapat memberikan detail yang tidak tersedia di penampil. Anda juga bisa menggunakan hasil kueri konten untuk mengekstrak informasi secara terprogram untuk penggunaan lain.
Bagian ini menyediakan informasi umum tentang jenis informasi yang bisa Anda ambil dengan menggunakan kueri konten, dan sintaks DMX umum untuk kueri konten.
Kueri Konten Dasar
Anda bisa membuat kueri konten dengan menggunakan Penyusun Kueri Prediksi, menggunakan templat kueri konten DMX yang disediakan di SQL Server Management Studio, atau menulis kueri langsung di DMX. Tidak seperti kueri prediksi yang tidak perlu Anda gabungkan dengan data eksternal, sehingga kueri konten mudah ditulis.
Bagian ini menyediakan gambaran umum tentang jenis kueri konten yang bisa Anda buat.
Kueri pada struktur penambangan atau data kasus memungkinkan Anda melihat data terperinci yang digunakan untuk pelatihan.
Kueri pada model dapat mengembalikan pola, daftar atribut, rumus, dan sebagainya.
Kueri tentang Struktur dan Data Kasus
DMX mendukung kueri pada data cache yang digunakan untuk membangun struktur dan model penambangan. Secara default, cache ini dibuat saat Anda menentukan struktur penambangan, dan diisi saat Anda memproses struktur atau model.
Peringatan
Cache ini tidak dapat dihapus atau dihapus jika Anda perlu memisahkan data ke dalam set pelatihan dan pengujian. Jika cache dibersihkan, Anda tidak dapat mengkueri data kasus.
Contoh berikut menunjukkan pola umum untuk membuat kueri pada data kasus, atau kueri pada data dalam struktur penambangan:
Mendapatkan semua kasus untuk model
SELECT FROM <model>.CASES
Gunakan pernyataan ini untuk mengambil kolom tertentu dari data kasus yang digunakan untuk membangun model. Anda harus memiliki izin penelusuran pada model untuk menjalankan kueri ini.
Menampilkan semua data yang disertakan dalam struktur
SELECT FROM <structure>.CASES
Gunakan pernyataan ini untuk melihat semua data yang disertakan dalam struktur, termasuk kolom yang tidak disertakan dalam model penambangan tertentu. Anda harus memiliki izin penelusuran pada model, serta pada struktur, untuk mengambil data dari struktur penambangan.
Mendapatkan rentang nilai
SELECT DISTINCT RangeMin(<column>), RangeMax(<column>) FROM <model>
Gunakan pernyataan ini untuk menemukan nilai minimum, nilai maksimum, dan rata-rata kolom berkelanjutan, atau wadah kolom DISCRETIZED.
Mendapatkan nilai yang berbeda
SELECT DISTINCT <column>FROM <model>
Gunakan pernyataan ini untuk mengambil semua nilai kolom DISCRETE. Jangan gunakan pernyataan ini untuk kolom DISCRETIZED; gunakan fungsi RangeMin dan RangeMax sebagai gantinya.
Menemukan kasus yang digunakan untuk melatih model atau struktur
SELECT FROM <mining structure.CASES WHERE IsTrainingCase()
Gunakan pernyataan ini untuk mendapatkan kumpulan data lengkap yang digunakan dalam melatih model.
Menemukan kasus yang digunakan untuk menguji model atau struktur
SELECT FROM <mining structure.CASES WHERE IsTestingCase()
Gunakan pernyataan ini untuk mendapatkan data yang telah disisihkan untuk menguji model penambangan yang terkait dengan struktur tertentu.
Penelusuran dari pola model tertentu hingga data kasus yang mendasar
SELECT FROM <model>.CASESWHERE IsTrainingCase() AND IsInNode(<node>)
Gunakan pernyataan ini untuk mengambil data kasus terperinci dari model terlatih. Anda harus menentukan simpul tertentu: misalnya, Anda harus mengetahui ID node kluster, cabang tertentu dari pohon keputusan, dll. Selain itu, Anda harus memiliki izin penelusuran pada model untuk menjalankan kueri ini.
Kueri tentang Pola Model, Statistik, dan Atribut
Konten model penggalian data berguna untuk banyak tujuan. Dengan kueri konten model, Anda bisa:
Ekstrak rumus atau probabilitas untuk membuat perhitungan Anda sendiri.
Untuk model asosiasi, ambil aturan yang digunakan untuk menghasilkan prediksi.
Ambil deskripsi aturan tertentu sehingga Anda dapat menggunakan aturan dalam aplikasi kustom.
Lihat rata-rata pemindahan yang terdeteksi oleh model rangkaian waktu.
Dapatkan rumus regresi untuk beberapa segmen garis tren.
Ambil informasi yang dapat ditindaklanjuti tentang pelanggan yang diidentifikasi sebagai bagian dari kluster tertentu.
Contoh berikut menunjukkan beberapa pola umum untuk membuat kueri pada konten model:
Mendapatkan pola dari model
SELECT FROM <model>.CONTENT
Gunakan pernyataan ini untuk mengambil informasi terperinci tentang simpul tertentu dalam model. Bergantung pada jenis algoritma, simpul dapat berisi aturan dan rumus, statistik dukungan dan varians, dan sebagainya.
Mengambil atribut yang digunakan dalam model terlatih
CALL System.GetModelAttributes(<model>)
Gunakan prosedur tersimpan ini untuk mengambil daftar atribut yang digunakan oleh model. Informasi ini berguna untuk menentukan atribut yang dihilangkan sebagai hasil dari pemilihan fitur, misalnya.
Mengambil konten yang disimpan dalam dimensi penggalian data
SELECT FROM <model>.DIMENSIONCONTENT
Gunakan pernyataan ini untuk mengambil data dari dimensi penambangan data.
Jenis kueri ini terutama untuk penggunaan internal. Namun, tidak semua algoritma mendukung fungsionalitas ini. Dukungan ditunjukkan oleh bendera di set baris skema MINING_SERVICES.
Jika Anda mengembangkan algoritma plug-in Anda sendiri, Anda dapat menggunakan pernyataan ini untuk memverifikasi konten model Anda untuk pengujian.
Mendapatkan representasi PMML dari model
SELECT * FROM <model>.PMML
Mendapatkan dokumen XML yang mewakili model dalam format PMML. Tidak semua jenis model didukung.
Contoh
Meskipun beberapa konten model standar di seluruh algoritma, beberapa bagian konten sangat bervariasi tergantung pada algoritma yang Anda gunakan untuk membangun model. Oleh karena itu, saat membuat kueri konten, Anda harus memahami informasi apa dalam model yang paling berguna untuk model spesifik Anda.
Beberapa contoh disediakan di bagian ini untuk menggambarkan bagaimana pilihan algoritma memengaruhi jenis informasi yang disimpan dalam model. Untuk informasi selengkapnya tentang menambang konten model, dan konten yang khusus untuk setiap jenis model, lihat Menambang Konten Model (Analysis Services - Data Mining).
Contoh 1: Kueri Konten pada Model Asosiasi
Pernyataan, SELECT FROM <model>.CONTENT
, mengembalikan berbagai jenis informasi, tergantung pada jenis model yang Anda kueri. Untuk model asosiasi, informasi utama adalah jenis node. Simpul seperti kontainer untuk informasi dalam konten model. Dalam model asosiasi, simpul yang mewakili aturan memiliki nilai NODE_TYPE 8, sedangkan simpul yang mewakili itemet memiliki nilai NODE_TYPE 7.
Dengan demikian, kueri berikut mengembalikan 10 item teratas, diberi peringkat berdasarkan dukungan (pengurutan default).
SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT
FROM <model>.CONTENT WHERE NODE_TYPE = 7
Kueri berikut ini dibuat berdasarkan informasi ini. Kueri mengembalikan tiga kolom: ID simpul, aturan lengkap, dan produk di sisi kanan itemet-yaitu, produk yang diprediksi akan dikaitkan dengan beberapa produk lain sebagai bagian dari itemet.
SELECT FLATTENED NODE_UNIQUE_NAME, NODE_DESCRIPTION,
(SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name')))
FROM NODE_DISTRIBUTION
WHERE LEN(ATTRIBUTE_NAME)>2
)
AS RightSideProduct
FROM [<Association model name>].CONTENT
WHERE NODE_TYPE = 8
ORDER BY NODE_SUPPORT DESC
Kata kunci FLATTENED menunjukkan bahwa set baris berlapis harus dikonversi menjadi tabel yang diratakan. Atribut yang mewakili produk di sisi kanan aturan terkandung dalam tabel NODE_DISTRIBUTION; oleh karena itu, kami hanya mengambil baris yang berisi nama atribut, dengan menambahkan persyaratan bahwa panjangnya lebih besar dari 2.
Fungsi string sederhana digunakan untuk menghapus nama model dari kolom ketiga. (Biasanya nama model diawali dengan nilai kolom berlapis.)
Klausa WHERE menentukan bahwa nilai NODE_TYPE harus 8, untuk hanya mengambil aturan.
Untuk contoh selengkapnya, lihat Contoh Kueri Model Asosiasi.
Contoh 2: Kueri Konten pada Model Pohon Keputusan
Model pohon keputusan dapat digunakan untuk prediksi serta untuk klasifikasi. Contoh ini mengasumsikan bahwa Anda menggunakan model untuk memprediksi hasil, tetapi Anda juga ingin mengetahui faktor atau aturan mana yang dapat digunakan untuk mengklasifikasikan hasilnya.
Dalam model pohon keputusan, simpul digunakan untuk mewakili simpul pohon dan daun. Caption untuk setiap simpul berisi deskripsi jalur ke hasil. Oleh karena itu, untuk melacak jalur untuk hasil tertentu, Anda perlu mengidentifikasi simpul yang berisinya, dan mendapatkan detail untuk simpul tersebut.
Dalam kueri prediksi, Anda menambahkan fungsi prediksi PredictNodeId (DMX), untuk mendapatkan ID simpul terkait, seperti yang ditunjukkan dalam contoh berikut:
SELECT Predict([Bike Buyer]), PredictNodeID([Bike Buyer])
FROM [<decision tree model name>]
PREDICTION JOIN
<input rowset>
Setelah Anda memiliki ID simpul yang berisi hasilnya, Anda bisa mengambil aturan atau jalur yang menjelaskan prediksi dengan membuat kueri konten yang menyertakan NODE_CAPTION, sebagai berikut:
SELECT NODE_CAPTION
FROM [<decision tree model name>]
WHERE NODE_UNIQUE_NAME= '<node id>'
Untuk contoh selengkapnya, lihat Contoh Kueri Model Pohon Keputusan.
Bekerja dengan Hasil Kueri
Seperti yang ditunjukkan oleh contoh, kueri konten sebagian besar mengembalikan kumpulan baris tabular, tetapi juga dapat menyertakan informasi dari kolom berlapis. Anda dapat meratakan set baris yang dikembalikan, tetapi ini dapat membuat bekerja dengan hasil yang lebih kompleks. Konten simpul NODE_DISTRIBUTION khususnya berlapis, tetapi berisi banyak informasi menarik tentang model.
Untuk informasi selengkapnya tentang cara bekerja dengan kumpulan baris hierarkis, lihat spesifikasi OLEDB pada MSDN.