Bagikan melalui


SELECT FROM <model> PREDICTION JOIN (DMX)

Berlaku untuk: SQL Server Analysis Services

Menggunakan model penambangan untuk memprediksi status kolom di sumber data eksternal. Pernyataan PREDICTION JOIN cocok dengan setiap kasus dari kueri sumber ke model.

Sintaks

  
SELECT [FLATTENED] [TOP <n>] <select expression list>   
FROM <model> | <sub select> [NATURAL] PREDICTION JOIN   
<source data query> [ON <join mapping list>]   
[WHERE <condition expression>]  
[ORDER BY <expression> [DESC|ASC]]  

Argumen

n
Pilihan. Bilangan bulat yang menentukan berapa banyak baris yang akan dikembalikan.

pilih daftar ekspresi
Daftar pengidentifikasi kolom dan ekspresi yang dipisahkan koma yang berasal dari model penambangan.

model
Pengidentifikasi model.

sub pilih
Pernyataan pilih yang disematkan.

kueri data sumber
Kueri sumber.

daftar pemetaan gabungan
Pilihan. Ekspresi logis yang membandingkan kolom dari model ke kolom dari kueri sumber.

ekspresi kondisi
Pilihan. Kondisi untuk membatasi nilai yang dikembalikan dari daftar kolom.

expression
Pilihan. Ekspresi yang mengembalikan nilai skalar.

Keterangan

Klausa ON menentukan pemetaan antara kolom dari kueri sumber dan kolom dari model penambangan. Pemetaan ini digunakan untuk mengarahkan kolom dari kueri sumber ke kolom dalam model penambangan sehingga kolom dapat digunakan sebagai input untuk membuat prediksi. Kolom dalam <daftar> pemetaan gabungan terkait dengan menggunakan tanda sama dengan (=), seperti yang diperlihatkan dalam contoh berikut:

[MiningModel].ColumnA = [source data query].Column1 AND   
[MiningModel].ColumnB = [source data query].Column2 AND  
...  

Jika Anda mengikat tabel berlapis dalam klausa ON, pastikan Anda mengikat kolom kunci dengan kolom non-kunci apa pun sehingga algoritma dapat mengidentifikasi dengan benar rekaman kolom berlapis dengan benar.

Kueri sumber untuk gabungan prediksi bisa berupa tabel atau kueri singleton.

Anda dapat menentukan fungsi prediksi yang tidak mengembalikan ekspresi tabel dalam <daftar> ekspresi pemilihan dan< ekspresi> kondisi.

NATURAL PREDICTION JOIN secara otomatis memetakan nama kolom dari kueri sumber yang cocok dengan nama kolom dalam model. Jika Anda menggunakan PREDIKSI ALAMI, Anda dapat menghilangkan klausul ON.

Kondisi WHERE hanya dapat diterapkan ke kolom yang dapat diprediksi atau kolom terkait.

Klausa ORDER by hanya dapat menerima satu kolom sebagai argumen; artinya, Anda tidak dapat mengurutkan lebih dari satu kolom.

Contoh 1: Kueri Singleton

Contoh berikut menunjukkan cara membuat kueri untuk memprediksi apakah orang tertentu akan membeli sepeda secara real time. Dalam kueri ini, data tidak disimpan dalam tabel atau sumber data lainnya, tetapi dimasukkan langsung ke dalam kueri. Orang dalam kueri memiliki sifat berikut:

  • 35 tahun

  • Memiliki rumah

  • Memiliki dua mobil

  • Memiliki dua anak yang tinggal di rumah

Menggunakan model penambangan Pohon Keputusan TM dan karakteristik yang diketahui tentang subjek, kueri mengembalikan nilai Boolean yang menjelaskan apakah orang tersebut membeli sepeda dan sekumpulan nilai tabular, yang dikembalikan oleh fungsi PredictHistogram (DMX), yang menjelaskan bagaimana prediksi dibuat.

SELECT  
  [TM Decision Tree].[Bike Buyer],  
  PredictHistogram([Bike Buyer])  
FROM  
  [TM Decision Tree]  
NATURAL PREDICTION JOIN  
(SELECT 35 AS [Age],  
  '5-10 Miles' AS [Commute Distance],  
  '1' AS [House Owner Flag],  
  2 AS [Number Cars Owned],  
  2 AS [Total Children]) AS t  

