4. Supporto alle decisioni
Social network
Forse vorresti iscriverti a questo gruppo…
E-commerce
Forse ti interessa anche questo articolo….
Forse vuoi visitare il sito del nostro partner…
CMS
Forse vuoi usare anche questo tag…
Forse vuoi linkare questa risorsa…
Enterprise App
Hai utilizzato questa regola: …, forse vuoi
impostarla come default.
5. Machine learning
Machine learning
Learning: «Generalizzare dall’esperienza»
Generalizzare → Classificare
Molti dei problemi si riducono a problemi di
classificazione
Predizione
○ di un comportamento
○ di un dato
○ di un evento
6. Supervised learning
Training set
un set di dati di ingresso di cui conosciamo
già l’uscita
Il programma «apprende» ed è in grado
di dare una risposta per nuovi dati
d’ingresso
L’errore dell’algoritmo si calcola ridando
i dati di training in ingresso all’algoritmo
7. k-nearest neighbor
Quando
Esiste (o è definibile) un concetto
quantificabile di distanza tra gli oggetti
Abbiamo poca memoria ma una discreta
potenza di calcolo
La classe di un oggetto è quella più
frequente tra i k oggetti del training set
più vicini ad esso.
8. k-NN
All’aumentare di k siamo meno sensibili
al «rumore»
Ma siamo più sensibili allo «scattering»
9. k-NN: Pros & Cons
Pro
Semplicissimo da implementare
Cons
Può essere molto lento
In realtà non c’è apprendimento
○ Le informazioni rimangono nel training set che
dobbiamo portarci dietro ovunque
○ È come se per riconoscere un animale
dovessimo confrontarlo con tutti quelli che
conosciamo!
11. Bayes: Pros & Cons
Pros
Semplice da implementare
Funziona anche con pochi dati
Niente tuning. Forse.
Cons
I dati devono essere dotati di caratteristiche
il più possibile indipendenti
Sensibile al trattamento iniziale dei dati
(importante)
12. Decision Tree
A volte non è facile prevedere il modo di
ragionare dell’utente
Invece di pensarli tutti, un programma potrebbe
estrapolarlo dalle scelte pregresse
Alberi di decisione
Permettono di stabilire anche il «come» si è
arrivati ad una certa classificazione
Sono l’obbiettivo del training
Ma portano anche molta informazione
facilmente fruibile
16. Logistic regression: training
Dobbiamo trovare un «buon» valore per w.
Uno potrebbe essere quello che minimizza
l’errore
Discesa lungo il gradiente
Si parte da un valore iniziale di w
Per ogni elemento nel training set
○ Si calcola l’errore usando la funzione logistica
○ Si modifica opportunamente w in modo da andare
nella «direzione» che minimizza l’errore
Si ripete questo ultimo passo «un po’» di volte.
17. LR: ottimizzazioni
Stochastic Gradient Ascent / Descent
Invece che ricalcolare per ogni elemento nel
training set, si calcola in modo su n elementi
applicando una correzione via via maggiore
Si guadagna in velocità a scapito
dell’accuratezza
18. LR: Pros & Cons
PROS
Una volta addestrato:
○ Poca memoria
○ Funzione di classificazione semplice e rapida
Di facile implementazione
CONS
I dati devono essere convertibili in floating-point
Solo due classi (sì / no)
Richiede tuning
19. Support Vector Machine
Abbiamo l’iperspazio dei nostri oggetti
da classificare
Le classi possono essere viste come
delle regioni che li racchiudono
Posso rappresentarle con dei vettori
Con questi vettori posso classificare nuovi
elementi per capire in quale parte dello
spazio si trovano
20. SVM: Ottimizzazioni
Trovare questi vettori può essere molto
gravoso
In passato richiedeva grande potenza di calcolo
Sequential Minimal Optimization (Platt)
Riduce il numero di iterazioni necessarie per
addestrare una SVM
Problemi non lineari?
Analisi e rimappatura su iperspazi a più
dimensioni
○ Kernel
21. SVM: Pros & Cons
Pros
Robusto
Efficiente
Cons
Difficile implementazione
Sensibile a parametri di tuning ed eventuale
rimappatura
22. Adaboost
Fare il tuning di un classificatore richiede
tempo ed energie
Prendiamo una batteria di classificatori
Scegliamo come risultato una media pesata dei
risultati
Ci servono
○ Pesi
○ Classificatori addestrati
Come?
23. Adaboost: training
Consideriamo una famiglia di classificatori
e una funzione che ci permette di trovare il
classificatore che minimizza l’errore su una
distribuzione D relativa ad un training set.
Inizializziamo D
Ripeti N volte
Prendi il miglior classificatore considerando D
L’errore medio sarà il «peso» del classificatore
Aggiorniamo D
24. Ora alcune demo
Bayes
Classificazione di documenti per argomento
Logistic regression, Bayes, k-nn
Riconoscimento di gesture
ID3
Creazione di un decision tree per un sito di
annunci di lavoro
Progetto scala-recog
http://code.google.com/p/scala-recog/
25. Riferimenti
Peter Harrington, Machine Learning in
Action, Manning 2011
Hosmer, David W.; Stanley Lemeshow
(2000). Applied Logistic
Regression, Wiley. ISBN 0-471-35632-8.
Platt, John (1998), Sequential Minimal
Optimization: A Fast Algorithm for
Training Support Vector Machines