Bagikan melalui


Contoh Kueri Model Pohon Keputusan

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

Penting

Penambangan data tidak digunakan lagi di 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 penggalian data, Anda bisa membuat kueri konten, yang menyediakan detail tentang pola yang ditemukan dalam analisis, atau Anda bisa membuat kueri prediksi, yang menggunakan pola dalam model untuk membuat prediksi untuk data baru. Misalnya, kueri konten untuk model pohon keputusan mungkin memberikan statistik tentang jumlah kasus di setiap tingkat pohon, atau aturan yang membedakan antar kasus. Atau, kueri prediksi memetakan model ke data baru untuk menghasilkan rekomendasi, klasifikasi, dan sebagainya. Anda juga dapat mengambil metadata tentang model dengan menggunakan kueri.

Bagian ini menjelaskan cara membuat kueri untuk model yang didasarkan pada algoritma Microsoft Decision Trees.

Kueri Konten

Mengambil Parameter Model dari Himpunan Baris Skema Penggalian Data

Mendapatkan Detail tentang Pohon dalam Model dengan Menggunakan DMX

Mengambil Subtrees dari Model

Kueri Prediksi

Mengembalikan Prediksi dengan Probabilitas

Memprediksi Asosiasi dari Model Pohon Keputusan

Mengambil Rumus Regresi dari Model Pohon Keputusan

Menemukan Informasi tentang Model Pohon Keputusan

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

Kueri Sampel 1: Mengambil Parameter Model dari Himpunan Baris Skema Penggalian Data

Dengan mengkueri himpunan baris skema penggalian data, Anda dapat menemukan metadata tentang model, seperti saat dibuat, ketika model terakhir diproses, nama struktur penambangan yang menjadi dasar model, dan nama kolom yang digunakan sebagai atribut yang dapat diprediksi. Anda juga dapat mengembalikan parameter yang digunakan saat model pertama kali dibuat.

select MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_Decision Tree'  

Hasil sampel:

MINING_PARAMETERS

COMPLEXITY_PENALTY=0,5, MAXIMUM_INPUT_ATTRIBUTES=255,MAXIMUM_OUTPUT_ATTRIBUTES=255,MINIMUM_SUPPORT=10,SCORE_METHOD=4,SPLIT_METHOD=3,FORCE_REGRESSOR=

Kueri Sampel 2: Menampilkan Detail tentang Konten Model dengan Menggunakan DMX

Kueri berikut mengembalikan beberapa informasi dasar tentang pohon keputusan yang dibuat saat Anda membangun model dalam Tutorial Penggalian Data Dasar. Setiap struktur pohon disimpan dalam simpulnya sendiri. Karena model ini berisi satu atribut yang dapat diprediksi, hanya ada satu simpul pohon. Namun, jika Anda membuat model asosiasi dengan menggunakan algoritma Pohon Keputusan, mungkin ada ratusan pohon, satu untuk setiap produk.

Kueri ini mengembalikan semua simpul tipe 2, yang merupakan simpul tingkat atas pohon yang mewakili atribut tertentu yang dapat diprediksi.

Catatan

Kolom, CHILDREN_CARDINALITY, harus diapit dalam tanda kurung siku untuk membedakannya dari kata kunci yang dicadangkan MDX dengan nama yang sama.

SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY]  
FROM TM_DecisionTrees.CONTENT  
WHERE NODE_TYPE = 2  

Contoh hasil:

MODEL_NAME NODE_NAME NODE_CAPTION NODE_SUPPORT CHILDREN_CARDINALITY
TM_DecisionTree 000000001 Semua 12939 5

Apa hasil ini memberi tahu Anda? Dalam model pohon keputusan, kardinalitas simpul tertentu memberi tahu Anda berapa banyak anak segera yang dimiliki simpul. Kardinalitas untuk simpul ini adalah 5, yang berarti bahwa model membagi populasi target pembeli sepeda potensial menjadi 5 subgrup.

Kueri terkait berikut mengembalikan turunan untuk lima subgrup ini, bersama dengan distribusi atribut dan nilai dalam simpul anak. Karena statistik seperti dukungan, probabilitas, dan varians disimpan dalam tabel berlapis, NODE_DISTRIBUTION, contoh ini menggunakan FLATTENED kata kunci untuk menghasilkan kolom tabel berlapis.

Catatan

Kolom tabel berlapis, SUPPORT, harus diapit dalam tanda kurung siku untuk membedakannya dari kata kunci yang dicadangkan dengan nama yang sama.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,  
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]  
FROM NODE_DISTRIBUTION) AS t  
FROM TM_DecisionTree.CONTENT  
WHERE [PARENT_UNIQUE_NAME] = '000000001'  

Contoh hasil:

NODE_NAME NODE_CAPTION T.ATTRIBUTE_NAME T.ATTRIBUTE_VALUE DUKUNGAN
00000000100 Nomor Mobil Yang Dimiliki = 0 Pembeli Sepeda Tidak ada 0
00000000100 Nomor Mobil Yang Dimiliki = 0 Pembeli Sepeda 0 1067
00000000100 Nomor Mobil Yang Dimiliki = 0 Pembeli Sepeda 1 1875
00000000101 Nomor Mobil Yang Dimiliki = 3 Pembeli Sepeda Tidak ada 0
00000000101 Nomor Mobil Yang Dimiliki = 3 Pembeli Sepeda 0 678
00000000101 Nomor Mobil Yang Dimiliki = 3 Pembeli Sepeda 1 473

