Applicazione di filtri a una tabella nidificata in un modello di data mining (Esercitazione intermedia sul data mining)
Dopo avere creato ed esplorato il modello, si decide che si desidera concentrarsi su un subset dei dati sui clienti. Potrebbe ad esempio essere necessario analizzare solo gli acquisti relativi a uno specifico articolo o analizzare i dati demografici dei clienti che non hanno effettuato acquisti in un determinato periodo.
SQL Server 2008 Analysis Services offre la possibilità di filtrare i dati utilizzati in un modello di data mining, in modo che non sia necessario configurare una nuova vista origine dati per utilizzare dati differenti. Nell'esercitazione di base sul data mining è stato descritto come filtrare i dati da una tabella flat applicando condizioni alla tabella del case. In questa attività verrà creato un filtro che si applica a una tabella nidificata.
Filtri su tabelle nidificate o tabelle del case
Se la vista origine dati contiene una tabella del case e una tabella nidificata, come la vista origine dati utilizzata nel modello Association, è possibile applicare filtri in base ai valori nella tabella del case, alla presenza o assenza di un valore nella tabella nidificata o a una combinazione di entrambi.
In questa attività verrà innanzitutto creata una copia del modello Association, quindi si aggiungeranno gli attributi IncomeGroup e Region al nuovo modello correlato, in modo da applicare filtri in base a tali attributi nella tabella del case.
Per creare e modificare una copia del modello di associazione
Nella scheda Modelli di data mining di Business Intelligence Development Studio fare clic con il pulsante destro del mouse sul modello Association, quindi selezionare Nuovo modello di data mining.
Per Nome modello digitare Association Filtered. Per Nome algoritmo selezionare Microsoft Association Rules. Scegliere OK.
Nella colonna per il modello Association Filtered, fare clic sulla riga IncomeGroup e modificare il valore da Ignora a Input.
Il passaggio successivo consiste nella creazione di un filtro sulla tabella del case nel nuovo modello di associazione. Il filtro passerà al modello solo i clienti nell'area di destinazione o con il livello di reddito di destinazione. Si aggiungerà quindi un secondo set di condizioni di filtro per specificare che il modello utilizza solo i clienti i cui acquisti contengono almeno un articolo.
Per aggiungere un filtro a un modello di data mining
Nella scheda Modelli di data mining fare clic con il pulsante destro del mouse sul modello Association Filtered e selezionare Imposta filtro modello.
Nella finestra di dialogo Filtro modello fare clic sulla riga superiore nella griglia della casella di testo Colonna struttura di data mining.
Nella casella di testo Colonna struttura di data mining selezionare IncomeGroup.
L'icona a sinistra della casella di testo cambia per indicare che l'elemento selezionato è una colonna.
Fare clic sulla casella di testo Operatore e selezionare l'operatore = dall'elenco.
Fare clic sulla casella di testo Valore, quindi digitare High.
Fare clic sulla riga successiva nella griglia.
Fare clic sulla casella di testo AND/OR nella riga successiva della griglia e selezionare OR.
Nella casella di testo Colonna struttura di data mining selezionare IncomeGroup. Nella casella di testo Valore digitare Moderate.
La condizione di filtro creata verrà aggiunta automaticamente alla casella di testo Espressione e dovrebbe avere il seguente aspetto:
[IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate'
Fare clic sulla riga successiva nella griglia, mantenendo l'operatore predefinito AND.
Per Operatore mantenere il valore predefinito Contiene. Fare clic sulla casella di testo Valore.
Nella finestra di dialogo Filtro, nella prima riga al di sotto di Colonna struttura di data mining, selezionare Modello.
Per Operatore selezionare IS NOT NULL. Lasciare vuota la casella di testo Valore. Scegliere OK.
La condizione di filtro nella casella di testo Espressione della finestra di dialogo Filtro modello verrà aggiornata automaticamente in modo da includere la nuova condizione nella tabella nidificata. L'espressione completa è la seguente:
[IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate' AND EXISTS (SELECT * FROM [vAssocSeqLineItems] WHERE [Model] <> NULL)
Fare clic su OK.
Per abilitare il drill-through ed elaborare il modello filtrato
Nella scheda Modelli di data mining fare clic con il pulsante destro del mouse sul modello Association Filtered, quindi selezionare Proprietà.
Impostare la proprietà AllowDrillThrough su True.
Fare clic con il pulsante destro del mouse sul modello di data mining Association Filtered, quindi selezionare Elabora modello.
Fare clic su Sì nel messaggio di errore per distribuire il nuovo modello nel database di Analysis Services.
Nella finestra di dialogo Elabora struttura di data mining fare clic su Esegui.
Al termine dell'elaborazione, fare clic su Chiudi per chiudere la finestra di dialogo Stato elaborazione, quindi nuovamente su Chiudi per chiudere la finestra di dialogo Elabora struttura di data mining.
È possibile verificare tramite Microsoft Generic Content Tree Viewer e controllando il valore di NODE_SUPPORT che il modello filtrato contenga meno case del modello originale.
Osservazioni
Il filtro della tabella nidificata che è stato creato controlla solo la presenza di almeno una riga nella tabella nidificata, tuttavia è anche possibile creare condizioni di filtro che verifichino la presenza di prodotti specifici. È ad esempio possibile creare il filtro seguente:
[IncomeGroup] = 'High' AND
EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] = 'Water Bottle' )
Questa istruzione indica che i clienti della tabella del case devono essere limitati a quelli che hanno acquistato una bottiglia d'acqua (Water Bottle). Tuttavia, poiché il numero di attributi della tabella nidificata è potenzialmente illimitato, in Analysis Services non viene fornito un elenco di valori possibili da cui effettuare una selezione. È invece necessario digitare il valore esatto.
È possibile fare clic su Modifica query per modificare manualmente l'espressione di filtro. Se tuttavia si modifica manualmente una parte di un'espressione di filtro, la griglia verrà disabilitata e da allora in poi sarà necessario utilizzare l'espressione di filtro solo in modalità di modifica di testo. Per ripristinare la modalità di modifica della griglia, è necessario cancellare l'espressione di filtro e ricominciare.
Inoltre, non è possibile utilizzare l'operatore LIKE in una tabella nidificata.
Attività successiva della lezione
Stima delle associazioni (Esercitazione intermedia sul data mining)