Bagikan melalui


Kueri Prediksi (Penggalian Data)

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.

Tujuan dari proyek penggalian data yang khas adalah untuk menggunakan model penambangan untuk membuat prediksi. Misalnya, Anda mungkin ingin memprediksi jumlah waktu henti yang diharapkan untuk kluster server tertentu, atau menghasilkan skor yang menunjukkan apakah segmen pelanggan cenderung menanggapi kampanye iklan. Untuk melakukan semua hal ini, Anda akan membuat kueri prediksi.

Secara fungsional, ada berbagai jenis kueri prediksi yang didukung dalam SQL Server, tergantung pada jenis input ke kueri:

Jenis Kueri Opsi Kueri
Kueri prediksi singleton Gunakan kueri database tunggal saat Anda ingin memprediksi hasil untuk satu kasus baru, atau beberapa kasus baru. Anda menyediakan nilai input langsung dalam kueri, dan kueri dijalankan sebagai satu sesi.
Prediksi batch Gunakan prediksi batch saat Anda memiliki data eksternal yang ingin Anda umpankan ke dalam model, untuk digunakan sebagai dasar prediksi. Untuk membuat prediksi untuk seluruh kumpulan data, Anda memetakan data di sumber eksternal ke kolom dalam model, lalu menentukan jenis data prediktif yang ingin Anda keluarkan.

Kueri untuk seluruh himpunan data dijalankan dalam satu sesi, membuat opsi ini jauh lebih efisien daripada mengirim beberapa kueri berulang.
Prediksi Time Series Gunakan kueri rangkaian waktu saat Anda ingin memprediksi nilai atas beberapa langkah mendatang. SQL Server Data Mining juga menyediakan fungsionalitas berikut dalam kueri rangkaian waktu:

Anda bisa memperluas model yang sudah ada dengan menambahkan data baru sebagai bagian dari kueri, dan membuat prediksi berdasarkan seri komposit.

Anda dapat menerapkan model yang sudah ada ke seri data baru dengan menggunakan opsi REPLACE_MODEL_CASES.

Anda dapat melakukan prediksi silang.

Bagian berikut menguraikan sintaks umum kueri prediksi, berbagai jenis kueri prediksi, dan cara bekerja dengan hasil kueri prediksi.

Desain Kueri Prediksi Dasar

Bekerja dengan Hasil Kueri

Desain Kueri Prediksi Dasar

Saat membuat prediksi, Anda biasanya menyediakan beberapa bagian data baru dan meminta model untuk menghasilkan prediksi berdasarkan data baru.

  • Dalam kueri prediksi batch, Anda memetakan model ke sumber data eksternal dengan menggunakan gabungan prediksi.

  • Dalam kueri prediksi singleton, Anda mengetik satu atau beberapa nilai untuk digunakan sebagai input. Anda dapat membuat beberapa prediksi menggunakan kueri prediksi database tunggal. Namun, jika Anda perlu membuat banyak prediksi, performa lebih baik saat Anda menggunakan kueri batch.

Kueri prediksi database tunggal dan batch menggunakan sintaks PREDICTION JOIN untuk menentukan data baru. Perbedaannya adalah bagaimana sisi input dari gabungan prediksi ditentukan.

  • Dalam kueri prediksi batch, data berasal dari sumber data eksternal yang ditentukan dengan menggunakan sintaks OPENQUERY.

  • Dalam kueri prediksi database tunggal, data disediakan sebaris sebagai bagian dari kueri.

Untuk model rangkaian waktu, data input tidak selalu diperlukan; dimungkinkan untuk membuat prediksi hanya menggunakan data yang sudah ada dalam model. Namun, jika Anda menentukan data input baru, Anda harus memutuskan apakah Anda akan menggunakan data baru untuk memperbarui dan memperluas model, atau untuk mengganti rangkaian data asli yang digunakan dalam model. Untuk informasi selengkapnya tentang opsi ini, lihat Contoh Kueri Model Deret Waktu.

Menambahkan Fungsi Prediksi

Selain memprediksi nilai, Anda bisa mengkustomisasi kueri prediksi untuk mengembalikan berbagai jenis informasi yang terkait dengan prediksi. Misalnya, jika prediksi membuat daftar produk untuk direkomendasikan kepada pelanggan, Anda mungkin juga ingin mengembalikan probabilitas untuk setiap prediksi, sehingga Anda dapat memberi peringkat dan hanya menyajikan rekomendasi teratas kepada pengguna.

Untuk melakukan ini, Anda menambahkan fungsi prediksi ke kueri. Setiap model atau jenis kueri mendukung fungsi tertentu. Misalnya, model pengklusteran mendukung fungsi prediksi khusus yang memberikan detail tambahan tentang kluster yang dibuat oleh model, sedangkan model rangkaian waktu memiliki fungsi yang menghitung perbedaan dari waktu ke waktu. Ada juga fungsi prediksi umum yang berfungsi dengan hampir semua jenis model. Untuk daftar fungsi prediksi yang didukung dalam berbagai jenis kueri, lihat topik ini referensi DMX: Fungsi Prediksi Umum (DMX).

