(Microsoft PowerPoint - datamining.ppt [modalit\340 compatibilit\340])

Dataset Nursery
• Dataset utilizzato nell’esercitazione
SQL Server & Weka
http://archive.ics.uci.edu/ml/datasets/Nursery
– 12960 dati (saranno usati in parte per il test e in parte per il training)
• Attributi presenti
Datamining
Dutto Riccardo
[email protected]
NPS - tel.7991
http://dbdmg.polito.it/
Dutto Riccardo
-
SQL Server & Weka
–
–
–
–
–
–
–
–
–
parents: usual, pretentious, great_pret
has_nurs: proper, less_proper, improper, critical, very_crit
form: complete, completed, incomplete, foster
children: 1, 2, 3, more
housing: convenient, less_conv, critical
finance: convenient, inconv
social: non-prob, slightly_prob, problematic
health: recommended, priority, not_recom
Class: not_recom(33%), recommend(0.015%), very_recom(2.5%),
priority(32%), spec_prior(31%)
Dutto Riccardo
-
SQL Server & Weka
Creazione del progetto
• Creare un nuovo progetto di tipo “Analysis Services
Project”
Data Mining con SQL Server
- creazione del modello
Dutto Riccardo
-
SQL Server & Weka
Creazione di una Mining Structure
• Creare un “Data Source” (collegamento al DB coi dati) e
un “Data Source View” (collegamento alle tabelle del
DB)
• Creare una “Mining Structure” tramite il wizard
Dutto Riccardo
-
SQL Server & Weka
Dutto Riccardo
-
SQL Server & Weka
Data Mining Wizard – Selezione tecnica DM
• Selezionare l’algoritmo di DM da utilizzare
Dutto Riccardo
-
SQL Server & Weka
1
Data Mining Wizard – Tabella dati
• Selezionare la
tabella con i dati
da analizzare
• Selezionare:
– la chiave primaria
– gli attributi di input
– il campo che
contiene la classe
da predire
– se i dati di training
sono in più tabelle
relazionate tra
loro si sceglie
“Nested”
Dutto Riccardo
-
SQL Server & Weka
Data Mining Wizard – Dati per il test
• Stabilire la percentuale di dati (partizionamento fisso) da
usare per il Test (i restanti verranno utilizzati per la
creazione del modello)
Dutto Riccardo
Data Mining Wizard – Selezione Attributi
-
SQL Server & Weka
Dutto Riccardo
-
SQL Server & Weka
Data Mining Wizard – Salvare il modello
• Dare un nome alla
struttura appena
creata
• “Allow drill through”
permette, per gli
algoritmi per cui è
possibile (ie
decision trees), di
navigare il modello
Dutto Riccardo
-
SQL Server & Weka
Processamento del modello
• Una volta creata la
struttura occorre fare il
deploy (trasferimento
fisico delle strutture sul
server) e processare il
modello (calcolo degli
aggregati), prima di
poterlo utilizzare
Dutto Riccardo
Data Mining con SQL Server
- Decision Tree
-
SQL Server & Weka
Dutto Riccardo
-
SQL Server & Weka
2
Mining model viewer – Decision Tree
• “Mining model viewer -> decision tree” permette di
visualizzare e navigare l’albero
Dutto Riccardo
-
Mining model viewer – Dependency Network
• “Mining model viewer -> dependency network” visualizza
la “rete delle dipendenze” ossia la “forza” del legame
degli attributi con la classe da predire
SQL Server & Weka
Dutto Riccardo
Variare i Parametri del modello
• Nella tab “Mining Models” è possibile visualizzare e
modificare i parametri che SQL Server usa come
standard per la creazione del modello
– Per esempio per i Decision Trees è possibile variare il tipo di
split, il tipo score, il supporto minimo, etc.
-
SQL Server & Weka
Valutazione del Modello
• “Mining accuracy chart” permette di valutare il modello
tramite diversi strumenti.
• La tab “input selection” permette di definire alcuni parametri
di classificazione e i dati da usare come test.
Usa i dati definiti durante
la creazione del modello
(con la possibile
aggiunta di filtri)
Permette di selezionare
una singola classe da
predire
Usa i dati definiti
durante la creazione
del modello
Usa un altro dataset (che
deve essere presente nel
Data Soure View)
Dutto Riccardo
-
SQL Server & Weka
Dutto Riccardo
Valutazione del modello (2)
• “Classification Matrix” visualizza la matrice di confusione
-
SQL Server & Weka
Valutazione del modello - Lift Chart
• Lift chart
– Selezionare in “Input selection” tab il “predict value” (la classe obbiettivo)
– Il modello di DM creato assegna ad ogni dato (identificato dall’ID) una
probabilità di appartenere alla classe obbiettivo (in questo esempio è usata
la classe “Priority” come target)
– Supporre di ordinare i dati per questa probabilità assegnata dal modello.
ID dato
• “Cross Validation” permette di effettuare la cross validation
Dutto Riccardo
-
SQL Server & Weka
Probabilità che sia
“prority”
Classe reale
456
100%
Priority
756
99%
Priority
45
99%
Not Priority
34
98%
Priority
76
95%
Priority
42
95%
…
…
442
1%
Nel caso ideale, l’algoritmo di DM
dovrebbe assegnare a tutti i dati che
realmente appartengono alla classe
“Priority” una alta percentuale di
probabilità e a quelli non appartenenti a
“Priority” una percentuale bassa.
In questa tabella quindi dovremmo trovare
tutti i dati appartenenti a “Priority” in alto e
quelli appartenenti a “Not Priority” in
basso.
Priority
…
Not Priority
85
1%
Not Priority
724
1%
Priority
835
0%
532
0%
Siccome circa il 33% dei dati
appartengono a Priority, nel caso ideale
dovremmo trovare il 33% superiore della
tabella con classe “Priority” e il restante
con “Not Priority”
Not Priority
Not Priority
Dutto Riccardo
-
SQL Server & Weka
3
Valutazione del modello - Lift Chart (2)
Valutazione del modello - Profit Chart
•
Lift chart
–
–
–
– Richiede di selezionare:
Considero i dati della tabella precedente in
quell’ordine e li metto su un grafico (da
sinistra verso destra)
•
•
•
•
•
Ogni volta che il dato effettivamente
appartiene alla classe salgo (lift) di un po’
altrimenti mi rimango costante (mi sposto
solo a destra)
Nel caso ideale (curva verde) tutti i primi
dati che metto sul grafico appartengono
alla classe selezionata e quindi salgo
sempre (poi una volta che ho finito i dati di
questa classe trovo quelli delle altre classi
e allora rimango costante)
Nel caso reale (curva rossa) all’inizio trovo
i dati appartenenti alla classe “Priority” e
quindi salgo (rimango uguale alla curva
ideale) ma poi inizio a trovare dei dati che,
anche se hanno una alta percentuale di
essere nella classe scelta, in realtà non lo
sono e mi stacco dalla curva ideale
Profit chart
•
percentuale di dati
appartenenti a
“Priority” trovati (sul
totale dei dati
appartenenti a
Priority)
Dutto Riccardo
-
Popolazione totale di casi
Costo fisso per intraprendere l’azione
Costo per individuo
Guadagno per individuo
Supponendo sempre di ordinare i dati per “probabilità che appartengano alla
classe decrescente” il grafico mi indica il guadagno al variare della percentuale
di individui che decido di contattare
percentuale di dati analizzati sul
totale (i dati sono ordinati per
probabilità di appartenere alla
classe “prioirty decrescente)
SQL Server & Weka
Dutto Riccardo
-
SQL Server & Weka
Weka
•
•
•
Data Mining con WEKA
Programma sviluppato dall’universita di Waikato in Nuova Zelanda
(http://www.cs.waikato.ac.nz/)
Waikato Environment for Knowledge Analysis
Scaricabile gratuitamente da http://www.cs.waikato.ac.nz/~ml/weka/index.html
(Versione con java incluso o senza java)
Interfaccia Explorer
Dutto Riccardo
-
Dutto Riccardo
SQL Server & Weka
Preprocessing
-
SQL Server & Weka
Classificazione
• Selezione dei dati da analizzare
Modificare i parametri di
classificazione
Caricare il file (.arff)
con i dati di training
Scegliere il modello
di classificazione
Scegliere gli
(eventuali) filtri per
pre-processare i dati
(discretizzazione,
campionamento,
feature selection, etc.)
Scegliere il metodo per
testare il modello
Scegliere la classe da
predire
Scegliere gli attributi
dei dati di training da
utilizzare per la
creazione del modello
Statistiche sulla
distribuzione dei dati
Dutto Riccardo
-
SQL Server & Weka
Statistiche della
classificazione
Dutto Riccardo
-
SQL Server & Weka
4