Condividi tramite


Convalida incrociata (Analysis Services - Data Mining)

La convalida incrociata è uno strumento standard nell'analisi ed è una funzionalità importante per lo sviluppo e l'ottimizzazione dei modelli di data mining. La convalida incrociata viene utilizzata dopo aver creato una struttura di data mining e i modelli di data mining correlati per verificare la validità del modello. La convalida incrociata include le applicazioni seguenti:

  • Convalida dell'affidabilità di un particolare modello di estrazione di dati.

  • Valutazione di più modelli da una singola istruzione.

  • Creazione di più modelli e quindi identificazione del modello migliore in base alle statistiche.

Questa sezione descrive come usare le funzionalità di convalida incrociata fornite per il data mining e come interpretare i risultati della convalida incrociata per un singolo modello o per più modelli basati su un singolo set di dati.

Panoramica del processo di convalida incrociata

La convalida incrociata è costituita da due fasi, formazione e creazione dei risultati. Queste fasi includono i passaggi seguenti:

  • Seleziona una struttura di data mining di destinazione.

  • Tu specifichi i modelli che vuoi testare. Questo passaggio è facoltativo; è anche possibile testare solo la struttura di data mining.

  • Tu specifichi i parametri per il test dei modelli addestrati.

    • Attributo stimabile, valore stimato e soglia di accuratezza.

    • Numero di suddivisioni in cui partizionare la struttura o il modello.

  • Analysis Services crea ed esegue il training di tanti modelli quanti sono i fold.

  • Analysis Services restituisce un set di metriche di accuratezza per ogni suddivisione in ogni modello o per il set di dati nel suo complesso.

Configurazione della convalida incrociata

È possibile personalizzare il modo in cui la convalida incrociata funziona per controllare il numero di sezioni incrociate, i modelli testati e la barra di accuratezza per le stime. Se utilizzi le stored procedure di convalida incrociata, puoi anche specificare il set di dati utilizzato per convalidare i modelli. Questa ricchezza di scelte significa che è possibile produrre facilmente molti set di risultati diversi che devono quindi essere confrontati e analizzati.

Questa sezione fornisce informazioni utili per configurare la convalida incrociata in modo appropriato.

Impostazione del numero di partizioni

Quando si specifica il numero di partizioni, si determina il numero di modelli temporanei che verranno creati. Per ogni partizione, una sezione incrociata dei dati viene contrassegnata per l'uso come set di test e viene creato un nuovo modello eseguendo il training sui dati rimanenti non nella partizione. Questo processo viene ripetuto fino a quando Analysis Services non ha creato e testato il numero specificato di modelli. I dati specificati come disponibili per la convalida incrociata vengono distribuiti uniformemente tra tutte le partizioni.

L'esempio nel diagramma illustra l'utilizzo dei dati se vengono specificati tre ripiegamenti.

Modalità di convalida incrociata dei dati dei

Nello scenario nel diagramma, la struttura di mining contiene un insieme di dati di controllo utilizzato per il collaudo, ma l'insieme di dati di test non è stato incluso per la validazione incrociata. Di conseguenza, tutti i dati nel set di dati di addestramento e il 70% dei dati nella struttura di data mining vengono usati per la convalida incrociata. Il rapporto di convalida incrociata mostra il numero totale di casi utilizzati in ogni partizione.

È anche possibile specificare la quantità di dati usati durante la convalida incrociata specificando il numero di casi complessivi da usare. I casi vengono distribuiti uniformemente in tutti i gruppi.

Per le strutture di data mining archiviate in un'istanza di SQL Server Analysis Services, il valore massimo che è possibile impostare per il numero di falde è 256 o il numero di casi, a seconda di quale dei due sia inferiore. Se si utilizza una struttura di session mining, il numero massimo di folds è 10.

Annotazioni

Man mano che si aumenta il numero di riduzioni, il tempo necessario per eseguire la convalida incrociata aumenta di conseguenza, perché è necessario generare e testare un modello per ogni riduzione. Se il numero di piegature è troppo elevato, è possibile che si verifichino problemi di prestazioni.

Impostazione della soglia di accuratezza

