Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'obiettivo di un progetto di data mining tipico consiste nell'usare il modello di data mining per eseguire stime. Ad esempio, è possibile prevedere la quantità di tempo di inattività previsto per un determinato cluster di server o generare un punteggio che indica se è probabile che segmenti di clienti rispondano a una campagna pubblicitaria. Per eseguire tutte queste operazioni, è necessario creare una query di previsione.
A livello funzionale, in SQL Server sono supportati diversi tipi di query di stima, a seconda del tipo di input per la query:
| Tipo di query | Opzioni query |
|---|---|
| Query di previsione Singleton | Utilizzare una query singola quando desideri prevedere i risultati per un singolo nuovo caso o per più casi nuovi. Specificare i valori di input direttamente nella query e la query viene eseguita come singola sessione. |
| Previsioni di gruppo | Usare le stime batch quando si dispone di dati esterni da inserire nel modello, da usare come base per le stime. Per eseguire stime per un intero set di dati, eseguire il mapping dei dati nell'origine esterna alle colonne nel modello e quindi specificare il tipo di dati predittivi da restituire. La query per l'intero set di dati viene eseguita in una singola sessione, rendendo questa opzione molto più efficiente rispetto all'invio di più query ripetute. |
| Stime di serie temporali | Usare una query time series quando si vuole stimare un valore in un certo numero di passaggi futuri. Sql Server Data Mining offre anche le funzionalità seguenti nelle query time series: È possibile estendere un modello esistente aggiungendo nuovi dati come parte della query ed eseguire stime in base alla serie composita. È possibile applicare un modello esistente a una nuova serie di dati usando l'opzione REPLACE_MODEL_CASES. È possibile eseguire una stima incrociata. |
Le sezioni seguenti descrivono la sintassi generale delle query di stima, i diversi tipi di query di stima e come usare i risultati delle query di stima.
Progettazione di query di previsione di base
Utilizzo dei risultati delle query
Progettazione di query di stima di base
Quando si crea una stima, in genere si forniscono alcuni nuovi dati e si chiede al modello di generare una stima in base ai nuovi dati.
In una query di stima batch si esegue il mapping del modello a un'origine esterna di dati usando un join di stima.
In una query di previsione singleton, digita uno o più valori da utilizzare come input. È possibile creare più predizioni usando una query di predizione singleton. Tuttavia, se è necessario creare molte stime, le prestazioni sono migliori quando si usa una query batch.
Sia le query singleton che le query di stima batch usano la sintassi PREDICTION JOIN per definire i nuovi dati. La differenza consiste nel modo in cui viene specificata la parte di input del join di previsione.
In una query di previsione batch, i dati provengono da un'origine dati esterna definita usando la sintassi OPENQUERY.
In una query di predizione singleton, i dati vengono forniti in linea come parte della query.
Per i modelli time series, i dati di input non sono sempre necessari; è possibile eseguire stime usando solo i dati già presenti nel modello. Tuttavia, se si specificano nuovi dati di input, è necessario decidere se usare i nuovi dati per aggiornare ed estendere il modello o sostituire la serie originale di dati usati nel modello. Per altre informazioni su queste opzioni, vedere Esempi di query del modello Time Series.
Aggiunta di funzioni di stima
Oltre a stimare un valore, è possibile personalizzare una query di stima per restituire vari tipi di informazioni correlate alla stima. Ad esempio, se la stima crea un elenco di prodotti da consigliare a un cliente, è anche possibile restituire la probabilità per ogni stima, in modo da poterli classificare e presentare solo le raccomandazioni principali all'utente.
A tale scopo, aggiungere funzioni di stima alla query. Ogni modello o tipo di query supporta funzioni specifiche. Ad esempio, i modelli di clustering supportano funzioni di stima speciali che forniscono dettagli aggiuntivi sui cluster creati dal modello, mentre i modelli di serie temporali hanno funzioni che calcolano le differenze nel tempo. Esistono anche funzioni di stima generali che funzionano con quasi tutti i tipi di modello. Per un elenco delle funzioni di stima supportate in diversi tipi di query, vedere questo argomento il riferimento DMX: Funzioni di stima generali (DMX).
Creazione di query di previsione Singleton
Una query di previsione singleton è utile quando si vogliono creare previsioni rapide in tempo reale. Uno scenario comune potrebbe essere l'acquisizione di informazioni da un cliente, ad esempio tramite un modulo su un sito web, con l'intento di utilizzare quei dati come input per una query predittiva singleton. Ad esempio, quando un cliente sceglie un prodotto da un elenco, è possibile usare tale selezione come input per una query che stima i prodotti migliori da consigliare.
Le query di stima Singleton non richiedono una tabella separata che contiene l'input. Invece, si fornisce una o più righe di valori come input al modello e le previsioni vengono restituite in tempo reale.
Avvertimento
Nonostante il nome, le query di stima singleton non effettuano solo stime singole, è possibile generare più stime per ogni set di input. È possibile fornire più case di input creando un'istruzione SELECT per ogni caso di input e combinandoli con l'operatore UNION.
Quando si crea una query di previsione singleton, è necessario fornire i nuovi dati al modello sotto forma di PREDICTION JOIN. Ciò significa che, anche se non si esegue il mapping a una tabella effettiva, è necessario assicurarsi che i nuovi dati corrispondano alle colonne esistenti nel modello di data mining. Se le nuove colonne di dati e i nuovi dati corrispondono esattamente, Analysis Services mapperà le colonne per te. Questa operazione è denominata NATURAL PREDICTION JOIN. Tuttavia, se le colonne non corrispondono o se i nuovi dati non contengono lo stesso tipo e la stessa quantità di dati presenti nel modello, è necessario specificare le colonne del modello mappate ai nuovi dati o specificare i valori mancanti.
Query di previsione batch
Una query di stima batch è utile quando si dispone di dati esterni da usare per eseguire stime. Ad esempio, è possibile che sia stato creato un modello che categorizzi i clienti in base all'attività online e alla cronologia degli acquisti. È possibile applicare tale modello a un elenco di lead appena acquisiti, creare proiezioni per le vendite o identificare gli obiettivi per le campagne proposte.
Quando si esegue un join predittivo, è necessario eseguire il mapping delle colonne del modello alle colonne nella nuova origine dati. Pertanto, l'origine dati scelta per un input deve avere dati in qualche modo simili ai dati nel modello. Le nuove informazioni non devono corrispondere esattamente e possono essere incomplete. Si supponga, ad esempio, che il modello sia stato sottoposto a training usando informazioni sul reddito e l'età, ma l'elenco dei clienti usato per le stime abbia un'età, ma nulla sul reddito. In questo scenario è comunque possibile eseguire il mapping dei nuovi dati al modello e creare una stima per ogni cliente. Tuttavia, se il reddito fosse un importante stimatore per il modello, la mancanza di informazioni complete influirebbe sulla qualità delle stime.
Per ottenere i risultati migliori, è necessario unire il maggior numero possibile di colonne corrispondenti tra i nuovi dati e il modello. Tuttavia, la query avrà esito positivo anche se non sono presenti corrispondenze. Se non viene unita alcuna colonna, la query restituirà la previsione marginale, equivalente all'istruzione SELECT <predictable-column> FROM <model> senza una clausola PREDICTION JOIN.
Dopo aver eseguito il mapping di tutte le colonne pertinenti, esegui la query e Analysis Services fa previsioni per ogni riga nei nuovi dati in base ai modelli nei dati. È possibile salvare i risultati in una nuova tabella nella vista origine dati contenente i dati esterni oppure copiare e incollare i dati usando SQL Server Data Tools (SSDT) o SQL Server Management Studio.
Avvertimento
Se si usa la finestra di progettazione in SQL Server Data Tools (SSDT), l'origine dati esterna deve prima essere definita come vista di origine dati.
Se si usa DMX per creare un join di stima, è possibile specificare l'origine dati esterna usando i comandi OPENQUERY, OPENROWSET o SHAPE. Il metodo di accesso ai dati predefinito nei modelli DMX è OPENQUERY. Per informazioni su questi metodi, vedere <Query> sui dati di origine.
Previsioni nei modelli di analisi delle serie temporali
I modelli time series sono diversi da altri tipi di modelli; È possibile usare il modello così come per creare stime oppure fornire nuovi dati al modello per aggiornare il modello e creare stime in base alle tendenze recenti. Se si aggiungono nuovi dati, è possibile specificare la modalità di utilizzo dei nuovi dati.
L'estensione dei case del modello implica l'aggiunta dei nuovi dati alla serie esistente di dati nel modello time series. Di conseguenza, le stime sono basate sulla nuova serie combinata. Questa opzione è valida quando si desidera semplicemente aggiungere alcuni punti dati a un modello esistente.
Si supponga, ad esempio, di avere un modello time series esistente sottoposto a training sui dati di vendita dell'anno precedente. Dopo aver raccolto diversi mesi di nuovi dati sulle vendite, si decide di aggiornare le previsioni di vendita per l'anno corrente. È possibile creare un join di stima che aggiorna il modello aggiungendo nuovi dati ed estende il modello per eseguire nuove stime.
Sostituire i casi del modello significa mantenere il modello addestrato, ma sostituire i casi sottostanti con un nuovo set di dati di casi. Questa opzione è utile quando si vuole mantenere la tendenza nel modello, ma applicarla a un set di dati diverso.
Ad esempio, il modello originale potrebbe essere stato sottoposto a training su un set di dati con volumi di vendita molto elevati; quando si sostituiscono i dati sottostanti con una nuova serie (ad esempio da un negozio con un volume di vendite inferiore), si mantiene la tendenza, ma le stime iniziano dai valori della serie di sostituzione.
Indipendentemente dall'approccio usato, il punto di partenza per le stime è sempre la fine della serie originale.
Per ulteriori informazioni su come creare join di previsione nei modelli di serie temporali, vedere Esempi di query del modello Time Series o PredictTimeSeries (DMX).
Utilizzo dei risultati di una query di stima
Le opzioni per salvare i risultati di una query di stima del data mining sono diverse a seconda della modalità di creazione della query.
Quando si compila una query usando il Generatore di query di stima in SQL Server Management Studio o SQL Server Data Tools (SSDT), è possibile salvare i risultati di una query di stima in un'origine dati esistente di Analysis Services. Per altre informazioni, vedere Visualizzare e salvare i risultati di una query di stima.
Quando si creano query di stima usando DMX nel riquadro Query di SQL Server Management Studio, è possibile usare le opzioni di output della query per salvare i risultati in un file o nel riquadro Risultati query come testo o in una griglia. Per altre informazioni, vedere Editor di query e di testo (SQL Server Management Studio).
Quando si esegue una query di previsione usando i componenti di Integration Services, il task fornisce la capacità di scrivere i risultati in un database utilizzando un gestore di connessione ADO.NET disponibile o un gestore di connessione OLEDB. Per ulteriori informazioni, vedere Attività di interrogazione di data mining.
È importante comprendere che i risultati di una query di stima non sono simili ai risultati di una query in un database relazionale, che restituisce sempre una singola riga di valori correlati. Ogni funzione di stima DMX aggiunta a una query restituisce un set di righe specifico. Pertanto, quando si esegue una previsione su un singolo caso, il risultato potrebbe essere un valore previsto insieme a diverse colonne di tabelle nidificate contenente dettagli aggiuntivi.
Se si combinano più funzioni in una query, i risultati restituiti vengono combinati come set di righe gerarchico. Si supponga, ad esempio, di usare un modello time series per stimare i valori futuri per l'importo delle vendite e la quantità di vendite, usando una query come questa istruzione DMX:
SELECT
PredictTimeSeries([Forecasting].[Amount]) as [PredictedAmount]
, PredictTimeSeries([Forecasting].[Quantity]) as [PredictedQty]
FROM
[Forecasting]
I risultati di questa query sono due colonne, una per ogni serie prevista, dove ogni riga contiene una tabella nidificata con i valori previsti.
PredictedAmount
| $TIME | Importo |
|---|---|
| 201101 | 172067.11 |
| $TIME | Importo |
|---|---|
| 201102 | 363390.68 |
PredictedQty
| $TIME | Quantità |
|---|---|
| 201101 | 77 |
| $TIME | Quantità |
|---|---|
| 201102 | 260 |
Se il provider non è in grado di gestire set di righe gerarchici, è possibile appiattire i risultati usando la parola chiave FLATTEN nella query di previsione. Per ulteriori informazioni, inclusi gli esempi di set di righe appiattito, vedere SELECT (DMX).
Vedere anche
Query sul contenuto (data mining)
Query di definizione dei dati (data mining)