Contoh 2: Menggunakan OPENQUERY

Contoh berikut menunjukkan cara membuat kueri prediksi batch dengan menggunakan daftar calon pelanggan yang disimpan dalam himpunan data eksternal. Karena tabel adalah bagian dari tampilan sumber data yang telah ditentukan pada instans Analysis Services, kueri dapat menggunakan OPENQUERY untuk mengambil data. Karena nama kolom dalam tabel berbeda dari yang ada di model penambangan, klausa ON harus digunakan untuk memetakan kolom dalam tabel ke kolom dalam model.

Kueri mengembalikan nama depan dan belakang setiap orang dalam tabel, bersama dengan kolom Boolean yang menunjukkan apakah setiap orang cenderung membeli sepeda, di mana 0 berarti "mungkin tidak akan membeli sepeda" dan 1 berarti "mungkin akan membeli sepeda". Kolom terakhir berisi probabilitas untuk hasil yang diprediksi.

SELECT  
  t.[LastName],  
  t.[FirstName],  
  [TM Decision Tree].[Bike Buyer],  
  PredictProbability([Bike Buyer])  
From  
  [TM Decision Tree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT  
      [LastName],  
      [FirstName],  
      [MaritalStatus],  
      [Gender],  
      [YearlyIncome],  
      [TotalChildren],  
      [NumberChildrenAtHome],  
      [Education],  
      [Occupation],  
      [HouseOwnerFlag],  
      [NumberCarsOwned]  
    FROM  
      [dbo].[ProspectiveBuyer]  
    ') AS t  
ON  
  [TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND  
  [TM Decision Tree].[Gender] = t.[Gender] AND  
  [TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND  
  [TM Decision Tree].[Total Children] = t.[TotalChildren] AND  
  [TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] AND  
  [TM Decision Tree].[Education] = t.[Education] AND  
  [TM Decision Tree].[Occupation] = t.[Occupation] AND  
  [TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND  
  [TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned]  

Untuk membatasi himpunan data hanya untuk pelanggan yang diprediksi membeli sepeda, lalu mengurutkan daftar menurut nama pelanggan, Anda dapat menambahkan klausa WHERE dan klausa ORDER BY ke contoh sebelumnya:

WHERE [BIKE Buyer]  
ORDER BY [LastName] ASC  

Contoh 3: Memprediksi Asosiasi

Contoh berikut menunjukkan cara membuat prediksi dengan menggunakan model yang dibangun dari algoritma Microsoft Association. Prediksi pada model asosiasi dapat digunakan untuk merekomendasikan produk terkait. Misalnya, kueri berikut mengembalikan tiga produk yang kemungkinan besar akan dibeli bersama-sama:

  • Sangkar Botol Sepeda Gunung

  • Tabung Ban Gunung

  • Mountain-200

Fungsi Predict (DMX) bersifat polimorfik dan dapat digunakan dengan semua jenis model. Anda menggunakan nilai3 sebagai argumen ke fungsi untuk membatasi jumlah item yang dikembalikan oleh kueri. Daftar SELECT yang mengikuti klausul NATURAL PREDICTION JOIN menyediakan nilai yang akan digunakan sebagai input untuk prediksi.

SELECT FLATTENED  
  PREDICT([Association].[v Assoc Seq Line Items], 3)  
FROM  
  [Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model]  
  UNION SELECT 'Mountain Tire Tube' AS [Model]  
  UNION SELECT 'Mountain-200' AS [Model]) AS [v Assoc Seq Line Items ]) AS t  

Contoh hasil:

Expression.Model
Ban Gunung HL
Botol Air
Set Fender - Gunung

Karena kolom yang berisi atribut yang dapat diprediksi, [v Assoc Seq Line Items], adalah kolom tabel, kueri mengembalikan satu kolom yang berisi tabel berlapis. Secara default kolom tabel berlapis diberi nama Expression. Jika penyedia Anda tidak mendukung set baris hierarkis, Anda dapat menggunakan kata kunci FLATTENED seperti yang ditunjukkan dalam contoh ini untuk membuat hasilnya lebih mudah dilihat.

Lihat Juga

PILIH (DMX)
Pernyataan Definisi Data Ekstensi Penggalian Data (DMX)
Pernyataan Manipulasi Data Ekstensi Penggalian Data (DMX)
Referensi Pernyataan Ekstensi Penggalian Data (DMX)