La soglia di stato consente di impostare la barra di accuratezza per le stime. Per ogni caso, il modello calcola la probabilità di stima, ovvero la probabilità che lo stato stimato sia corretto. Se la probabilità di stima supera la barra di accuratezza, la stima viene conteggiata come corretta; in caso contrario, la stima viene conteggiata come errata. È possibile controllare questo valore impostando State Threshold su un numero compreso tra 0,0 e 1,0, dove i numeri più vicini a 1 indicano un livello di attendibilità elevato nelle stime e i numeri più vicini a 0 indicano che la stima è meno probabile che sia vera. Il valore predefinito per la soglia di stato è NULL, il che significa che lo stato stimato con la probabilità più alta viene considerato il valore di destinazione.

È necessario tenere presente che l'impostazione per la soglia di stato influisce sulle misure di accuratezza del modello. Si supponga, ad esempio, di avere tre modelli da testare. Tutti si basano sulla stessa struttura di data mining e tutti prevedono la colonna [Bike Buyer]. Inoltre, si vuole stimare un singolo valore pari a 1, vale a dire "sì, acquisterà". I tre modelli restituiscono stime con probabilità di 0,05, 0,15 e 0,8. Se si imposta la soglia di stato su 0,10, due delle stime vengono conteggiate come corrette. Se si imposta la soglia di stato su 0,5, viene conteggiato un solo modello come che ha restituito una stima corretta. Se si usa il valore predefinito, null, la stima più probabile viene conteggiata come corretta. In questo caso, tutte e tre le stime verrebbero conteggiate come corrette.

Annotazioni

È possibile impostare un valore pari a 0,0 per la soglia, ma il valore è privo di significato, perché ogni stima verrà conteggiata come corretta, anche quelle con probabilità zero. Prestare attenzione a non impostare accidentalmente State Threshold su 0,0.

Scelta di modelli e colonne da convalidare

Quando si utilizza la scheda Convalida incrociata in Progettazione modelli di data mining, è prima necessario selezionare la colonna stimabile da un elenco. In genere, una struttura di data mining può supportare molti modelli di data mining, non tutti che usano la stessa colonna stimabile. Quando si esegue la convalida incrociata, solo i modelli che usano la stessa colonna stimabile possono essere inclusi nel report.

Per scegliere un attributo prevedibile, fare clic su Attributo di destinazione e selezionare la colonna dall'elenco. Se l'attributo di destinazione è una colonna nidificata o una colonna in una tabella nidificata, è necessario digitare il nome della colonna nidificata usando il formato <Nome tabella annidata>(chiave).<Colonna nidificata>. Se l'unica colonna usata dalla tabella nidificata è la colonna chiave, è possibile usare <Nested Table Name>(key).

Dopo aver selezionato l'attributo stimabile, Analysis Services testa automaticamente tutti i modelli che usano lo stesso attributo stimabile. Se l'attributo di destinazione contiene valori discreti, dopo aver selezionato la colonna stimabile, è possibile digitare facoltativamente uno stato di destinazione, se è presente un valore specifico da stimare.

La selezione dello stato di destinazione influisce sulle misure restituite. Se si specifica un attributo di destinazione, ovvero un nome di colonna e non si sceglie un valore specifico che si vuole prevedere dal modello, per impostazione predefinita il modello verrà valutato sulla stima dello stato più probabile.

Quando si usa la convalida incrociata con i modelli di clustering, non esiste alcuna colonna stimabile; selezionare invece #Cluster dall'elenco nella casella di riepilogo Attributo target. Dopo aver selezionato questa opzione, le altre opzioni non rilevanti per i modelli di clustering, ad esempio Stato di destinazione, sono disabilitate. Analysis Services eseguirà quindi il test di tutti i modelli di clustering associati alla struttura di data mining.

Strumenti per la convalida incrociata

È possibile utilizzare la convalida incrociata tramite il Designer di Data Mining, oppure eseguire la convalida incrociata mediante stored procedure.