Dari hasil ini, Anda dapat mengetahui bahwa pelanggan yang membeli sepeda ([Pembeli Sepeda] = 1), 1067 pelanggan memiliki 0 mobil dan 473 pelanggan memiliki 3 mobil.

Kueri Sampel 3: Mengambil Subtrees dari Model

Misalkan Anda ingin menemukan lebih banyak tentang pelanggan yang membeli sepeda. Anda dapat melihat detail tambahan untuk salah satu sub-pohon dengan menggunakan fungsi IsDescendant (DMX) dalam kueri, seperti yang diperlihatkan dalam contoh berikut. Kueri mengembalikan jumlah pembeli sepeda dengan mengambil simpul daun (NODE_TYPE = 4) dari pohon yang berisi pelanggan yang berusia di atas 42 tahun. Kueri membatasi baris dari tabel berlapis ke baris di mana Pembeli Sepeda = 1.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,  
(  
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'  
) AS t  
FROM TM_DecisionTree.CONTENT  
WHERE ISDESCENDANT('0000000010001')  
AND NODE_TYPE = 4  

Contoh hasil:

NODE_NAME NODE_CAPTION t.SUPPORT
000000001000100 Pendapatan Tahunan >= 26000 dan < 42000 266
00000000100010100 Total Anak = 3 75
0000000010001010100 Jumlah Anak di Rumah = 1 75

Membuat Prediksi menggunakan Model Pohon Keputusan

Karena pohon keputusan dapat digunakan untuk berbagai tugas, termasuk klasifikasi, regresi, dan bahkan asosiasi, saat Anda membuat kueri prediksi pada model pohon keputusan, Anda memiliki banyak opsi yang tersedia untuk Anda. Anda harus memahami tujuan pembuatan model untuk memahami hasil prediksi. Sampel kueri berikut mengilustrasikan tiga skenario berbeda:

  • Mengembalikan prediksi untuk model klasifikasi, bersama dengan probabilitas prediksi yang benar, lalu memfilter hasilnya berdasarkan probabilitas;

  • Membuat kueri database tunggal untuk memprediksi asosiasi;

  • Mengambil rumus regresi untuk bagian dari pohon keputusan di mana hubungan antara input dan output bersifat linier.

Kueri Sampel 4: Mengembalikan Prediksi dengan Probabilitas

Kueri sampel berikut menggunakan model pohon keputusan yang dibuat dalam Tutorial Penggalian Data Dasar. Kueri lolos dalam sekumpulan data sampel baru, dari dbo tabel. ProspectiveBuyers di AdventureWorks2012 DW, untuk memprediksi pelanggan mana dalam himpunan data baru yang akan membeli sepeda.

Kueri menggunakan fungsi prediksi PredictHistogram (DMX), yang mengembalikan tabel berlapis yang berisi informasi berguna tentang probabilitas yang ditemukan oleh model. Klausa WHERE akhir kueri memfilter hasil untuk mengembalikan hanya pelanggan yang diprediksi kemungkinan membeli sepeda, dengan probabilitas lebih besar dari 0%.

SELECT  
  [TM_DecisionTree].[Bike Buyer],  
  PredictHistogram([Bike Buyer]) as Results  