Membuat Kueri Prediksi Singleton

Kueri prediksi singleton berguna saat Anda ingin membuat prediksi cepat secara real time. Skenario umum mungkin adalah Anda telah mendapatkan informasi dari pelanggan, mungkin dengan menggunakan formulir di situs Web, dan Anda ingin mengirimkan data tersebut sebagai input ke kueri prediksi singleton. Misalnya, ketika pelanggan memilih produk dari daftar, Anda dapat menggunakan pilihan tersebut sebagai input ke kueri yang memprediksi produk terbaik untuk direkomendasikan.

Kueri prediksi singleton tidak memerlukan tabel terpisah yang berisi input. Sebagai gantinya, Anda menyediakan satu atau beberapa baris nilai sebagai input ke model, dan prediksi atau prediksi dikembalikan secara real time.

Peringatan

Terlepas dari namanya, kueri prediksi singleton tidak hanya membuat prediksi tunggal-Anda dapat menghasilkan beberapa prediksi untuk setiap set input. Anda menyediakan beberapa kasus input dengan membuat pernyataan SELECT untuk setiap kasus input dan menggabungkannya dengan operator UNION.

Saat Anda membuat kueri prediksi database tunggal, Anda harus memberikan data baru ke model dalam bentuk PREDICTION JOIN. Ini berarti bahwa meskipun Anda tidak memetakan ke tabel aktual, Anda harus memastikan bahwa data baru cocok dengan kolom yang ada dalam model penambangan. Jika kolom data baru dan data baru sama persis, SQL Server Analysis Services akan memetakan kolom untuk Anda. Ini disebut NATURAL PREDICTION JOIN. Namun, jika kolom tidak cocok, atau jika data baru tidak berisi jenis dan jumlah data yang sama yang ada dalam model, Anda harus menentukan kolom mana dalam peta model ke data baru, atau menentukan nilai yang hilang.

Kueri Prediksi Batch

Kueri prediksi batch berguna saat Anda memiliki data eksternal yang ingin Anda gunakan dalam membuat prediksi. Misalnya, Anda mungkin telah membangun model yang mengategorikan pelanggan berdasarkan aktivitas online dan riwayat pembelian mereka. Anda dapat menerapkan model tersebut ke daftar prospek yang baru diperoleh, untuk membuat proyeksi penjualan, atau mengidentifikasi target untuk kampanye yang diusulkan.

Saat Anda melakukan gabungan prediksi, Anda harus memetakan kolom model ke kolom di sumber data baru. Oleh karena itu, sumber data yang Anda pilih untuk input harus data yang agak mirip dengan data dalam model. Informasi baru tidak harus sama persis, dan tidak lengkap. Misalnya, model dilatih menggunakan informasi tentang pendapatan dan usia, tetapi daftar pelanggan yang Anda gunakan untuk prediksi memiliki usia tetapi tidak ada tentang pendapatan. Dalam skenario ini, Anda masih dapat memetakan data baru ke model dan membuat prediksi untuk setiap pelanggan. Namun, jika pendapatan adalah prediktor penting untuk model, kurangnya informasi lengkap akan memengaruhi kualitas prediksi.

Untuk mendapatkan hasil terbaik, Anda harus menggabungkan sebanyak mungkin kolom yang cocok antara data baru dan model. Namun, kueri akan berhasil meskipun tidak ada kecocokan. Jika tidak ada kolom yang digabungkan, kueri akan mengembalikan prediksi marginal, yang setara dengan pernyataan SELECT <predictable-column> FROM <model> tanpa klausul PREDICTION JOIN.

Setelah Anda berhasil memetakan semua kolom yang relevan, Anda menjalankan kueri, dan SQL Server Analysis Services membuat prediksi untuk setiap baris dalam data baru berdasarkan pola dalam model. Anda bisa menyimpan hasilnya kembali ke tabel baru dalam tampilan sumber data yang berisi data eksternal, atau Anda bisa menyalin dan menempelkan data yang Anda gunakan SQL Server Data Tools atau SQL Server Management Studio.

Peringatan

Jika Anda menggunakan perancang di SQL Server Data Tools, sumber data eksternal harus terlebih dahulu didefinisikan sebagai tampilan sumber data.

Jika Anda menggunakan DMX untuk membuat gabungan prediksi, Anda dapat menentukan sumber data eksternal dengan menggunakan perintah OPENQUERY, OPENROWSET, atau SHAPE. Metode akses data default dalam templat DMX adalah OPENQUERY. Untuk informasi tentang metode ini, lihat <kueri> data sumber.

Prediksi dalam Model Penambangan Seri Waktu