Se si usano gli strumenti di progettazione di data mining per eseguire la convalida incrociata, è possibile configurare i parametri dei risultati della formazione e dell'accuratezza in una singola finestra di dialogo. In questo modo è più semplice configurare e visualizzare i risultati. È possibile misurare l'accuratezza di tutti i modelli di data mining correlati a una singola struttura di data mining e quindi visualizzare immediatamente i risultati in un report HTML. Tuttavia, le stored procedure offrono alcuni vantaggi, ad esempio le personalizzazioni aggiunte e la possibilità di creare script per il processo.

Validazione incrociata nella Progettazione dei modelli di data mining

È possibile eseguire la convalida incrociata usando la scheda Convalida incrociata della visualizzazione del grafico di accuratezza della tabella analisi dati in SQL Server Management Studio e SQL Server Development Studio.

Per un esempio di creazione di un report di convalida incrociata tramite l'interfaccia utente, vedere Creare un report di convalida incrociata.

Stored procedure di validazione incrociata

Per gli utenti avanzati, la convalida incrociata è disponibile anche sotto forma di stored procedure di sistema con parametri completi. È possibile eseguire le stored procedure connettendosi a un'istanza di SQL Server 2014 Analysis Services (SSAS) da SQL Server Management Studio o da qualsiasi applicazione con codice gestito.

Le stored procedure sono raggruppate in base al tipo di modello di mining. Un set di stored procedure funziona solo con i modelli di clustering. L'altro set di stored procedure funziona con altri modelli di data mining.

Per ogni tipo di modello di mining, raggruppato o non raggruppato, le procedure memorizzate eseguono la convalida incrociata articolata in due fasi.

Partizionare i dati e generare metriche per le partizioni

Per la prima fase, si chiama una stored procedure del sistema che crea il numero di partizioni che specifichi all'interno del set di dati e restituisce i risultati di accuratezza per ciascuna partizione. Per ogni metrica, Analysis Services calcola quindi la media e la deviazione standard per le partizioni.

Generare metriche per l'intero set di dati

Nella seconda fase si utilizzano un set diverso di stored procedure. Queste stored procedure non partizionano il set di dati, ma generano risultati di accuratezza per il set di dati specificato nel suo complesso. Se avete già partizionato ed elaborato la struttura di data mining, è possibile chiamare questo secondo set di stored procedure per ottenere solamente i risultati.

Definizione dei dati di test

Quando si eseguono le stored procedure di convalida incrociata che calcolano l'accuratezza (SystemGetAccuracyResults o SystemGetClusterAccuracyResults), è possibile specificare l'origine dei dati usati per il test durante la convalida incrociata. Questa opzione non è disponibile nell'interfaccia utente.

È possibile specificare come origine dati di test una delle opzioni seguenti:

  • Usare solo i dati di addestramento.

  • Includere un set di dati di test esistente.

  • Usare solo il set di dati di test.

  • Applicare filtri esistenti a ogni modello.

  • Qualsiasi combinazione di set di addestramento, set di verifica e filtri del modello.

Per indicare un'origine dati di test, si deve fornire un valore intero per il parametro DataSet della stored procedure. Per un elenco dei valori degli argomenti, vedere la sezione Osservazioni dell'argomento di riferimento della relativa stored procedure.

Se si esegue la convalida incrociata utilizzando il report Convalida incrociata in Progettazione modelli di data mining, non è possibile modificare il set di dati utilizzato. Per impostazione predefinita, vengono usati i casi di training per ogni modello. Se un filtro è associato a un modello, viene applicato il filtro.

Risultati della convalida incrociata

Se si utilizza la Progettazione di Data Mining, questi risultati vengono visualizzati in un visualizzatore Web in formato griglia. Se si utilizzano le stored procedure di convalida incrociata, gli stessi risultati vengono restituiti come tabella.

Il report contiene due tipi di misure: aggregati che indicano la variabilità del set di dati quando sono suddivisi in parti e misure di accuratezza specifiche del modello per ciascuna configurazione. Gli argomenti seguenti forniscono altre informazioni su queste metriche:

Formule di convalida incrociata

Elenca tutte le misure in base al tipo di test. Descrive in generale come le misure possono essere interpretate.

