6
livello di esposizione ad un certo agente di rischio. Tale livello è di norma un
valore discreto che può variare tra 0 e 4, indicando una minore o maggiore
pericolosità. Ognuna delle componenti deve essere presente anche se la persona
non è soggetta a quel particolare rischio, nel qual caso le si assegnerà una
componente nulla. Il data set è perciò costituito da una tabella in cui ogni riga è
associata a una Figura Professionale e ogni colonna rappresenta un certo agente.
Essendo il numero di Figure Professionali molto elevato, ci si è posti il problema di
• ridurre il numero di Figure Professionali
• ridurle ricercando opportuni criteri
Si tratta cioè di raggruppare le FP in modo da dover valutare un minor numero di
profili di rischio e in modo che le FP raggruppate siano simili tra loro.
Nasce sostanzialmente un problema di Data Mining, cioè un sistema in cui,
attraverso un processo di Inductive Learning automatizzato, è possibile riconoscere
le similitudini e le relazioni tra gli oggetti e gli eventi di un certo ambiente, in
modo da poterli poi raggruppare in classi e determinare così regole per predire il
comportamento dei membri di tali classi.
Si tratta di una teoria affascinante che, benché ‘abbandonata a se stessa’ per molto
tempo, sta recentemente riscuotendo un grande successo soprattutto nelle imprese,
data la molteplicità di campi a cui essa può essere applicata.
Come è stato messo in luce nel corrispondente capitolo, sono due gli approcci con
cui è possibile affrontare un problema di Data Mining: Supervised e Unsupervised.
Dovendo procedere in una classificazione delle Figure Professionali in base ai
requisiti espressi, si è ritenuta più adeguata la scelta di un modello Unsupervised:
le FP sono infatti originariamente indifferenziate e non si conosce a priori il
numero di classi finali, né la legge di aggregazione per una certa classe.
TECNICHE USATE
Effettuando ricerche per individuare le tecniche adatte allo scopo, si scopre che ne
esistono numerose. Si è quindi effettuata una scelta, approfondendo solo alcune
delle possibili aree.
Il requisito essenziale è che i profili di rischio che vengono classificati nello stesso
cluster siano simili tra loro.
Il concetto di vicinanza richiesto è che le componenti non distino tra loro più di 1.
7
In caso contrario se si accettasse un criterio meno rigido sulle singole componenti
del vettore e supponendo che FP
1
, sottoposta all’agente 7 con livello 4, e FP
2
,
sottoposta allo stesso agente con livello 0, cadano nella stessa classe si andrebbe
incontro alla seguente situazione: se si valuta il rischio complessivo della classe in
base al profilo di FP
1
, il medico competente sarebbe indotto a prendere
provvedimenti di sicurezza molto rigidi anche nei confronti di FP
2
, benché non ve
ne sia ragione, con conseguente spreco di risorse e denaro.
. . . Reti Neurali
Per reti neurali si intende un sistema basato su una metafora del funzionamento del
cervello, in grado di imparare a svolgere un preciso compito a fronte di opportuni
stimoli dati in input. E' necessaria perciò una fase di training in cui i neuroni
modificano i pesi ad essi associati in accordo con regole che variano a seconda del
tipo di reti adottate.
In questo ambito, ho scelto di usare le reti Self-Organizing di Kohonen essendo
queste in grado, dopo la fase di apprendimento, di riconoscere e quindi di
classificare i vettori delle FP date in input. Si tratta di reti che in seguito al training,
effettuano una classificazione in uno spazio di output che preserva le proprietà
topologiche o la distribuzione dei dati forniti in input.
Strumento: Ho sperimentato questo approccio, creando un programma con
MATLAB in grado di simulare il training della rete e la classificazione di vettori, e
che consente di scegliere per ogni matrice da processare, l’architettura (numero di
neuroni per layer, ovvero il numero di classi finali) ritenuta più idonea. La legge di
apprendimento è la Instar Rule, attraverso cui è possibile dedurre il winner per
ogni vettore processato, cioè il neurone che più si avvicina al vettore, e i vicini di
questo, vale a dire i neuroni in grado di riconoscere vettori molto simili a quello
fornito in input. L’output del programma consiste non solo nella classificazione dei
vettori, ma anche nella possibilità di visualizzare lo spazio di output attraverso la
creazione di particolari mappe, dette mappe di Kohonen che vengono modificate
man mano che si procede nell’apprendimento, evidenziando alla fine la
distribuzione dell’input e i neuroni vicini.
Risultati: Partendo da una rete di Kohonen 2*3 e 3*2 per processare una
matrice 9*30 con raggruppamenti già evidenti,, si nota che tali raggruppamenti
vengono preservati. Passando però a matrici più grandi, 15*100, con reti 5*6 e 6*5,
8
si nota che i risultati sono meno soddisfacenti: vettori non molto simili sono
raggruppati assieme. “Non molto simili” nel senso che guardando le singole
componenti dei vettori queste distano 3 o 4.
. . . Algoritmi di Clustering
Risultati analoghi si ottengono usando JMP per implementare alcune tecniche di
clustering, quali Ward, Single Linkage, Complete Linkage, K-Means. Si è trattato
in tal caso di investigare nell’area della Multivariate Analysis, tecniche di analisi
statistiche dei dati in grado di evidenziare relazioni simultanee tra un numero
ragionevolmente grande di variabili.
Risultati: La tecnica Ward non risulta adatta in quanto ad esempio
nell’esperimento della matrice di 30 vettori crea ben 29 classi, rendendo la
classificazione vana.
Inadatto è risultato anche il Single Linkage in quanto soffre del problema opposto:
in ognuno degli esperimenti ha prodotto una classe numerosissima e poche altre
con un solo membro.
I restanti metodi, pur fornendo raggruppamenti più omogenei in termini di numero
di classi e loro cardinalità, presentano ancora una distanza di 3 o 4 tra le
componenti dei membri di una stessa classe.
In base a quanto esposto si giunge alla seguente considerazione:
i metodi esaminati, basati su criteri di distanza tra vettori e non tra componenti,
non sono in grado di garantire i requisiti sulla distanza tra le componenti dei
membri di una stessa classe.
Si è allora delineata la necessità di disporre di un metodo di “Classificazione
Vincolata” che proceda all’inserimento di due FP in una stessa classe solo se le
rispettive componenti non distano più di 1, riconducendo perciò il problema ad un
discorso di distanza tra componenti piuttosto che tra vettori.
In tal senso, prendendo spunto da approcci usati in altri domini di applicazione per
risolvere problemi concettualmente simili, si è giunti alla messa a punto di un
preciso algoritmo in grado di rispondere alle esigenze del caso.
9
Tale algoritmo è in grado di realizzare una significativa riduzione dei dati
attraverso una classificazione che rispetta i vincoli delle distanze tra le componenti.
L’algoritmo in questione, che è stato implementato in Matlab, fornisce risultati di
gran lunga migliori rispetto alle tecniche tradizionali.
Processando ad esempio una matrice di 100 vettori ci si riconduce a 29 classi
contenenti vettori simili tra loro secondo i vincoli imposti. Anche aumentando le
dimensioni della matrice fino a 10*400, risultati restano buoni, ottenendo solo 83
classi, caratterizzate da una cardinalità abbastanza uniforme.
Si può quindi concludere che per lo specifico problema che si è dovuto affrontare,
quest’ultimo approccio è sicuramente il migliore fra tutti quelli visti.
10
2. Tecniche di Classificazione
2.1 Il Data Mining attraverso degli articoli
Il bello del data mining
“Rimasta per anni una faccenda da pionieri, questa tecnologia sembra ormai
prossima a entrare in azione nelle imprese”
Sono sempre di piu’ i fornitori di software che, militando in arre
diverse, da quella dei data base e del data warehouse a quella dei
sistemi di supporto alee decisioni, stanno inserendo capacita di data
mining nella propria offerta. Sembra insomma che questa tecnologia di
accesso, estrazione ed elaborazione dei dati, di cui per la verità
sentiamo parlare da un paio d’anni, stia uscendo dal limbo delle cose
belle ma astratte dell’informatica per divenire uno strumento
realmente operativo.
A differenza delle tecniche fino ad oggi usate per accedere e analizzare
i dati necessari, a prendere una decisione genericamente volta a
migliorare i risultati di businness, cioè le tecniche basate su SQL.
OLAP, data base multidimensionali, data warehouse, le tecniche di
data mining consentono di ricavare da un data base di grandi
dimensioni informazioni non semplicemente retrospettive, seppur
dinamiche ma previsionali e proattive. In altre parole, ricorrendo
all’analogia con l’attività mineraria cui si ispira il termine, gli
strumenti data mining sono in grado di esplorare una montagna di dati
per scoprire un filone prezioso ovvero gli schemi di comportamenti
passati memorizzati nei DB, in base a cui è possibile prevedere
tendenze e comportamenti futuri, e programmare di conseguenza le
azioni più opportune.
Uno strumento di data mining può rispondere ad una domanda del tipo
:’Come andranno le vendite nella tal città il mese prossimo e perché?’.
Questo tipo di analisi viene detta prospettica e proattiva, e fino ad oggi
non ha potuto essere automatizzata per diversi motivi.
Intanto perché gli algoritmi di calcolo non erano ritenuti
sufficientemente maturi e affidabili; poi perché i vari DB aziendali non
offrivano adeguate garanzie di completezza e coerenza dei dati; infine
poiché la potenza elaborativa a disposizione comportava tempi di
risposta troppo lunghi.
Negli ultimi due anni sono maturate le condizioni tecnologiche che
rendono il data mining una metodologia applicabile in ogni azienda:
l’avvento del data warehouse consente oggi infatti una massiccia
raccolta di dati, mentre i sistemi multiprocessor simmetrici possono
compiere in parallelo le elaborazioni di grandi DB; gli algoritmi di
data mining, hanno raggiunto prestazioni superiori rispetto alle
tecniche statistiche tradizionali.Il mercato dei prodotti di data mining è
per il vero ancora allo stato nascente. Ai fornitori della prima ora
11
come IBM, PILOT, SAS Institute, si stanno aggiungendo molte altre
aziende.
Il fatto, è che la realizzazione dei data warehouse si limita per lo più a
data mart contenenti i dati di vendita e come tale si limita soprattutto
alle aziende che hanno come core businness la distribuzione di beni o
servizi di larga scala spiega perché oggi l’impiego di strumenti di data
mining interessi in specie aziende di grandi dimensioni che usano
sistemi MPP operanti in mercati particolarmente turbolenti e ad alta
concorrenzialità come la grande distribuzione, le telecomunicazioni, il
credito.
Tuttavia, è parere di Gartner Group che nei prossimi 3-4 anni, grazie
ai progressi registrati nella raccolta e memorizzazione dei dati sempre
più imprese utenti di grandi sistemi avranno la necessità di sfruttare in
modo innovativo il “valore post-vendita” dei loro grandi archivi di
dati per guadagnare un vantaggio competitivo e che per fare ciò
investiranno in data mining e sistemi ad elaborazione parallela
massiccia.
Dalla rivista ‘COMPUTERWORLD ITALIA del 17 marzo 1997’
Articolo di Ludovica Ottone
TECNICHE DI DATA MINING
Le tecniche di data mining
più usate sono :
Reti Neurali Artificiali
: modelli previsionali non
lineari che apprendono per
addestramento in maniera
simile a quelle delle reti
biologiche di neuroni.
Alberi Decisionali :
strutture ad albero che
rappresentano serie di
decisioni, le quali generano
le regole di classificazione di
un data set.
Algoritmi Genetici :
tecniche di ottimizzazione che
usano concetti propri
dell’evoluzione come
processi di combinazione
genetica, mutazione e
selezione naturale.
Metodo del Vicino più
Prossimo: tecnica che
classifica ciascun record di
un data set in base ad una
combinazione delle classi dei
K record piu’ simili al primo
contenuti in un data set
storico (dove K>=1).
Induzione di Regole:
estrapolazione di regole utili
del tipo ‘Se . . . allora . . .’
dai dati disponibili in base
alla loro rilevanza statistica.
Inizialmente usate in
strumenti di analisi
specializzati e operanti su
quantità ridotte di dati, oggi
la maggior parte di queste
tecniche sta evolvendo per
integrarsi con i data
warehouse conformi agli
standard e alle piattaforme
OLAP.
Dalla Rivista ‘EDP’ gennaio 1997
12
PILOT CHIUDE IL CERCHIO
[...] Lo strumento di data mining di casa Pilot, il Discovery Server,
insieme ad Internet Publisher, strumento per il supporto dell’ambiente
Web, rappresentano il modo con cui Pilot si appresta a chiudere il
cerchio delle tecnologie che rendono completa una soluzione per il
supporto delle decisioni sia dal punto di vista funzionale sia dal punto
di vista degli ambienti di rete. Se infatti la componente di data mining
si indirizza ad applicazioni di analisi previsionale e proattiva per
vendite e marketing per la verità ancora abbastanza pioneristiche,
l’aggiunta del supporto di ambienti Internet / Intranet estende
l’accessibilità di tali tecniche sia in senso quantitativo (anche gli utenti
remoti), sia in senso economico (minori costi di supporto). [...]
Dalla Rivista ‘COMPUTERWORLD ITALIA del 17 marzo 1997
Ritengo questi articoli particolarmente interessanti, in quanto mostrano come
l’interesse nei confronti delle tecniche di Data Mining vada crescendo, divenendo
argomento di studio e di applicazione di grande attualità. Questo non tanto per una
sorta di moda che si sarebbe venuta a diffondere, ma per i vantaggi e i risultati che
con il suo uso si raggiungono.
Questo è uno degli aspetti che con la presente tesi si è avuto modo di sperimentare:
l’approfondimento di metodi di classificazione applicati ad un opportuno case
study.
13
2.2 Data Mining: La ricerca delle informazioni nei Database
Il Data Mining è la ricerca di relazioni e pattern globali che risultano nascosti tra le
informazioni contenute in un grande Database. Tali relazioni rappresentano
informazioni sugli oggetti del database e, se il database è un adeguato specchio, sul
mondo reale che esso registra.
Parlando di Data Mining si presentano i seguenti problemi:
Il numero di possibili relazioni è molto grande e si rende perciò necessaria una
strategia di ricerca intelligente, tratte ad esempio dal dominio delle learning
machine.
Le informazioni ottenute dalla ricerca potrebbero risultare rovinate o incomplete a
causa di perdita di dati; di qui la necessità di tecniche statistiche usate per stimare
l’affidabilità delle relazioni individuate.
2.2.1 Introduzione
Dato che un Database è un ‘deposito’ di informazioni, si spera affidabile, uno dei
primi obiettivi che ci si pone è di recuperare in modo efficiente tale informazione.
Quanto ritrovato non sarà una copia esatta dell’intero DB, ma è informazione che
possiamo inferire dal DB.
Si possono distinguere due tecniche di inferenza:
Deduzione: usata per inferire dell’informazione che è logica conseguenza di quella
contenuta nel DB; tale tecnica è ad esempio usata nei DBMS relazionali attraverso
gli operatori di join, per cui se una tabella gestisce la relazione tra impiegati e
dipartimenti, e un’altra quella tra dipartimenti e manager, il join evidenzierà la
relazione tra impiegati e manager.
Induzione: è usata per inferire informazione da una generalizzazione di quella
contenuta nel DB, per cui rifacendomi all’esempio sopra consentirebbe di inferire
che ogni impiegato ha un manager. In tal modo si possono individuare delle
regolarità nel DB, intese come combinazioni di valori per certi attributi,
realizzando così una sorta di riassunto ad alto livello dell’informazione. Penso tali
regolarità come regole per predire il valore di un attributo in funzione di altri
attributi.
14
Un processo di induzione consiste quindi nella selezione delle più plausibili regole
e regolarità che il DB supporta.
2.2.2 Inductive Learning
Un ambiente può essere descritto e semplificato attraverso un modello. La
creazione di un modello è detto Inductive Learning e consiste nell’osservare
l’ambiente per riconoscere in esso similitudini tra oggetti ed eventi, poi raggruppati
in classi, creando così regole per predire il comportamento dei membri di tali
classi.
Sono due le tecniche di apprendimento di particolare interesse:
• supervised learning
• unsupervised learning
Nel primo un teacher definisce le classi, fornendo per ciascuna degli esempi: il
sistema deve scoprire proprietà comuni tra esempi di ogni classe e dedurre così una
class description.
A tal punto conosciamo la regola di classificazione, cioè vale la seguente
proposizione
CLASSE + DESCRIZIONE = REGOLA DI CLASSIFICAZIONE
che interpretiamo come ‘ If description then class ‘, cioè associa un dato oggetto ad
una classe.
Nell’unsupervised invece il sistema deve scoprire le classi da solo, basandosi sulle
proprietà comuni degli oggetti.
L’automazione dell’inductive learning è realizzato dalla machine learning, il
sistema incaricato di costruire il modello dell’ambiente, senza interagire
direttamente con esso, ma basandosi su un training set, cioè osservazioni
codificate.
Nel supervised learning il sistema cerca descrizioni per le classi definite a priori,
mentre nell’unsupervised learning si identifica un sottinsieme del training set come
membri di una nuova classe, con le relative descrizioni. Queste sono rinvenute
attraverso una strategia di ricerca iterativa, in cui si ricerca nel set di tutte le
descrizioni costruibili, la migliore. In tale processo si formula un’ipotesi iniziale
che viene verificata computando una certa funzione qualità. Questa è basata su
tecniche statistiche e valuta la correttezza dell’ipotesi in rapporto al training set.
15
Successivamente l’ipotesi viene accettata, rifiutata o migliorata finché si trova la
migliore descrizione.
Training set
Funzione
qualità
Verifica
ipotesi
Generazione
ipotesi
Accetta
rifiuta
migliora
Quando il training set è un DB, chiamo la ricerca delle descrizioni Data Mining, e
il suo compito è assistere l’utente nella generazione delle ipotesi, cioè nel
rinvenimento delle descrizioni e quindi delle classi.
Infatti il modello costruito attraverso l’inductive learning comprende classi, che
rappresentano oggetti simili nell’ambiente, e regole che descrivono i mutamenti
nell’ambiente. Di solito il Data Mining viene considerato una forma di inductive
learning molto semplice in quanto si basa su modelli relativamente semplici.
E’ possibile dare una descrizione formale dei concetti visti e per fare questo
assumo che:
1. Il DB è relazionale
2. Ogni oggetto dell’ambiente lo rappresento con Tuple
3. Le Tuple rappresentano proprietà di oggetti, non relazioni tra oggetti
4. Il DB possiede per semplicità una sola tabella, cioè si impone la ‘Universal
Relation Assumption’
. . . environment
Si tratta dell’ambiente osservato e dipende dal contesto. Il suo stato in t lo indico
con S
t
e rappresenta :
• un oggetto nell’ambiente
• le proprietà dell’oggetto
• la relazione con altri oggetti
Ogni ambiente è caratterizzato da una funzione di Transizione di stato T: S -> S
che definisce il prossimo stato S
t+1
, dove S rappresenta l’insieme di tutti i possibili
stati. Uno stato caratterizza uno o più oggetti che si trovano in quello stato.
. . . training set
16
Sia A= {A
1
,. . . , A
n
} un set di attributi con dominio D
1
,. . . , D
n
. Definisco
allora training set una tabella su A. Un fatto o esempio è una tupla di tale tabella.
L’universo U è la full relation su A, cioè U = D
1
× ... × D
n
e quindi un training set
è un sottinsieme di U.
. . . classi
Gli oggetti che soddisfano un certo insieme di proprietà fanno parte di una stessa
classe C
i
. Oggetti distinti dell’ambiente li posso perciò rappresentare internamente
attraverso un unico oggetto, assunto come rappresentante della classe. Ad ogni
classe è associato un certo insieme di proprietà, le descrizioni, che indico con D
i
.
A partire da tali descrizioni posso creare la funzione di classificazione: P: S -> C
che mappa un oggetto O, che si trova in uno stato S nella classe C
k
, se O soddisfa i
valori D
k
.
Quindi dato che un oggetto lo identifico con una classe, non parlo tanto di
transizione di stato dell’oggetto quanto di transizione di stato della classe,
definendo : T’: C
t,i
-> C
t+1,j
dove t, t+1 indicano lo stato e i,j indicano le classi.
Si dice che un modello è corretto se predice lo stato successivo correttamente, cioè
se per ogni t, la rappresentazione interna del prossimo stato (la classe) è identica
alla rappresentazione predetta dal modello, tramite T. Questo significa che P deve
essere un omomorfismo:
P( T (S
t
)) = T’(P(S
t
)).
Occorre sottolineare che, dato un insieme di osservazioni relative ad un certo
ambiente, il sistema può costruire modelli diversi, tra i quali più di uno potrebbe
risultare corretto. Un problema legato all’inductive learning consiste perciò nello
stabilire innanzitutto dei criteri per selezionare il miglior modello. In secondo
luogo, nel caso di più modelli risultanti corretti, si tratta di distinguere tra relazioni
realmente esistenti tra gli stati e relazioni apparenti, che potrebbero occorrere se si
usa un limitato numero di esempi.
Poiché per molti ambienti il numero di possibili stati è potenzialmente infinito, non
è sempre possibile verificare la correttezza del modello.
17
Ogni DB contiene attributi predicted, usati per descrivere la classe di una certa
tupla, e attributi predicting, cioè quelli definiti in termini di altri. Una
combinazione di valori predicted mi consente di definire una classe:
una classe C
i
è un sottinsieme del training set S (cioè della tabella) e
comprende tutti gli oggetti (le tuple) che soddisfano una class condition
cond
i
C
i
= {o S | cond
i
(o)}
Un oggetto che soddisfa cond
i
si dice istanza o esempio positivo della classe.
. . . clustering
In caso di unsupervised learning, il sistema deve costruirsi da solo le classi, cioè
esso raggruppa i dati del DB, scoprendo sottinsiemi di oggetti correlati nel training
set e cercando le descrizioni associate a ciascuno di questi sottinsiemi.
Il processo può essere visualizzato tramite la seguente figura:
descriptions
classes
D
1
C
1
D
3
C
3
D
2
C
2
construct
construct
predictedpredicting
C
1
C
3
C
2
Per illustrare la complessità dell’unsupervised learning, si consideri il numero di
possibili raggruppamenti di un DB con N tuple. Se ci sono m cluster nel DB si
partizioni l’insieme di N tuple in m sottinsiemi disgiunti non vuoti e sia P(N,m) il
numero di modi in cui questo può essere fatto, dove
J=0..m
m
j
P(N,m) = 1/m! { ( )(-1)
j
(m-j)
N
}
è una funzione che cresce esponenzialmente in N: per grandi N, si ha
18
P(N,m) m
N
/m! m
N-m
× e
m
×
2
m
Il numero totale di modi in cui il DB di N tuple può essere raggruppato è
m=1..N
C(N) = P(N,m)
. . . rules (regole)
Una volta trovate le classi, il sistema deve trovare la descrizione per ogni classe,
deve inferire cioè le regole che governano la classificazione. Le descrizioni
riguardano solo gli attributi predicting del training set. Idealmente devono
soddisfare la descrizione tutti gli esempi positivi, ma nessuno dei negativi. Poiché
per altro vengono caricati nel training set solo attributi di oggetti, non relazioni tra
oggetti, le descrizioni possono consistere solo di condizioni su tali attributi. Le
descrizioni solitamente usate negli strumenti di data mining, sono condizioni di
selezione dell’algebra relazionale.
Dato quindi un sottinsieme A di attributi predicting,
1. Una descrizione elementare è una formula A
1
= c
1
^ ... ^ A
n
= c
n
tale che
se A
1
εA e i < > j A
i
< > A
j
c
1
εDom(A
i
)
2. Un pattern o description è una disgiunzione di descrizioni elementari
3. Una condizione A
i
= c
i
si dice Attribute value condition.
4. Denoto con D l’insieme di tutte le possibili descrizioni.
5. σ
D
(S), detta cover, indica gli oggetti di un sottinsieme del training set S che
soddisfano una certa descrizione D. Tali esempi si dicono coperti (covered) da D.
In termini di algebra relazionale, gli esempi in σ
D
(S) sono la selezione D
dall’insieme S.
Si può concludere che una regola di classificazione consiste di una descrizione D e
di un simbolo di classe C, tale che
∀ oU : oσD
(S) oC
ovvero ‘ If D then C’: se un oggetto soddisfa D allora diviene parte di C.