From  
  [TM_DecisionTree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT  
      [FirstName],  
      [LastName],  
      [MaritalStatus],  
      [Gender],  
      [YearlyIncome],  
      [TotalChildren],  
      [NumberChildrenAtHome],  
      [HouseOwnerFlag],  
      [NumberCarsOwned]  
    FROM  
      [dbo].[ProspectiveBuyer]  
    ') AS t  
ON  
  [TM_DecisionTree].[First Name] = t.[FirstName] AND  
  [TM_DecisionTree].[Last Name] = t.[LastName] AND  
  [TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND  
  [TM_DecisionTree].[Gender] = t.[Gender] AND  
  [TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND  
  [TM_DecisionTree].[Total Children] = t.[TotalChildren] AND  
  [TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND  
  [TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND  
  [TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]  
WHERE [Bike Buyer] = 1  
AND PredictProbability([Bike Buyer]) >'.05'  

Secara default, SQL Server Analysis Services mengembalikan tabel berlapis dengan label kolom, Ekspresi. Anda dapat mengubah label ini dengan alias kolom yang dikembalikan. Jika Anda melakukan ini, alias (dalam hal ini, Hasil) digunakan sebagai judul kolom dan sebagai nilai dalam tabel berlapis. Anda harus memperluas tabel berlapis untuk melihat hasilnya.

Contoh hasil dengan Pembeli Sepeda = 1:

Pembeli Sepeda $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
1 2540 0.634849242045644 0.013562168281562 0 0
0 1460 0.364984174579377 0.00661336932550915 0 0
0 0.000166583374979177 0.000166583374979177 0 0

Jika penyedia Anda tidak mendukung kumpulan baris hierarkis, seperti yang diperlihatkan di sini, Anda bisa menggunakan kata kunci FLATTENED dalam kueri untuk mengembalikan hasil sebagai tabel yang berisi null sebagai pengganti nilai kolom berulang. Untuk informasi selengkapnya, lihat Tabel Berlapis (Analysis Services - Penggalian Data) atau Memahami Pernyataan Pemilihan DMX.

Kueri Sampel 5: Memprediksi Asosiasi dari Model Pohon Keputusan

Kueri sampel berikut didasarkan pada struktur penambangan Asosiasi. Untuk mengikuti contoh ini, Anda dapat menambahkan model baru ke struktur penambangan ini, dan memilih Pohon Keputusan Microsoft sebagai algoritma. Untuk informasi selengkapnya tentang cara membuat struktur pertambangan Asosiasi, lihat Pelajaran 3: Membangun Skenario Market Basket (Tutorial Penggalian Data Menengah).

Kueri sampel berikut adalah kueri database tunggal, yang bisa Anda buat dengan mudah di SQL Server Data Tools dengan memilih bidang lalu memilih nilai untuk bidang tersebut dari daftar drop-down.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)  
FROM  
  [DT_Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t  

Hasil yang diharapkan:

Model
Mountain-200
Tabung Ban Gunung
Tabung Ban Touring

Hasilnya memberi tahu Anda tiga produk terbaik untuk direkomendasikan kepada pelanggan yang telah membeli produk Patch Kit. Anda juga bisa menyediakan beberapa produk sebagai input saat membuat rekomendasi, baik dengan mengetikkan nilai, atau dengan menggunakan kotak dialog Input Kueri Singleton dan menambahkan atau menghapus nilai. Contoh kueri berikut menunjukkan bagaimana beberapa nilai disediakan, untuk membuat prediksi. Nilai disambungkan oleh klausa UNION dalam pernyataan SELECT yang menentukan nilai input.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)  
From  
  [DT_Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Racing Socks' AS [Model]  
  UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t  

Hasil yang diharapkan:

Model
Long-Sleeve Logo Jersey
Mountain-400-W
Rompi Klasik

Kueri Sampel 6: Mengambil Rumus Regresi dari Model Pohon Keputusan

Saat Anda membuat model pohon keputusan yang berisi regresi pada atribut berkelanjutan, Anda dapat menggunakan rumus regresi untuk membuat prediksi, atau Anda dapat mengekstrak informasi tentang rumus regresi. Untuk informasi selengkapnya tentang kueri tentang model regresi, lihat Contoh Kueri Model Regresi Linier.

Jika model pohon keputusan berisi campuran simpul dan simpul regresi yang dibagi pada atribut atau rentang diskrit, Anda dapat membuat kueri yang hanya mengembalikan simpul regresi. Tabel NODE_DISTRIBUTION berisi detail rumus regresi. Dalam contoh ini, kolom diratakan dan tabel NODE_DISTRIBUTION diberi alias untuk tampilan yang lebih mudah. Namun, dalam model ini, tidak ada regresi yang ditemukan untuk menghubungkan Pendapatan dengan atribut berkelanjutan lainnya. Dalam kasus seperti itu, SQL Server Analysis Services mengembalikan nilai rata-rata atribut dan varians total dalam model untuk atribut tersebut.

SELECT FLATTENED NODE_DISTRIBUTION AS t  
FROM DT_Predict. CONTENT  
WHERE NODE_TYPE = 25  

Contoh hasil:

t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILITAS t.VARIANS t.VALUETYPE
Pendapatan Tahunan Tidak ada 0 0.000457142857142857 0 1
Pendapatan Tahunan 57220.8876687257 17484 0.999542857142857 1041275619.52776 3
57220.8876687257 0 0 1041216662.54387 11

Untuk informasi selengkapnya tentang jenis nilai dan statistik yang digunakan dalam model regresi, lihat Menambang Konten Model untuk Model Regresi Linier (Analysis Services - Penggalian Data).

Daftar Fungsi Prediksi

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

Fungsi Prediksi Penggunaan
IsDescendant (DMX) Menentukan apakah satu simpul adalah anak dari simpul lain dalam model.
IsInNode (DMX) Menunjukkan apakah simpul yang ditentukan berisi kasus saat ini.
PredictAdjustedProbability (DMX) Mengembalikan probabilitas tertimbang.
PredictAssociation (DMX) Memprediksi keanggotaan dalam himpunan data asosiatif.
PredictHistogram (DMX) Mengembalikan tabel nilai yang terkait dengan nilai yang diprediksi saat ini.
PredictNodeId (DMX) Mengembalikan Node_ID untuk setiap kasus.
PredictProbability (DMX) Mengembalikan probabilitas untuk nilai yang diprediksi.
PredictStdev (DMX) Mengembalikan prediksi simpannan standar 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
Algoritma Pohon Keputusan Microsoft
Referensi Teknis Algoritma Pohon Keputusan Microsoft
Menambang Konten Model untuk Model Pohon Keputusan (Analysis Services - Penggalian Data)