Misure nel report di convalida incrociata

Vengono descritte le formule per il calcolo di ogni misura e viene elencato il tipo di attributo a cui è possibile applicare ogni misura.

Restrizioni per la convalida incrociata

Se si esegue la convalida incrociata usando il report di convalida incrociata in SQL Server Development Studio, esistono alcune limitazioni nei modelli che è possibile testare e i parametri che è possibile impostare.

  • Per impostazione predefinita, tutti i modelli associati alla struttura di data mining selezionata vengono convalidati tra loro. Non è possibile specificare il modello o un elenco di modelli.

  • La convalida incrociata non è supportata per i modelli basati sull'algoritmo Microsoft Time Series o sull'algoritmo Microsoft Sequence Clustering.

  • Non è possibile creare il report se la struttura di data mining non contiene modelli che possono essere testati tramite convalida incrociata.

  • Se la struttura di data mining contiene modelli di clustering e non clustering e non si sceglie l'opzione #Cluster , i risultati per entrambi i tipi di modelli vengono visualizzati nello stesso report, anche se le impostazioni di attributo, stato e soglia potrebbero non essere appropriate per i modelli di clustering.

  • Alcuni valori di parametro sono limitati. Ad esempio, viene visualizzato un messaggio di avvertimento se il numero di ripiegamenti è maggiore di 10, perché la generazione di così tanti modelli potrebbe causare un rallentamento nella visualizzazione del report.

Se si testano più modelli di data mining e i modelli dispongono di filtri, ogni modello viene filtrato separatamente. Non è possibile aggiungere un filtro a un modello o modificare il filtro per un modello durante la convalida incrociata.

Poiché la convalida incrociata per impostazione predefinita verifica tutti i modelli di data mining associati a una struttura, è possibile che vengano visualizzati risultati incoerenti se alcuni modelli hanno un filtro e altri non lo sono. Per assicurarsi di confrontare solo i modelli con lo stesso filtro, è necessario utilizzare le stored procedure e specificare un elenco di modelli di data mining. In alternativa, utilizzare solo il set di test della struttura di data mining senza filtri per garantire che venga usato un set coerente di dati per tutti i modelli.

Se si esegue la convalida incrociata usando le stored procedure, è possibile scegliere l'origine dei dati di test. Se si esegue la convalida incrociata tramite Progettazione modelli di data mining, è necessario utilizzare il set di dati di test associato al modello o alla struttura, se presente. In genere, è consigliabile utilizzare le procedure memorizzate di convalida incrociata se si desidera specificare impostazioni avanzate.

Non è possibile usare la convalida incrociata con modelli time series o sequence clustering. In particolare, non è possibile includere un modello che contiene una colonna KEY TIME o una colonna KEY SEQUENCE nella convalida incrociata.

Per altre informazioni sulla convalida incrociata o sui metodi correlati per il test dei modelli di data mining, ad esempio i grafici di accuratezza, vedere gli argomenti seguenti.

Argomenti Collegamenti
Viene descritto come impostare parametri di convalida incrociata in SQL Server Development Studio. Scheda Convalida incrociata (visualizzazione Grafico accuratezza modello di data mining)
Descrive le metriche fornite dalla convalida incrociata Formule di convalida incrociata
Illustra il formato del report di convalida incrociata e definisce le misure statistiche fornite per ogni tipo di modello. Misure nel report di convalida incrociata
Elenca le stored procedure per il calcolo delle statistiche di convalida incrociata. Procedure memorizzate di Data Mining (Servizi di analisi - Data Mining)
Viene descritto come creare un set di dati di test per strutture di data mining e modelli correlati. Set di dati di addestramento e verifica
Vedere esempi di altri tipi di grafico di precisione. Matrice di classificazione (Analysis Services - Data mining)

Grafico dei lift (Analysis Services - Data Mining)

Grafico dei profitti (Analysis Services - Data mining)

Grafico a dispersione (Analysis Services - Data Mining)
Descrive i passaggi per la creazione di vari grafici di accuratezza. Attività di test e convalida e guide pratiche (Data Mining)

Vedere anche

Test e convalida (Data Mining)