Model rangkaian waktu berbeda dari jenis model lain; Anda dapat menggunakan model apa adanya untuk membuat prediksi, atau Anda dapat memberikan data baru ke model untuk memperbarui model dan membuat prediksi berdasarkan tren terbaru. Jika Anda menambahkan data baru, Anda dapat menentukan cara data baru harus digunakan.

  • Memperluas kasus model berarti Anda menambahkan data baru ke rangkaian data yang ada dalam model rangkaian waktu. Oleh karena itu, prediksi didasarkan pada seri gabungan baru. Opsi ini baik ketika Anda ingin hanya menambahkan beberapa poin data ke model yang ada.

    Misalnya, Anda memiliki model rangkaian waktu yang sudah ada yang telah dilatih pada data penjualan dari tahun sebelumnya. Setelah Anda mengumpulkan beberapa bulan data penjualan baru, Anda memutuskan untuk memperbarui prakiraan penjualan Anda untuk tahun ini. Anda dapat membuat gabungan prediksi yang memperbarui model dengan menambahkan data baru dan memperluas model untuk membuat prediksi baru.

  • Mengganti kasus model berarti Anda menyimpan model terlatih, tetapi mengganti kasus yang mendasarinya dengan sekumpulan data kasus baru. Opsi ini berguna saat Anda ingin menyimpan tren dalam model, tetapi menerapkannya ke kumpulan data yang berbeda.

    Misalnya, model asli Anda mungkin telah dilatih pada sekumpulan data dengan volume penjualan yang sangat tinggi; saat Anda mengganti data yang mendasarinya dengan seri baru (mungkin dari toko dengan volume penjualan yang lebih rendah), Anda mempertahankan tren, tetapi prediksi dimulai dari nilai dalam seri pengganti.

Terlepas dari pendekatan mana yang Anda gunakan, titik awal untuk prediksi selalu merupakan akhir dari seri asli.

Untuk informasi selengkapnya tentang cara membuat gabungan prediksi pada model rangkaian waktu, lihat Contoh Kueri Model Deret Waktu atau PredictTimeSeries (DMX).

Bekerja dengan Hasil Kueri Prediksi

Opsi Anda untuk menyimpan hasil kueri prediksi penggalian data berbeda bergantung pada cara Anda membuat kueri.

  • Saat Anda membuat kueri menggunakan Penyusun Kueri Prediksi baik di SQL Server Management Studio atau SQL Server Data Tools, Anda bisa menyimpan hasil kueri prediksi ke sumber data SQL Server Analysis Services yang sudah ada. Untuk informasi selengkapnya, lihat Menampilkan dan Menyimpan Hasil Kueri Prediksi.

  • Saat Anda membuat kueri prediksi menggunakan DMX di panel Kueri SQL Server Management Studio, Anda bisa menggunakan opsi output kueri untuk menyimpan hasil ke file, atau ke panel Hasil Kueri sebagai teks atau dalam kisi. Untuk informasi selengkapnya, lihat Editor Kueri dan Teks (SQL Server Management Studio).

  • Saat Anda menjalankan kueri prediksi menggunakan komponen Layanan Integrasi, tugas menyediakan kemampuan untuk menulis hasilnya ke database dengan menggunakan pengelola koneksi ADO.NET yang tersedia atau manajer koneksi OLEDB. Untuk informasi selengkapnya, lihat Tugas Kueri Penggalian Data.

Penting untuk dipahami bahwa hasil kueri prediksi tidak seperti hasil kueri pada database relasional, yang selalu mengembalikan satu baris nilai terkait. Setiap fungsi prediksi DMX yang Anda tambahkan ke kueri mengembalikan set barisnya sendiri. Oleh karena itu, ketika Anda membuat prediksi pada satu kasus, hasilnya mungkin merupakan nilai yang diprediksi bersama dengan beberapa kolom tabel berlapis yang berisi detail tambahan.

Jika Anda menggabungkan beberapa fungsi dalam satu kueri, hasil pengembalian digabungkan sebagai set baris hierarkis. Misalnya, Anda menggunakan model rangkaian waktu untuk memprediksi nilai di masa mendatang untuk jumlah penjualan dan kuantitas penjualan, menggunakan kueri seperti pernyataan DMX ini:

SELECT  
  PredictTimeSeries([Forecasting].[Amount]) as [PredictedAmount]  
, PredictTimeSeries([Forecasting].[Quantity]) as [PredictedQty]  
FROM  
  [Forecasting]  
  

Hasil kueri ini adalah dua kolom, satu untuk setiap seri yang diprediksi, di mana setiap baris berisi tabel berlapis dengan nilai yang diprediksi:

PredictedAmount

$TIME Jumlah
201101 172067.11
$TIME Jumlah
201102 363390.68

PredictedQty

$TIME Kuantitas
201101 77
$TIME Kuantitas
201102 260

Jika penyedia Anda tidak dapat menangani kumpulan baris hierarkis, Anda dapat meratakan hasilnya dengan menggunakan kata kunci FLATTEN dalam kueri prediksi. Untuk informasi selengkapnya, termasuk contoh set baris yang diratakan, lihat SELECT (DMX).

Lihat juga

Kueri Konten (Penggalian Data)
Kueri Definisi Data (Penggalian Data)