1 Il Data Mining
una gran quantità di dati, ma quello che esse realmente
M accumulano
vogliono sono le informazioni.
olte organizzazioni, industriali, commerciali, scientifiche, nelle loro attività
I sistemi operazionali registrano le transazioni così come si presentano, notte e
giorno, e immagazzinano i dati in file e database. I dati descrivono solo quello che
accade e non forniscono giudizi o interpretazioni ne sono la base d'appoggio per
intraprendere qualsiasi tipo di azione. Essi vengono registrati in modo
sufficientemente strutturato, così che una sessione di registrazione descrive
abbastanza chiaramente un fatto, un evento, ma molto spesso questa strutturazione
è mancante. Alcuni analisti del settore industriale hanno stimato che i dati non
strutturati rappresentano circa 80% dei dati raccolti dalle imprese, contro il 20%
di dati strutturati.
La rivoluzione digitale in questi ultimi anni ha provocato una notevole
proliferazione di dati. Per di più la digitalizzazione delle informazioni risulta un
processo abbastanza semplice e la memorizzazione è economica.
È stato stimato che ogni 20 mesi raddoppia la quantità di dati accumulati e in
futuro ci saranno certamente ulteriori notevoli miglioramenti.
Il progredire delle tecniche di cattura e immagazzinamento di informazioni ha
spinto le organizzazioni di ogni genere a collezionare enormi quantità di dati
poiché essi raccolti in strutture più o meno complesse, contengono delle risorse,
delle informazioni sfruttabili, evidenti o nascoste, con differenti gradi di utilità.
Enormi quantità di dati non sono chiaramente di utilizzo immediato, ma
richiedono una certa abilità nell'estrazione di informazioni.
1.1 Tradizione
Tradizionalmente l'analisi dei dati era un processo “manuale” e l’analista doveva
avere famigliarità sia con i dati sia con i metodi della statistica: egli stesso agiva
come un sofisticato processore di queries (domande), mentre il elaboratore
elettronico era solo un sostegno per il calcolo. Tale strategia di fronte alla crescita
dimensionale degli archivi di dati era destinata a fallire. Di conseguenza si è
costituita ed é cresciuta costantemente una comunità di ricercatori e professionisti
interessati al problema dell’analisi automatica di grandi quantità di dati, nota
come "Knowledge Discovery in Databases (KDD) ” (Scoperta di conoscenza nei
databases). La prima serie di incontri con argomento il KDD si è tenuta nel 1989 e
da allora si sono succedute diverse altre conferenze.
1.2 Nuove Tecniche
L'abilità di analizzare e sfruttare database enormi è in ritardo rispetto l'abilità di
raccogliere e memorizzare i dati. Una nuova generazione di tecniche e strumenti
1
computazionali è di conseguenza necessaria per agevolare l'estrazione di
conoscenza (informazioni significative) dagli archivi di dati. Gli archivi digitali
sono presenti dovunque: banche, industrie, supermercati, attività commerciali
eccetera e molti processi generano flussi di record che vengono memorizzati in
enormi databases, talvolta detti data warehouse (magazzini di dati). Più
propriamente un data warehouse è un database costruito per agevolare l’accesso
alle informazioni; tipicamente è alimentato da uno o più databases di transazioni e
i dati devono essere ripuliti e strutturati per facilitare le queries, i sommari e le
analisi.
L'hardware e le tecnologie correnti per la gestione di databases permettono
l'immagazzinamento e l'accesso ai dati in modo efficiente ed economico, tuttavia i
databases in forma grezza, privi cioè di strutture sufficientemente sofisticate, non
sono di immediato utilizzo. Come abbiamo detto il metodo tradizionale per
trasformare i dati in conoscenza si basa sull'analisi e sull'interpretazione
“manuale”, ma per le compiti richiesti oggigiorno, questo tipo di analisi risulta
lenta, costosa e altamente soggettiva e contemporaneamente i databases sono
cresciuti di dimensione: nel numero di records o oggetti memorizzati (fino a 109),
e nel numero di campi o attributi per oggetto (fino a 103). Da ciò segue che il
problema dell'estrazione di conoscenza da databases enormi andrà risolto tramite
un processo di elaborazione più complesso, formato da molti passi, che possono
andare dalla semplice manipolazione dei dati a sofisticate tecniche di inferenza
statistica, di ricerca e di ragionamento artificiale.
I dati sono il materiale grezzo dai quali si estrae l'informazione.
Ma cosa si può apprendere dai dati per quanto riguardo all'allocazione delle
proprie risorse in modo più efficiente, o a come soddisfare i propri clienti o a dove
indirizzare le ricerche? La tecnologia più recente per affrontare tali problematiche
è il data mining (estrazione dai dati). Il data mining sfrutta raffinate analisi
statistiche e tecniche di modellazione per scoprire patterns e relazioni nascoste nei
database, che i metodi ordinari spesso non scorgono.
Si deve ora introdurre la definizione del termine inglese pattern, che in italiano
correntemente può significare1: "campione, modello, esempio; disegno (di stoffa),
motivo (di un vestito) oppure schema; forma, configurazione (elaborazione)
oppure impronta, sagoma (medicina)". Tale termine risulta quindi abbastanza
sfumato in italiano, perciò lo useremo sempre nella sua lingua originaria, previa
definizione.
I dati comprendono un insieme di fatti, e il pattern è un’espressione, in qualche
linguaggio, che descrive un sottoinsieme di dati (o un modello applicabile a
questo sottoinsieme), le associazioni tra essi, le sequenze ripetute o le regolarità
nascoste nei dati. In definitiva un pattern indica una struttura o, in generale, una
rappresentazione sintetica dei dati.
1
Conoscenza estratta tramite tecniche di Data Mining manuale dal vocabolario italiano-inglese “il Ragazzini” della
Zanichelli.
2
1.3 Definizione di Knowledge
Databases e Data Mining
Discovery
in
Il processo di ricerca, di estrazione dei patterns dai dati é noto con molti nomi
(anche come Data Mining) in differenti ambienti (estrazione di conoscenza,
scoperta di informazione, raccolta di informazione, archeologia dei dati). Con i
termini inglesi Knowlegde Discovery in Databases (KDD), si indica l’intero
processo di scoperta di conoscenza dai dati dei databases. Il Data Mining è un
particolare passo in questo processo: l'applicazione di specifici algoritmi per
l'estrazione di patterns. Esso, insieme agli altri passi nel processo di KDD, come
ad esempio la preparazione, la selezione, la pulizia dei dati (data cleaning),
l'incorporamento di conoscenza già acquisita, l'interpretazione dei risultati,
assicurano e garantiscono che conoscenza estratta sia effettivamente valida. Al
contrario, l'applicazione alla cieca dei metodi di Data Mining (giustamente
criticato come data dredging (dragaggio dei dati)) può risultare una attività
rischiosa che porta alla scoperta di pattern non significativi.
Il KDD è nato e evolve dall’incrocio di numerose ricerche in diversi campi di
studio come machine learning, riconoscimento dei pattern, statistica, intelligenza
artificiale, ragionamento sotto incertezza, sistemi esperti per acquisizione di
conoscenza, visualizzazione dei dati, machine discovery, scientific discovery,
recupero di informazione, elaborazione ad alte prestazioni e chiaramente anche
dall’ambito della gestione di databases: i sistemi software per KDD inglobano
teorie, algoritmi e metodi estratti da tutti questi campi. Le teorie e gli strumenti
per la gestione di databases forniscono le infrastrutture necessarie per
memorizzare, accedere e manipolare i dati e in particolare è nata una nuova
disciplina per la gestione di grandi quantità di dati, il data warehousing, che
rispecchia la tendenza attuale nel mondo economico a collezionare e ripulire i dati
di transazioni, allo scopo di facilitare le decisioni.
Le aree di ricerca che si occupano dell'inferenza di modelli dai dati, come il
riconoscimento statistico dei pattern, la statistica applicata, machine learning e reti
neurali, sono state la spinta per molti dei precedenti lavori di scoperta di
conoscenza. Il processo di KDD si fonda ampiamente sui metodi di queste aree,
soprattutto nel passo di Data Mining, ma differisce da esse perché mira all'intero
processo di scoperta di conoscenza, si preoccupa cioè anche della memorizzazione
dei dati e dell’accesso ad essi, come gli algoritmi possano essere scalati per
trattare insieme massivi di dati, come interpretare e visualizzare i risultati, come
l'interazione uomo-macchina possa essere modellata e realizzata pienamente,
eccetera.
La statistica fornisce al processo KDD il linguaggio e la struttura per quantificare
l'incertezza nell'inferenza di pattern di valore generale estratti da campioni
particolari della popolazione. Il KDD è un modello di più ampio respiro rispetto
alla statistica poiché fornisce gli strumenti per l’automatizzazione dell'intero
processo di analisi dei dati, inclusa l'arte statistica della selezione delle ipotesi.
3
1.3.1
Definizione di processo KDD.
Si definisce processo KDD come [22]:
Il processo non banale di identificazione di patterns validi, originali,
potenzialmente utili e in definitiva comprensibili dai dati.
I patterns ricavati dovrebbero essere:
validi
anche per i successivi dati (cioè per i dati dai quali non si sono ricavati i
patterns in questione), e con qualche grado di certezza;
originali almeno per il sistema e preferibilmente per l'utente, cioè dovrebbero
contenere una qualche novità [25];
potenzialmente utili per l'utente o per l'applicazione da eseguire [25];
comprensibili, se non immediatamente almeno dopo qualche post-elaborazione.
Questa definizione implica che si possano definire misure quantitative per
valutare i patterns estratti: in vari casi si possono definire misure di certezza
(stima della accuratezza della classificazione) o di utilità (guadagno,
probabilmente in termini di risparmio economico o in velocità del tempo di
risposta). Queste nozioni come quella di originalità e di comprensibilità sono
molto soggettive, tuttavia in certi contesti la comprensibilità può essere stimata
facilmente (es.: numero di bits necessari per descrivere i pattern). Spesso si ricorre
alla nozione di interesse (interestingness in inglese) che è una misura globale del
valore di un pattern: essa combina i concetti di validità, originalità, utilità, e
semplicità.
Il processo KDD è iterativo e interattivo, con molte decisioni prese dall'utente, e
comporta l’esecuzione di molti passi raggruppabili in pochi tipi di operazioni
fondamentali: la preparazione di dati, la ricerca dei pattern, la valutazione della
conoscenza, i raffinamenti; tutte queste operazioni vengono iterate un certo
numero di volte.
1.3.2
Data mining
Il data mining è uno dei passi del processo KDD e in particolare consiste nella
effettiva ricerca di pattern nei dati. Poiché i patterns su ogni insieme finito di dati
sono potenzialmente in numero infinito e poiché l'elencazione di patterns implica
qualche forma di ricerca in spazi ampi, risulta obbligatorio fissare dei vincoli
computazionali che limitino il sottospazio dove un algoritmo di data mining
effettivamente deve esplorare.
Il data mining trova i patterns e relazioni tramite la costruzione di modelli.
I modelli, come ad esempio le cartina stradale, sono delle rappresentazioni astratte
della realtà. Una cartina può modellare le vie di una città, ma non può mostrare un
incidente che rallenta il traffico, o gli edifici che richiederebbero delle deviazioni
4
del flusso veicolare. Non si dovrebbe mai confondere il modello con la realtà,
però un buon modello è un'utile guida alla comprensione dei problemi con i quali
si ha a che fare, e suggerisce le azioni che possono essere intraprese per
raggiungere i propri scopi.
Esistono due tipi principali di modelli in data mining. Il primo, quello dei modelli
predittivi, usa i dati che rappresentano fatti o eventi dei quali sono noti
l'evoluzione finale e risultati per costruire un modello che viene usato per predire
esplicitamente l'evoluzione e i risultati per altri dati. Ad esempio un modello può
essere costruito con la storia dei pagamenti delle persone alle quali si fatto un
prestito, allo scopo di aiutare l'identificazione di chi probabilmente non restituirà i
prestiti
Il secondo tipo, quello dei modelli descrittivi, descrive i patterns esistenti nei dati
che possono essere usati nella prese delle decisioni. La differenza fondamentale
tra i due tipi di modelli è che i modelli predittivi fanno delle predizioni esplicite
(come ad esempio la probabilità di una mancata restituzione di un prestito o la
redditività di un cliente) mentre i modelli descrittivi sono usati per aiutare a
costruire un modello predittivo o, quando essi sono la base per le decisioni e le
azioni, per formulare una predizione implicita.
Chiaramente, ogni organizzazione che conosce molto bene il proprio ambiente e i
propri problemi, già è a conoscenza di molti importanti patterns che i suoi
operatori hanno osservato negli anni. Ciò che il data mining può fare è non solo
di confermare queste osservazioni empiriche, ma anche trovare patterns nuovi e
più sottili. Questa nuova conoscenza può produrre ottimi risultati creando costanti
miglioramenti.
1.4 Data mining: Cosa non può fare
Il data mining è un insieme di strumenti, non è un sistema completamente
automatico per l'estrazione d'informazioni dai databases. Non controlla il database
guardando cosa accade e non avverte quando scorge un pattern interessante. Il
bisogno di conoscere l'ambiente di lavoro, di capire cosa rappresentano i dati e di
come funzionano i metodi analitici d'elaborazione, non viene eliminato; il data
mining assiste l'analista nella ricerca dei patterns e delle relazioni nei dati, ma non
dice quanto essi valgano per chi li estrae. Infine i patterns scoperti devono venire
comunque verificati nel mondo reale.
Sebbene un buono strumento di data mining mette al riparo dalle complessità
delle tecniche statistiche, tuttavia richiede la comprensione del funzionamento
degli strumenti che si scelgono e degli algoritmi sui quali sono basati. Ad
esempio, le scelte fatte nell'inizializzazione degli strumenti di data mining e le
ottimizzazioni selezionate, influenzano l'accuratezza e la velocità dei modelli.
5
Bisogna inoltre avere una buona conoscenza dei dati, ad esempio la qualità dei
risultati spesso sarà sensibile alla presenza di valori che si discostano molto dai
valori tipici nel database (outliers2), alla presenza di campi irrilevanti o di campi
correlati tra loro, al modo nel quale i dati sono codificati e ai dati presi in
considerazioni e a quelli esclusi. Gli algoritmi variano la loro sensibilità in
conseguenza di questi problemi, ne segue che è poco ragionevole affidare tutte
decisioni al solo software per il data mining.
È anche scorretto affermare che il data mining trova delle risposte a domande che
non gli sono state poste. Mentre si può non fornirgli un'ipotesi (“Le persone tra 18
e 25 anni sono interessate al mio prodotto?”), bisogna tuttavia informare lo
strumento per il data mining su quale tipo di pattern si sta cercando. Piuttosto che
formulare una vaga richiesta, “Aiutami a rendere più interessante il mio prodotto”,
si può usare il data mining per individuare sia le caratteristiche della gente che è
interessata al prodotto, sia di quella che oltre ad essere interessata, è anche
disponibile a comprarlo. I patterns che il data mining trova per questi due
obiettivi, potrebbero essere molto differenti.
Il data mining non sostituisce gli abili analisti ma piuttosto dà loro un nuovo
potente strumento per migliorare il lavoro da svolgere.
1.5 Data mining e data warehousing
I dati che devono essere analizzati, frequentemente sono estratti dal data
warehouse dell'organizzazione e posti in un data mart.
Sebbene il data warehousing abbia contenuti e pratiche distinti dal data mining, è
strettamente associato ad esso, infatti, il data warehousing è uno dei principali
fattori dell'accresciuto interesse per il data mining. Tuttavia un data warehouse
non è un prerequisito per la efficace applicazione del data mining, e molti
strumenti per il data mining lavorano anche su flat files3, eventualmente estratti
dalle sorgenti di dati operazionali (i dati usati per il funzionamento
dell'organizzazione).
Una definizione di data warehouse ben accettata è stata fornita da Inmon nel 1992
[14]:
"Un data warehouse è una collezione di dati orientata ai soggetti, integrata,
variabile nel tempo e non volatile, per il sostegno alle gestione delle decisioni."
à
Orientata ai soggetti: i dati sono definiti e organizzati in termini affaristici,
raggruppati sotto etichette orientate ai soggetti ("Clienti", "Vendite").
à Integrata: gli oggetti del data warehouse sono definiti in modo tale che
risultino validi per l'impresa e le sue sorgenti operazionali e le sorgenti
2
3
vedi Glossario
vedi Glossario
6
à
à
esterne. Ad esempio tutte le occorrenze di elementi comuni di dati, come il
numero di un cliente, devono essere rappresentate consistentemente per
permettere la realizzazione di resoconti consistenti dal data warehouse.
Variabile nel tempo: ogni dato nel data warehouse è marcato nel tempo al
momento dell'ingresso nel data warehouse stesso. Così si realizza una
registrazione cronologica che permette l'analisi storica.
Non volatile: una volta caricati nel data warehouse, i dati non vengono più
modificati. Così diventano una risorsa stabile per la realizzazione di rapporti e
per le analisi comparative.
La architettura di un data warehouse è costituita essenzialmente dai seguenti
componenti principali:
• sistemi sorgenti, da dove scaturiscono i dati,
• trasporto dei dati e pulizia, muove i dati fra i diversi dispositivi di
memorizzazione e si occupa della pulizia dei dati (consistenza),
• deposito centrale, è il principale dispositivo di memorizzazione del data
warehouse,
• metadati, descrivono cosa è disponibile e dove,
• data marts4, forniscono accessi veloci e specializzati ai dati per gli utilizzatori
finali e per le applicazioni,
• feedback operazionali, integra le decisioni suggerite dai dati all'interno del
sistema,
• utenti finali, sono la ragione principale per la quale si sviluppa il data
warehouse.
Utenti
Finali
Meta
Dati
Data
Marts
Feedback
Operazionali
Deposito
Centrale
Trasporto dei
dati e Pulizia
Trasporto dei
dati e Pulizia
Sistemi
sorgenti
Figura 1 Struttura di un data warehouse
4
Mart in italiano vuol dire mercato, emporio, sala d'aste.
7
I sistemi sorgenti forniscono al data warehouse i dati in forma grezza (ad esempio
in un grosso supermercato una vendita viene registrata dalla cassa con un codice
dell'articolo, l'ora, eccetera). Questi dati sono stati progettati per il funzionamento
del sistema e non per la gestione delle decisioni e spesso adattare un data
warehouse ai sistemi sorgenti presenta diverse difficoltà.
Gli strumenti per i trasporto dei dati e la pulizia si riferiscono fondamentalmente
al software usato per muovere i dati.
Il deposito centrale è la parte più tecnicamente avanzata del data warehouse. È il
database che contiene i dati ed è caratterizzato da tre fattori:
• hardware scalabile,
• sistema di database relazionale,
• modello logico dei dati.
La scalabilità si riferisce al fatto che l'hardware deve avere la capacità di crescere
virtualmente senza limiti. Un unico hardware deve supportare molti utenti, molti
dati, molti processi e ciò è stato possibile negli ultimi anni grazie ai miglioramenti
nella tecnologia parallela. Le macchine parallele possono crescere aggiungendo
più dischi, più memoria, più processori e più banda passante tra i componenti
stessi. Tutto questo è di fondamentale importanza data il rapido aumento
dell'accumulo dei dati.
I databases relazionali sono ormai maturi per approfittare delle piattaforme
hardware scalabili in tutte quelle operazioni su un gran numero di dati: caricare i
dati, costruire gli indici, fare copie di salvataggio, eseguire delle queries. Ogni
tipo di RDBMS (DBMS relazionale) è in grado di comunicare tramite ODBC
(open database connectivity), usato praticamente da ogni programma da scrivania,
e tramite i principali standards proprietari (IBM, Oracle, Sybase eccetera).
Un modello dei dati descrive le strutture dei dati contenuti nel database, non va
però confuso con la disposizione fisica (o schema) del database. Lo scopo del
modello logico dei dati è di comunicare il contenuto del database a un più vasto
auditorio.
I metadati sono spesso una componente ignorata del data warehouse. Un buon
sistema di metadati potrebbe includere le seguenti cose:
- annotazioni sul modello logico dei dati, che spiegano il significato delle entità,
degli attributi, quali sono i valori validi, eccetera,
- le relazioni tra il modello logico e i sistemi sorgenti,
- lo schema fisico
- viste e formule più comuni per l'accesso ai dati,
- informazioni per la sicurezza e l'accesso.
8
I data marts servono a superare i problemi del deposito centrale nel dover servire
migliaia di utenti, con bisogni differenti. Un data mart è un sistema specializzato
che raccoglie insieme i dati necessari ad un certo settore di utenti (dipartimento) e
di applicazioni. Un data mart può essere realizzato con una vista o con una vista
instanzializzata, cioè una vista i cui dati sono memorizzati in una apposita tabella.
Molti sono i vantaggi quando si ha a disposizione un data warehouse.
• L'integrazione dei dati permette all'analista di osservare e accedere i dati
facilmente e rapidamente. Senza i dati integrati invece si spende molto tempo
per la pulizia e il condizionamento dei dati prima di iniziare il processo di data
mining. Il problema della pulizia dei dati per un data warehouse e per il data
mining sono molto simili.
• Nel data warehouse i dati sono presenti in forma dettagliata e "sommarizzata"
(summarized) cioè sotto forma di riassunti (ad esempio la media e la
deviazione standard di un certo campo), di descrizioni di sottoinsiemi di dati,
perciò l'analista che deve usare il data mining si risparmia di compiere tali
operazioni.
• I dati sono ben individuati nel tempo e ciò permette lo studio nel tempo delle
grandezze di interesse e di individuare patterns sul comportamento a lungo
termine.
• I metadati permettono all'analista una più immediata confidenza con i dati.
• Sono già stati risolti molti dei problemi di fusione dei dati (data consolidation)
e sono state attive le procedure di manutenzione.
Malgrado questi vantaggi, la creazione di un ampio data warehouse che fonde i
dati da tante sorgenti, che risolve i problemi d'integrità e che carica i dati in un
database per le interrogazioni, può risultare un compito oneroso, richiedendo
talvolta alcuni anni di lavoro e costi elevati.
Si può tuttavia usare il data mining sui dati di uno o più databases semplicemente
estraendoli e ponendoli in un database a sola lettura. Questo nuovo database
funziona come un data mart.
Figura 2 Data mining: data mart estratto dai databases
9
1.6 Data mining e OLAP
Data mining e OLAP (On-Line Analitytical Processing) sono due strumenti
spesso ritenuti simili, ma in effetti sono molto differenti e possono essere
completarsi l'uno dell'altro.
L'OLAP è una tecnologia software che permette agli analisti, ai gestori e ai
dirigenti di accedere a grandi databases quando i dati risiedono in un unico data
warehouse centralizzato, in data warehouses virtualmente distribuiti.
Uno strumento OLAP deve rispettare diverse caratteristiche per essere considerato
tale5, caratteristiche che sono racchiuse dalla definizione dell'OLAP nelle sole
cinque parole chiavi: Fast Analisys of Shared Multidimensional Information
(FASMI) ovvero analisi veloce di informazione multidimensionale condivisa.
Uno strumento deve essere rapido nel fornire la risposta cioè con una media di 5
secondi, un minimo di meno di 1 secondo e un massimo di 20 secondi. Recenti
studi dimostrano che un utente finale assume come fallito un processo se non
riceve i risultati entro 30 secondi e successivamente digita la combinazioni di tasti
Alt+Ctrl+Del, a meno che il sistema non avverta di attendere per più tempo.
Questa velocità non è ottenibile facilmente quando si ha a che fare con grandi
quantità di dati e particolarmente quando si richiedono elaborazioni specifiche. Si
ricorre a molte varietà di tecniche per raggiungere questo obiettivo tra le quali
forme di memorizzazione specializzate, estese pre-elaborazioni e stringenti
requisiti hardware.
La multidimensionalità dei dati è la richiesta regina per uno strumento OLAP.
Senza addentrarci troppo nel problema, affermiamo che i dati sono organizzati in
ipercubi ognuno dei quali con un certo numero di dimensioni. Una dimensione è
un attributo o un attributo strutturato formato da una lista di membri (nomi o
etichette, in generale valori discreti), che sono considerati dall'utente tutti dello
stesso tipo. Spesso una dimensione ha una struttura gerarchica, ad esempio una
dimensione temporale può essere strutturata in anni, ognuno dei quali e suddiviso
in mesi, così come i campi dello stato, delle regione e della città organizzati
gerarchicamente formano la dimensione geografica. Una dimensione agisce da
indice per identificare i valori racchiusi nell'ipercubo: selezionando un membro
per alcune dimensioni si ottengono dei sotto-ipercubi e se è selezionato un
membro per ogni dimensione si ottiene una cella. Una regola fondamentale per la
costruzione di un ipercubo è che un record di dati deve essere contenuto in una
unica cella. Una cella contiene oltre al gruppo di dati indicizzati dalle dimensioni
anche dei dati aggregati su essi e in particolare sui campi che non formano una
5
L'Olap Council, ovvero l'associazione di produttori di strumenti OLAP, ha formulato 18 regole che bisognerebbe
rispettare per essere considerati un "integralista" OLAP.
10
dimensione (attributi aggregati): esempi di dati aggregati sono la media e la
somma di un certo attributo, il numero di valori all'interno della cella con certe
caratteristiche, eccetera. Selezionando un sotto-ipercubo, con calcoli rapidi ed
elementari, si ottengono i dati aggregati per quella parte di record indicizzati dai
membri delle dimensioni che identificano il sotto-ipercubo stesso: ad esempio
selezionando un certo anno (che raccoglie 12 mesi) e una certa città si può
ottenere il numero di nascite per quella città in quell'anno, oppure selezionando un
certo mese e una certa regione (che raccoglie più città) si può ottenere il numero
di morti per quella regione in quel mese. Il passaggio da dati più dettagliati a dati
più generali (città Æ regione) è l'operazione di drill up, l'operazione inversa (anno
Æ mese) è detta drill down.
Per condivisione si intende che il sistema realizza tutti i requisiti di sicurezza per
la riservatezza e la gestione degli accessi concorrenti quando si è in presenza di
accessi multipli in scrittura. Risulta chiaro che il concetto di condivisione implica
che uno strumento OLAP dovrebbe saper gestire la multiutenza e di conseguenza
dovrebbe avere una architettura client-server.
Altre caratteristiche dell'OLAP, come le già citate multiutenza e l'architettura
client-server, sono: trattamento dei dati non normalizzati, memorizzazione dei
risultati, trattamento dei valori mancanti (missing values)6, flessibilità per la
creazioni di rapporti (reporting), uniformità delle prestazioni nel reporting al
crescere del numero delle dimensioni e delle dimensione del database,
riconfigurazione automatica del livello fisico.
L'OLAP fa parte dell'insieme degli strumenti per la scelta delle decisioni.
Tradizionalmente gli strumenti d'interrogazione (query) e per realizzare dei
rapporti (report) descrivono cosa c'è nel database. L'OLAP va oltre, in quanto
fornisce la risposta a perché certe cose sono vere. L'utente formula un'ipotesi
(riguardo ad una relazione) e la verifica con una serie di queries sui dati. Ad
esempio un analista potrebbe voler determinare quali fattori portano alla mancata
restituzione di un prestito, egli può inizialmente ipotizzare che la gente con basso
reddito è ad alto rischio, quindi analizza il database con l'OLAP per verificare (o
confutare) quest'assunzione. Quando tale supposizione non viene suffragata dai
dati, egli può allora rivolgere l'attenzione ai debiti elevati ritenendoli causa di
rischio e così via, utilizzando anche combinazioni di fattori.
In altre parole l'analista OLAP genera una serie d'ipotetici patterns e usa delle
queries sul database per verificarli o confutarli. Ma quando il numero di variabili
sale a decine o a centinaia diventa molto più difficoltoso formulare buone ipotesi
6
Per missing values si intende che non sono presenti i dati in una cella. Ciò può accadere perché la combinazione di
membri che identificano la cella è priva di significato: ad esempio in un ipercubo che raccoglie informazioni sugli
animali di una certa razza in una certa regione, alla cella contraddistinta dalle etichette "Pinguino" e "Polo Nord" non
apparterrà nessun record perché al Polo Nord non ci sono i pinguini.
11
(richiedendo tra l'altro molto tempo) e analizzare il database con l'OLAP.
Il data mining si differenzia dall'OLAP perché piuttosto che verificare degli
ipotetici patterns, usa gli stessi dati per scoprire tali patterns. Per esempio se
l'analista usa gli strumenti del data mining per identificare i fattori di rischio per la
restituzione del prestito, potrà scoprire che le persone con debiti elevati e bassi
guadagni sono ad alto rischio (come prima), ma potrà anche scoprire altri patterns
che non pensava di testare, come ad esempio che l'età della persona è un fattore di
rischio.
E' qui che il data mining e l'OLAP s'integrano l'un l'altro. Prima sfruttare il pattern
scoperto, l'analista ha bisogno di conoscere quali saranno le implicazioni
finanziarie usando il pattern per controllare chi potrà accedere al credito. Gli
strumenti OLAP permettono all'analista di rispondere a questo tipo di questioni.
In più, l'OLAP è complementare anche nelle fasi precedenti del processo di
scoperta di conoscenza poiché aiuta a comprendere i propri dati, concentrando
l'attenzione sulle variabili importanti, identificando le eccezioni, gli outliers, i
clusters, eccetera. Ciò è importante perché più si conoscono i dati e più risulta
efficace il processo KDD.
Infine uno strumento OLAP è spesso dotato di ottimi strumenti di visualizzazione,
la qual cosa rende più comprensibile ciò che si è scoperto col data mining.
1.7 Data mining, machine learning e statistica
Il data mining trae beneficio dai progressi nel campo dell'intelligenza artificiale
(artificial intelligence, AI) e della statistica. Entrambe le discipline stanno
lavorando su problemi di riconoscimento e classificazione di patterns, entrambe
hanno contribuito grandemente alla comprensione e all'applicazione delle reti
neurali e degli alberi di decisione.
Il data mining non sostituisce le tecniche statistiche tradizionali, ma è
un'estensione dei metodi statistici che è in parte una conseguenza dei forti
mutamenti all'interno comunità statistica. Lo sviluppo di molte tecniche statistiche
era fino ad ora basato su una teoria elegante e su metodi analitici che lavoravano
abbastanza bene su modeste quantità di dati da analizzare. L'aumento di potenza
dei calcolatori, il basso costo, accompagnato dal bisogno di analizzare enormi
insiemi di dati con milioni di tuple, hanno permesso lo sviluppo di nuove tecniche
basate sull'esplorazione brutale delle possibili soluzioni.
Alcuni esempi sono gli algoritmi relativamente recenti come le reti neurali e gli
alberi di decisione, e nuovi approcci a vecchi algoritmi come l'analisi
12
discriminante (discriminant analisys)7. Queste tecniche possono approssimare
pressoché ogni forma funzionale o interazione. Le tecniche statistiche tradizionali
richiedono l'intervento del modellatore (analista) per specificare la forma
funzionale e le interazioni.
Il data mining è l'applicazione di queste e d'altre tecniche dell'AI e della statistica
ai più diffusi problemi del mondo affaristico, scientifico, eccetera, in modo da
renderle disponibili a tutte quelle persone che lavorano con la "conoscenza" e
anche ai professionisti della statistica.
1.8 Data
mining
e
dell'hardware/software
gli
andamenti
Una delle cause dello sviluppo del data mining è stato il considerevole
miglioramento dei costi e delle prestazioni dell'hardware. La sensazionale caduta
dei prezzi dei dischi per la memorizzazione (hard disks) da decine di migliaia di
lire a megabyte a sole decine di lire a megabyte in questi ultimi pochi anni ha
radicalmente cambiato le economie nella collezione e memorizzazione dei dati,
permettendone la raccolta in quantità, su larga scala. Un terabyte di dati costa tra
20 e 30 milioni, mentre in precedenza si aggirava intorno a 20 miliardi di lire.
La caduta dei costi dei processori è stata altrettanto fondamentale. Ogni
generazione di chips accresce fortemente la potenza delle CPU, permettendo
ulteriori abbassamenti della curva dei costi. Ciò si riflette anche sul prezzo delle
RAM, dove il costo a megabyte è sceso da centinaia di migliaia di lire a migliaia
di lire in soli pochi anni. Attualmente i personal computer sono dotati di 64 o più
megabytes di RAM, le workstations possono avere 512 megabytes o più, mentre
server con centinaia di gigabytes di memoria principale sono non sono una rarità.
Mentre la potenza dei computer a singolo processore è vertiginosamente
aumentata, gli effettivi miglioramenti per quanto riguarda la scalabilità
provengono dalle architetture a computer paralleli. Potenzialmente tutti i server
attualmente supportano CPU multiple ricorrendo al symmetric multi-processing
(SMP)8 , e gruppi di questi server SMP possono essere creati allo scopo di
permettere a centinaia di CPU di lavorare alla ricerca di patterns nei dati.
I DBMS (database management system) inoltre sono progrediti nello sfruttamento
del parallelismo dell'hardware ora disponibile. Ciò è importante perché grossi e
complessi problemi di data mining possono richiedere un numero elevato
d'accessi al database.
Da tutto quanto detto risulta che molte degli barriere al raggiungimento di buone
prestazioni nella ricerca di patterns in quantità enormi di dati stanno per essere
superate.
7
8
Vedi paragrafo 4.10.
vedi Glossario
13
1.9 Applicazioni del data mining
Il data mining è diffuso tra molte organizzazioni grazie ai concreti apporti che
fornisce; può essere usato tanto nel controllo (ad es. dei costi, dei processi) quanto
può contribuire al miglioramento dei risultati (ad es. entrate, prodotti).
Ricordiamo che il data mining, che per definizione è il passo della scoperta di
conoscenza dai database nel quale si applicano gli algoritmi, è applicabile
ovunque vi sia un database e in particolare un database massivo.
Forniamo ora una breve carrellata sulle aree dove il data mining è utilizzato con
successo.
1.9.1
Gestione del mercato (market management)
Questa è l'area di applicazione dove il data mining è più stabilmente utilizzato[1].
L’area di applicazione più conosciuta è il Database Marketing, anche detto
Mailshot Reponse. L’obiettivo è quello di condurre mirate e efficienti campagne
promozionali, attraverso l’analisi dei dati contenuti nei database dell'impresa. In
generale, viene costruito un database unico contenente le preferenze e gli stili di
vita dei clienti, utilizzando fonti informative come transazioni di carte di credito,
tessere sconto, certificati di garanzia e buoni sconto, chiamate di lamentela dei
clienti: tutte queste informazioni insieme a studi generali sullo stile di vita delle
categorie di clienti formano una miscela potente. Gli algoritmi di data mining
setacciano i dati, cercando categorie di consumatori che hanno le stesse
caratteristiche (ad esempio gli interessi particolari, il reddito e le abitudini di
spesa) ed applicando per ciascuna categoria una specifica strategia di approccio.
In questo modo il cliente non è disturbato da una eccessiva pubblicità, e nello
stesso tempo gli addetti del marketing limitano i costi, facendo poche ma efficaci
pubblicità.
La “Bank of America”, che è la maggiore banca degli Stati Uniti, sta applicando
con successo il Database Marketing, incrementando i servizi offerti ai clienti e di
conseguenza anche i profitti. Le banche sono sempre meno a contatto con i loro
clienti, a causa del fatto che quasi tutti i tipi di transazioni bancarie sono
automatizzati. Se i clienti vanno meno spesso in banca, c’è meno opportunità di
interagire con loro e quindi meno opportunità di proporre investimenti o altro,
perciò saper sfruttare i dati relativi alle loro operazioni per risalire al loro
comportamento e alle loro preferenze è di fondamentale importanza.
Un’altra area di applicazione del data mining nella gestione del mercato è quella
di determinare nel tempo i patterns sugli acquisti dei clienti. Si potrebbe
determinare la sequenza nella quale i clienti sottoscrivono i servizi finanziari al
crescere del nucleo familiare, oppure come un cliente cambia le automobili.
Tipicamente la conversione di un conto da monointestato a cointestato indica
14
molto probabilmente un matrimonio, che potrebbe portare profitti sotto forma di
mutui ipotecari, prestiti per la luna di miele, assicurazioni sulla vita, o prestiti per
coprire le spese scolastiche dei figli. Se compresi al tempo giusto, i pattern
temporali possono offrire grandi opportunità di guadagno.
Il data mining viene applicato anche per le campagne di vendite incrociate (crossselling). Si ha un servizio di vendite incrociate quando un venditore al dettaglio o
un fornitore di servizi cerca di rendere allettante la proposta di acquisto di un
prodotto o di un servizio quando il cliente ha già acquistato un altro prodotto o
servizio collegato al primo.
1.9.2
Gestione dei rischi (Risk Management)
Il Risk Management non comprende soltanto il rischio associato alle assicurazioni
e agli investimenti, ma una categoria più ampia di rischi derivanti dalla
competitività delle aziende, dalla scarsa qualità dei prodotti e dalla perdita dei
clienti (attrition).
Il rischio è l'aspetto essenziale nell’attività assicurativa, ed il data mining è adatto
a predire le linee di condotta da seguire. Le predizioni sono di solito espresse sotto
forma di regole che vengono applicate ad esempio al potenziale sottoscrittore di
una polizza assicurativa.
La perdita di clienti è causata molto spesso alla concorrenza di altre aziende
appartenenti allo stesso settore in cui si opera. È un problema crescente in un
mercato sempre più competitivo, e il data mining viene utilizzato in finanza, nelle
vendite e nelle telecomunicazioni per predire, e quindi prevenire, le probabili
perdite di clienti. L’approccio generale consiste nel costruire un modello di un
cliente vulnerabile, cioè che mostra le caratteristiche tipiche di chi ha già lasciato
l'azienda per una concorrente.
Le società di vendita utilizzano il data mining per comprendere meglio la
vulnerabilità di alcuni loro prodotti in modo da offrirne altri migliori o più graditi.
Una applicazione classica nel settore bancario è quella del merito creditizio.
Esempi storici di prestiti sia andati a buon fine sia non restituiti vengono utilizzati
per costruire il profilo di un buon candidato e di un cattivo candidato a cui elargire
crediti.
Molte compagnie di telecomunicazioni (telefonia, televisione via cavo o via
satellite) ogni anno hanno molti introiti che non riescono a incassare e
rappresentano un problema significativo. In questi casi si utilizza il data mining
per costruire un modello predittivo che aiuta ad individuare se una utenza (o un
gruppo di utenze) è affidabile o meno.
1.9.3
Gestione delle frodi (Fraud Management)
Molte organizzazioni appartenenti a diverse aree, come vendite al dettaglio,
servizi di carte di credito, assistenza sanitaria e società di telecomunicazioni,
15
utilizzano il data mining per rilevare e per prevenire le frodi. L’approccio usuale è
il seguente: servendosi dei dati storici si costruisce un modello di comportamento
fraudolento o potenzialmente fraudolento, e successivamente lo si utilizza per
identificare comportamenti simili al modello costruito.
Le società di telecomunicazioni fanno regolare uso del data mining per rilevare
frodi con carte telefoniche. Si scandiscono milioni di transazioni giornaliere
confrontandole con il modello costruito per scovare potenziali frodi. I principali
elementi nella costruzione del modello sono la destinazione, la durata, l'ora e il
giorno della chiamata. Le chiamate che deviano molto dai valori attesi devono
essere ulteriormente analizzate.
Molte banche utilizzano il data mining per proteggere se stesse e i fondi dei loro
clienti da potenziali frodi con le carte di credito [2].
1.9.4
Investimenti finanziari
Molte applicazioni per l'analisi finanziaria adottano tecniche con modelli
predittivi ( ad esempio reti neurali e regressione statistica) allo scopo di creare e
ottimizzare i portafogli o costruire modelli di scambio. Per mantenere il vantaggio
competitivo gli utenti e gli sviluppatori di tali applicazioni, che rimangono in uso
per diversi anni, raramente rendono noto i loro precisi dettagli e la loro efficacia.
In queste applicazioni l'accuratezza predittiva è di fondamentale importanza,
mentre il bisogno di usare la conoscenza estratta per giustificare una azione
raccomandata è meno importante [3].
1.9.5
Gestione delle reti
Un area di applicazione dove la componente temporale è dominante risulta essere
la gestione delle reti di telecomunicazione. Queste reti estese e complesse
producono quotidianamente molti allarmi, e le sequenze di essi contengono
informazioni implicite sul comportamento della rete. Col data mining si può
estrarre conoscenza preziosa sull'intero sistema e sulle sue prestazioni. Le
regolarità e l'ordine degli allarmi sono usati nel sistema di gestione dei guasti per
filtrare gli allarmi ridondanti, localizzare i problemi nella rete e predire i guasti
pericolosi [4].
1.9.6
Produzione industriale e manifatturiera
Il controllo e la pianificazione dei processi tecnici di produzione rappresentano
delle aree di prossima applicazione del data mining con grandi opportunità di
profitto. Sebbene le grandi quantità di dati generati durante un processo di
produzione sono spesso scarsamente sfruttati, nel lungo periodo sarà possibile
controllare i processi automaticamente tramite la scoperta e l'uso di patterns molto
indicativi sulla qualità dei prodotti. Il principale vantaggio dell'applicazione dei
metodi della scoperta di conoscenza in questa area è il grande risparmio sui costi
che si ottiene quando i risultati sono utilizzati per il controllo di processi costosi.
16
1.9.7
Data mining applicato ai dati scientifici
Gli strumenti scientifici (satelliti, microscopi, telescopi) possono facilmente
generare terabytes e petabytes9 di dati a velocità dell'ordine dei gigabytes per ora.
Ne segue un rapido allargamento del gap tra la capacità di raccogliere i dati e
l'abilità di analizzarli. L'approccio tradizionale consiste nell'andare a caccia tra i
dati grezzi di fenomeni (spesso ipotizzati) e delle strutture sottostanti. Uno
scienziato riesce a lavorare efficacemente con poche migliaia di osservazioni
ognuna con un piccolo numero di variabili, meno di una decina, e posto di fronte a
milioni di record ognuno con centinaia o migliaia di misurazioni la sua tecnica
non è più applicabile. Tuttavia, quando il problema da trattare è ben conosciuto e
lo scienziato sa cosa sta cercando, l'enorme quantità di dati può essere
ridimensionata sottoponendola efficacemente alla data reduction (riduzione dei
dati). Per data reduction, in ambiente scientifico, si intende l'individuazione delle
essenziali variabili di interesse dalle osservazioni grezze: richiede operazioni di
trasformazione, di selezione e di normalizzazione. Ridimensionati i dati nel range
analizzabile, lo scienziato li può elaborare. Quando questo non si può fare oppure
anche ridimensionando i dati essi non sono comunque analizzabili coi metodi
tradizionali, si può ricorrere al data mining. Addirittura il data mining può essere
usato anche in fase di data reduction, grazie al ricorso degli algoritmi di
classificazione e di clusterizzazione. Esempi di applicazione del data mining sono:
• Catalogazione degli oggetti celesti [5].
• Ricerca dei vulcani su Venere [6].
• Ricerca delle biosequenze nel genoma [7].
• Previsione di terremoti [8].
Oltre all'enorme quantità di dati, esistono altri problemi nell'applicazione del data
mining nell'ambito scientifico. Tra essi ricordiamo: particolarità dei tipi di dato
(immagini, suoni), dati incompleti, sparsi o poco affidabili, eccetera. Inoltre
nell'area scientifica si devono affrontare problematiche che nelle altre aree di
applicazione del data mining non sono così stringenti:
• bisogna saper integrare la conoscenza precedentemente scoperta durante il
data mining,
• esistono requisiti più stringenti sull'accuratezza,
• problemi di scalabilità di macchine e algoritmi sono più pressanti,
• bisogna saper trattare con insiemi minoritari (a bassa probabilità) di dati, la cui
occorrenza è rara.
1.9.8
Area medica
Le applicazioni in medicina rappresentano un'altra area feconda: il data mining
può essere uso nella predizione dell'efficacia di procedure chirurgiche, di test
9
tera = 1012, peta = 1015!
17
medici o di medicazioni [9]. Può individuare il comportamento nel tempo di
alcune malattie ereditarie, ma in questo campo i dati storici non risalgono molto
indietro nel tempo, salvo rarissime eccezioni. Alcune ditte farmaceutiche usano il
data mining in grandi databases di composti chimici e di materiali genetici alla
scoperta di sostanze che potrebbero essere candidate per successive ricerche allo
scopo di produrre nuovi principi per il trattamento delle malattie.
1.9.9
Data Mining applicato ai testi e al Web
Il data mining viene applicato ad un numero sempre maggiore di campi. Qui
presentiamo due aree di sviluppo emergenti, che sono il text mining ed il web
mining, che sono collegati anche da fatto che la maggior parte delle informazioni
nel WWW appaiono sotto forma di testo.
1.9.9.1
Text mining
Il text mining è l'applicazione dei tipici algoritmi del data mining ai testi e ai
databases di testi. L’obiettivo non è una critica letteraria, piuttosto si vuole
rendere disponibile alla rapida analisi e alla comprensione la quantità sempre
crescente di informazione testuale. Tipica applicazioni sono l’indicizzazione
automatica dei documenti e la creazione di mappe dove documenti simili o affini
sono disposti vicini l'uno all'altro. Le parole sono analizzate nel loro contesto, ad
esempio se la parola Quirinale appare in un articolo di architettura, l'articolo è
disposto vicino agli articoli di architettura e non di politica. Se da un lato i sistemi
di ricerca tradizionali sono generalmente vincolati da un strategia di confronto
letterale sulle parole e dalla ingegnosità dell'utente, dall'altro il test mining apre la
possibilità di apprendere i collegamenti che l'utente non ha inizialmente
specificato ne ritiene possibili. Ad esempio applicare il text mining al contenuto
delle lettere di reclamo dei clienti può rilevare problemi nascosti di fondamentale
importanza per la qualità del prodotto o del servizio che altrimenti non sono
visibili.
1.9.9.2
Web Mining
Il web mining tocca due delle aree dove attualmente è concentrata la maggiore
attenzione: Internet e data mining. L’idea è quella di applicarle il data mining ai
registri (activity log) dei Web server: osservando gli spostamenti di molti utenti, si
sviluppano previsioni sulle comportamento di essi nella rete, cioè su quali
potrebbero essere i futuri siti di interesse ad un certo punto della navigazione. Gli
sviluppatori dei siti mettono a disposizione in modo statico i link più probabili
nella navigazione ricorrendo a congetture. Con il data mining, analizzando la
storia delle navigazioni, si cerca di suggerire in modo dinamico al navigatore i
link che possono interessargli [10]. Una volta a disposizione i siti di interesse
nasce il problema dell'estrazione delle informazioni utili, ed è qui che possono
venire in soccorso le strategie del text mining. Esistono inoltre dei programmi in
grado di estrarre i titoli e gli autori di articoli [11]in vari formati disponibili in
rete, altri in grado di individuare files FAQ (Frequently Asked Questions) e di
estrarre da essi le risposte che interessano è [12].
18
1.10 Quando è
mining?
vantaggioso
applicare
il
data
Le aree dove è possibile applicare la scoperta di conoscenza devono essere ricche
di informazione, avere un ambiente in evoluzione, dipendere da decisioni basate
sulla conoscenza e fornire grossi vantaggi per le decisioni esatte. Dato un
ambiente con queste caratteristiche, i costi e i benefici dell'applicazione potenziale
del data mining dipendono dai seguenti fattori:
Alternative: non dovrebbero esserci soluzioni alternative semplici.
Volume di dati: dovrebbero esserci un numero sufficienti di casi (record), diverse
migliaia come minimo. Dal lato opposto, databases estremamente ampi
sono un problema quando le risposte devono pervenire molto
rapidamente.
Complessità: più variabili (campi) ci sono e più è complessa l'applicazione.
Qualità: il tasso di errore nei dati deve essere relativamente basso.
Accessibilità: i dati devono essere facilmente accessibili.
Dinamicità: sebbene sia più difficile trattare dati che cambiano rispetto a quelli
statici, il data mining ripaga maggiormente in presenza di dati dinamici
perché l'applicazione può essere riaddestrata automaticamente e
regolarmente sui dati modificati.
Competenza: più si è esperti e più il progetto è semplice, soprattutto quando la
competenza è sulla forma e il significato dei dati.
1.11 Il successo del data mining
Più importante della scelta d'ogni algoritmo sono l'abilità di chi costruisce il
modello e il come un programma supporta il processo di costruzione di esso. Le
differenze nella qualità dei risultati del modello sono più spesso causati da questi
ultimi fattori che non dagli algoritmi stessi.
Il successo per il data mining deriva da due ingredienti.
Il primo è la correttezza nella formulazione del problema che si sta tentando di
risolvere. Se un problema bene inquadrato solitamente si ottengono i migliori
risultati.
Il secondo fattore è l'utilizzazione dei dati corretti. Dopo aver scelto fra i dati
disponibili, bisogna saperli trasformare e combinare in modo significativo.
Quest'operazione sortisce il suo effetto quando i seguenti tre componenti sono ben
integrati nel sistema di estrazione di conoscenza che si sta usando:
• Strumenti grafici e di visualizzazione, che aiutano il costruttore del modello
nella comprensione dei dati e nell'interpretazione dei risultati.
• Strumenti d'interrogazione/OLAP, che anch'essi aiutano il costruttore a
comprendere i dati e ad interpretare i risultati.
• Algoritmi o analisi per la costruzione dei modelli.
19
1.12 Ostacoli e sfide per il data mining
Come per qualsiasi innovazione di successo, anche per il data mining le difficoltà
iniziali non mancano. Ne diamo una breve carrellata:
1.12.1 Archivi massivi di dati e ad elevata dimensionalità
Come già detto, i databases a più gigabyte e con milioni di record e con gran
numero di campi per record sono molto diffusi. Questi archivi creano degli spazi
di ricerca che crescono in modo combinatorio e aumentano il rischio che gli
algoritmi di data mining trovino patterns spuri che non sono generalmente validi.
Soluzioni a questi problemi richiedono algoritmi molto efficienti, campionamento
dei dati, metodi di approssimazione, elaborazione parallela spinta (scalabilità),
tecniche di riduzione dimensionale e incorporazione di conoscenza
precedentemente acquisita.
1.12.2 Interazione con l’utente e uso della conoscenza di
base
Esiste l’esigenza di dare risalto più all’interazione tra utente e macchina che alla
completa automatizzazione del processo di data mining, allo scopo di facilitare il
lavoro di chi non è esperto di data mining ma che comunque se ne deve servire.
Molti degli attuali metodi e strumenti per il data mining non sono veramente
interattivi e non incorporano facilmente la conoscenza di base sul problema,
tranne che in forma semplice, sebbene l’uso di tale conoscenza è fondamentale in
gran parte dei passi del processo KDD.
1.12.3 Super-adattamento (overfitting)
significatività statistica
e
verifica
della
Se un algoritmo che sta cercando i migliori parametri per un modello usando un
piccolo insieme di dati, potrebbe super-adattarsi a questi dati, cioè funzionare
toppo bene su questi dati e troppo male sui restanti, cosicché il modello ottenuto
perde di significatività. Per individuare l'insorgere di questo problema si usano
metodi di cross-validation10 ed altre strategie statistiche.
Un altro problema quando il sistema ricerca molti possibili modelli è la mancata
verifica della significatività statistica.
10
Per una immediata definizione vedi Glossario, altrimenti la pagina 26 dove
questa tecnica è esposta nei particolari.
20
1.12.4 Dati mancanti
Questo è un problema grave soprattutto per i databases nella sfera economica.
Alcuni attributi possono mancare perché il database non è stato realizzato allo
scopo di estrarre conoscenza utile, oppure i dati mancano per errori degli
operatori, per cadute di sistema, per errori nelle misurazioni, eccetera. Soluzioni
possibili richiedono strategie statistiche più sofisticate che identificano variabili e
dipendenze nascoste.
1.12.5 Comprensibilità dei patterns
In molti casi è richiesta una completa comprensibilità da parte degli utenti dei patterns
estratti; risultano quindi necessarie metodologie di rappresentazione grafica, di
strutturazione di regole, di generazione di linguaggi naturali e tecniche per la
visualizzazione di dati e della conoscenza.
1.12.6 Trattamento di dati e di conoscenze che cambiano
nel tempo
Dati che cambiano rapidamente (non stazionari) possono rendere i patterns
precedentemente scoperti non più validi. Per evitare ciò si possono usare metodi
incrementali per l’aggiornamento dei patterns e trattare le variazioni dei dati come
l'innesco di ulteriori ricerche di possibili variazioni di patterns.
1.12.7 Integrazione
Un sistema per la scoperta di conoscenza non integrato nel sistema globale può
essere non molto utile. Problemi tipici di integrazione sono l’interazione con i
DBMS, integrazione con fogli di calcolo e con strumenti di visualizzazione,
adattamento a sensori che leggono i dati in tempo reale. Ambienti uomo-macchina
fortemente interattivi come quelli richiesti dal processo KDD permettono sia la
scoperta da parte del calcolatore con l'assistenza dall’utente, sia la scoperta da
parte dell’utente con l'assistenza dal calcolatore.
1.12.8 Dati non standard, multimediali
oggetti
e orientati agli
Attualmente i database tendono a contenere non più solo dati numerici ma anche
grandi quantità di dati non standard e multimediali. I dati non standard sono dati
geometrici, grafici, non numerici, non testuali ed anche dati non stazionari, dati
temporali, dati spaziali, e ancora mix di dati numerici e categorici. I dati
multimediali sono testi multilingua oppure immagini digitalizzate, video, audio,
eccetera. Questi tipi di dati sono largamente oltre la portata della corrente
tecnologia KDD.
21
1.12.9 Difficoltà di diffusione nei settori di applicazione
Se da un lato molte delle tecnologie del data mining sono ben sviluppate, il loro
diffusione nei possibili settori di applicazione è afflitta da vari problemi:
• Insufficiente addestramento: i laureati delle scuole economiche hanno molta
famigliarità con tecniche di analisi di verifica, meno con quelle per la
predizione, scarsa con altre tecniche di scoperta.
• Inadeguatezza degli strumenti: molti strumenti per il data mining supportano
solo una delle tecniche di scoperta essenziali, di solito la predizione. Gli
strumenti dovrebbero fornire la possibilità di realizzare l'intero processo di
estrazione di conoscenza e anche delle interfacce utente adatte agli utenti finali
e non ai soli tecnici.
• Indisponibilità dei dati: spesso i dati sono distribuiti tra l'organizzazione in
formati diversi e sono scarsamente organizzati e conservati. Per queste ragioni
l'acquisizione e la pre-elaborazione dei dati assumono ruoli significativi
all'interno del processo di estrazione di conoscenza e i data warehouse sono
sempre più diffusi.
1.13 Evoluzione futura
Malgrado la sua rapida crescita, lo stato dell’arte nel campo del KDD è ancora
relativamente agli inizi. Molte delle problematiche fondamentali rimangono
irrisolte. L’emulazione delle capacità della mente umana di sintetizzare nuova
conoscenza dai dati risulta un’operazione complessa, quasi irraggiungibile, per
qualsiasi macchina. Tuttavia le quantità di dati da analizzare richiedono
inevitabilmente il forte utilizzo delle macchine e conseguentemente di gran
numero di modelli, algoritmi eccetera. Però il fatto che lo sviluppo dell'area è
spinto da forti bisogni sociali ed economici, è causa della sua continua crescita ma
anche di quella selezione naturale che permette di scartare rapidamente quelle
teorie e tecniche che non risultano vincenti.
2 Il Processo della Scoperta della Conoscenza
N
on è possibile sperare di utilizzare un algoritmo per il data mining, come
le reti neurali o gli alberi di decisione, direttamente sui dati e pretendere
di ottenere dei risultati significativi.
La scoperta di conoscenza è un processo che richiede un certo numero di
passi necessari per assicurare l'efficace applicazione del data mining.
I passi fondamentali del processo di scoperta di conoscenza dai databases
(Knowledge Discovery from Database, KDD) sono:
1. Identificazione del problema
22
2. Preparazione dei dati
2.1. Raccolta
2.2. Accertamento
2.3. Consolidamento e Pulizia
2.4. Selezione
2.5. Trasformazione
3. Costruzione del modello
3.1. Valutazione
3.2. Validazione esterna
4. Utilizzo del modello
5. Monitoraggio del modello
Prerequisito fondamentale è l'avere una buona conoscenza dei dati e della realtà di
mondo che essi descrivono. Senza questo background anche se (fortunatamente)
si ottengono buoni risultati, non si saprebbe cosa significano pienamente, come
sfruttarli, eccetera.
Descriviamo brevemente i vari passi:
1. Identificazione del problema. Per il miglior uso del data mining bisogna
saper esprimere chiaramente i propri obiettivi. Infatti una cattiva descrizione
del problema rallenta lo sviluppo dell'intero processo e può causare la cattiva
scelta del modello da utilizzare.
2. Preparazione di dati. Questo è il passo che richiede più tempo. Possono
essere richieste più ripetizioni dei passi di preparazione dei dati e di
costruzione del modello. La preparazione dei dati prende di solito tra il 50% e
l'80% del tempo e degli sforzi dell'intero processo KDD.
2.1. Raccolta. Bisogna individuare le sorgenti dei dati che si vogliono
scavare. Per di più è possibile che parecchi dati di cui si ha bisogno non
sono mai stati collezionati, cosicché la fase di raccolta dei dati risulta
inevitabile.
2.2. Accertamento. Anche il data mining, gran parte delle tecniche che
lavorano sui dati, è vittima del GIGO (Garbage In, Garbage Out), cioè se
gli si danno in ingresso dei dati scorretti, anche in uscita ci saranno dati
scorretti. Ne segue che se si vogliono dei buon modelli occorre avere
23
buoni dati. Una ispezione dei dati identifica le caratteristiche dei dati che
influiranno sulla qualità del modello11. I dati di cui si ha bisogno
risiedono in un solo o più databases. Le sorgenti si possono trovare nel
database dell'organizzazione, nel data warehouse o in data marts realizzati
per scopi specifici, oppure non si hanno a disposizione perché esterni.
Nasce il problema di consolidare i dati in un singolo database e in seguito
si dovranno affrontare i tipici inconvenienti della consolidazione come le
inconsistenti definizioni dei dati, le differenti codifiche dei dati e i valori
inconsistenti per gli stessi elementi di dati.
Anche quando i dati provengono da un solo database bisogna ugualmente
esaminarli alla ricerca di problemi come la mancanza di dati o la presenza
di valori che violano i vincoli di integrità. Bisogna anche accertarsi sulla
provenienza dei dati, il tipo di memorizzazione, le unita di misura usate,
come e quando i dati sono stati raccolti e sotto quali condizioni.
In pratica bisogna assicurarsi, nel miglior modo possibile, che tutti i dati
misurano la stessa cosa e nella stessa maniera
2.3. Consolidamento e Pulizia. É il passo nel quale si costruisce il database
dal quale prelevare i dati da elaborare. Occorre consolidare i dati e
rimediare, per quanto possibile, ai problemi che si sono identificati nel
passo precedente. Chiaramente non si potranno risolvere in modo perfetto
tutti i problemi, ma è d'obbligo tuttavia affrontarli nel migliore dei modi
possibili. Ricorrere a soluzioni semplici, superficiali può addirittura
peggiorare le cose. Ad esempio ignorare tuple con rilevanti mancanze di
dati può portare alla costruzione di modelli di predizione che non
rappresentano l'ottimo, infatti si basano su dati che in parte non hanno un
particolare significato.
2.4. Selezione dei dati. Una volta raccolti e consolidati i dati, si passa alla
selezione dei dati specifici per ogni modello che si vuole costruire. Per i
modelli predittivi si separano le variabili (colonne) indipendenti da quelle
dipendenti, si scelgono i casi (righe) per il training (addestramento) del
modello.
Alle inizio del loro sviluppo, molti algoritmi di data mining ignoravano
automaticamente le variabili scarsamente significative e prendevano in
considerazione giustamente solo le colonne correlate, ora però è
consigliabile non fare affidamento esclusivamente sul software di
elaborazione. Spesso la conoscenza del dominio del problema permette di
11
A titolo di esempio riportiamo la storia di un gruppo di "miners" di una compagnia di assicurazione che costruì un
modello per predire chi tra i clienti avrebbe avuto più probabilmente un incidente. Risultò che le persone nate sotto il
segno dei pesci erano più inclini agli incidenti! Ma tale conclusione sospetta fu chiarita quando ci si accorse che la
maggior parte delle persone nel database era dei pesci e di conseguenza anche la maggior parte delle persone incidentate
poteva essere nata sotto tale segno.
24
selezionare i dati correttamente.
Gli strumenti grafici, che aiutano a visualizzare i dati e le loro relazioni,
sono molto utili a questo punto: ad esempio aiutano nell'identificazione di
variabili indipendenti importanti e rivelano variabili che sono in relazione
lineare.
Si può volere scartare i dati che sono chiaramente degli outliers. In
qualche caso gli outliers contengono informazioni importanti (anche per
la costruzione del modello), ma spesso essi possono e/o devono essere
ignorati: ad esempio possono essere il risultato di uno scorretto
inserimento dei dati oppure la registrazione di eventi che accadono molto
raramente.
Campionare i dati quando il database è grande è spesso una buona idea, e
per molti problemi non si ha una grossa perdita di informazione, sebbene
la campionatura deve essere fatta in modo rigoroso in modo da assicurare
l'effettiva casualità della selezione. Di fronte alla scelta di analizzare
pochi modelli costruiti su tutti i dati oppure analizzare tanti modelli ma
costruiti su dati campionati, quest'ultimo approccio di solito è il migliore
per la realizzazione di modelli più robusti e accurati.
2.5. Trasformazione. Dopo aver selezionato i dati si potrebbe presentare
l'esigenza di operare ulteriori trasformazioni su essi. Si potrebbe volere
utilizzare grandezze derivate, come ad esempio rapporti tra due variabili,
oppure normalizzare qualche grandezza continua, o discretizzarla, oppure
trasformare una variabile categorica in una variabile dicotomica multipla.
3. Costruzione del modello di data mining. È fondamentalmente un processo
iterativo. Occorre esaminare modelli alternativi per trovare quello migliore per
il problema posto: tale ricerca comporta spesso la riconsiderazione dei passi
precedenti, ad esempio modificando la selezione dei dati o anche modificare la
descrizione del problema stesso.
Il procedimento di costruzione del modello può essere ad apprendimento
supervisionato (come nella classificazione, regressione e serie temporali) o
non supervisionato (come nel clustering, nella scoperta di associazioni e
sequenze).
La seguente descrizione si concentra sull'apprendimento supervisionato che ha
una più chiara definizione rispetto all'apprendimento non supervisionato.
Una volta deciso il tipo di modello da costruire, occorre scegliere l'algoritmo
che costruirà tale modello. Tale scelta influisce anche sulle operazioni da
effettuare nella fase della preparazione dei dati. Ad esempio una rete neurale
25
richiede che le variabili categoriche siano trasformate in gruppi di variabili
binarie. Quando i dati sono pronti si procede all'addestramento del modello.
L'essenza dell'apprendimento supervisionato è l'addestramento del modello su
un porzione dei dati, quindi testare e verificare sui restanti dati. Il modello è
costruito quando il ciclo di training e testing è terminato (con esito
soddisfacente). Qualche volta c'è bisogno di un terzo insieme di dati, detto
insieme di convalida (validation), perché i dati di test potrebbero influenzare
le caratteristiche del modello, e l'insieme di convalida esegue una misura
indipendente dell'accuratezza del modello.
I processi di training e di testing richiedono che i dati vengano spezzati in
almeno due gruppi: il primo per la stima dei parametri del modello, l'altro per
la verifica. Se questi gruppi non sono distinti, l'accuratezza del modello sarà
sovrastimata perché una parte dei dati di test è servita anche ad addestrare il
modello. Una volta addestrato il modello, il tasso di accuratezza che si ottiene
dando in pasto al modello stesso l'insieme di testing risulta una buona stima
della accuratezza che si ottiene fornendo al modello dei dati nuovi. Non
garantisce la correttezza del modello, ma se si usa il modello su databases con
dati non dissimili a quelli degli insiemi di training e testing, l'accuratezza
media sarà prossima a quella ottenuta col passo di testing.
Il più semplice metodo di testing è noto come convalida semplice (simple
validation). Si impone che una certa percentuale del database formi l'insieme
di test che non verrà mai usato per la costruzione del modello. Questa
percentuale tipicamente va dal 5% al 33%. Inoltre la divisione tra dati di
testing e di training deve essere casuale affinché entrambi gli insiemi ottenuti
riflettano le caratteristiche peculiari dell'intero database.
Dopo il passo di testing alcune tuple (elementi, oggetti, eventi, casi, istanza,
riga) saranno classificate in modo errato: il rapporto tra il numero di
classificazioni scorrette e il numero totale di istanze fornisce il tasso di errore,
mentre il rapporto tra classificazione corrette e il numero di istanze è il tasso
di accuratezza (accuratezza = 1–errore).
Anche nella costruzione di un solo modello, la convalida semplice può essere
richiesta un dozzina di volte.
Se si ha a disposizione una modesta quantità di dati per la costruzione del
modello, un metodo di verifica più affidabile è la convalida incrociata (cross
validation), nel quale i dati sono divisi casualmente in due insieme di pari
cardinalità. Il modello è realizzato con l'intero insieme dei dati a disposizione,
mentre la verifica avviene così: viene costruito un modello sul primo
sottoinsieme e viene testato sul secondo ottenendo una certa accuratezza, si
26
esegue poi lo stesso processo scambiando i due sottoinsiemi e la media delle
due (indipendenti) accuratezze da una miglior stima dell'accuratezza del
modello costruito con tutti i dati.
Con databases ancora più piccoli, con poche migliaia di tuple o meno, per il
testing il database è solitamente diviso in più di due gruppi: per ogni gruppo
viene creato un modello sui restanti gruppi e testato sul gruppo in questione.
La media delle accuratezze ottenute è una miglior stima dell'accuratezza che si
ricava costruendo il modello su tutti i dati a disposizione.
Il bootstrapping (inizializzazione) è un'altra tecnica per la stima
dell'accuratezza del modello e viene usata principalmente con piccoli insiemi
di dati. Come per il cross validation, il modello è costruito su tutto l'insieme.
Dopo vengono creati molti insiemi di training campionando l'insieme dei dati
in modo casuale, può succedere che uno stesso record sia presente più di una
volta nello stesso insieme di training. Vengono creati almeno 200 ( e qualche
volta sopra i 2000) insiemi di training, e tipicamente la stima finale
dell'accuratezza è data dalla media delle accuratezze di ogni insieme di testing
di bootstrap.
Nessuno strumento o modello è perfetto per tutti i dati e prima di iniziare è
difficile, se non impossibile, accertare quale tecnica lavorerà meglio delle
altre; molto spesso si devono costruire molti modelli prima di trovarne uno
soddisfacente.
Per ogni modello costruito si devono iterare le fasi di apprendimento e
verifica, e spesso anche la fase di preparazione dei dati: la quantità di tempo
usata nella ricerca di un buon modello è significativamente ridotta se
l'algoritmo può sfruttare i vantaggi della computazione parallela.
3.1. Valutazione e interpretazione. A modello costruito e operanti, si
valutano i risultati che si ottengono e se ne interpreta la significatività.
Per problemi di classificazione, la matrice di confusione è uno strumento
molto utile per capire la qualità dei risultati: essa mostra la distribuzione
tra le varie classi dei valori attuali contro quella dei valori predetti. Non
mostra soltanto quanto il modello predice bene, ma presenta anche i
dettagli necessari a capire esattamente dove le cose non vanno per il verso
giusto.
Le colonne della matrice riportano le classi attuali mentre le righe le
classi predette, cioè nella cella i-j si trova il numero di record che
appartengono alla j-esima classe che vengono assegnati alla i-esima
classe. Ne segue che sulla diagonale principale ci sono i numeri delle
predizioni corrette, mentre nelle altre posizione ci sono il numero delle
predizioni errate.
27
Attuali
Predette
classe A
classe B
classe C
classe A
classe B
classe C
45
10
4
2
38
6
3
2
40
Figura 3 Matrice di Confusione
In questa matrice di confusione il modello ha predetto correttamente 38
dei 46 ( = 2 + 38 + 6 = somma degli elementi della colonna della classe
B) elementi della classe B, ne ha sbagliati 8 ritenendoli 2 della classe A e
6 della classe C. Ciò è molto più significativo che dire che l'accuratezza è
pari all'82% ( 100* (45+38+40)/(45+10+4+2+38+6+3+2+40)
=
100*123/150 = 82 ). In particolare se ci sono costi differenti associati ad
ogni tipo di errore (elemento della classe X classificato invece della classe
Y), un modello con bassa accuratezza può essere preferito ad un altro con
ottima accuratezza ma con un costo superiore a causa del particolare tipi
di errore che compie.
Un altro importante criterio di valutazione è la comprensibilità del
modello. In molti applicazioni economiche è importante saper spiegare
perché una decisione è stata presa, mentre in altre persino piccoli
miglioramenti in accuratezza sono così rilevanti che l'interpretabilità
perde di attenzione. In generale gli alberi di decisione e i sistemi basati
sulle regole esplicano meglio le ragioni implicite che hanno portato ad un
certo risultato. Tuttavia anche un albero o una regola possono diventare
talmente complessi da renderli non più interpretabili.
Il grafico del lift (o di guadagno) è di grande aiuto per valutare l'utilità di
un modello: mostra come i risultati cambiano con l'adozione di un
modello. Ad esempio si può inviare della pubblicità via posta a un certo
persone scelte in modo casuale e allo stesso numero di persone
selezionate in base al modello e verificare gli scostamenti dei risultati.
28
100
90
80
70
60
50
40
30
20
10
0
1
2
3
4
5
6
Decile
7
8
9
10
Figura 4 Grafico Lift
Un altro importante componente per l'interpretazione è l'accertamento del
valore del modello. Un pattern può essere interessante, ma tentare di
sfruttarlo costa più dei vantaggi che genera.
In teoria si possono sfruttare i risultati di un modello in modo proficuo,
ma potrebbero non esistere gli strumenti pratici per beneficiare della
conoscenza conseguita.
3.2. Validazione esterna. In qualsiasi maniera venga stimata la bontà
dell'accuratezza del modello, non si ha la garanzia che esso si rifletta nel
mondo reale. Un modello valido non è necessariamente un modello
corretto: questa discrepanza è causata principalmente dalle assunzioni
implicite per la costruzione del modello. Ad esempio il tasso di inflazione
può essere esclusa dal modello di previsione delle propensione agli
acquisti dei consumatori, ma forte sbalzi di essa certamente influiscono
sul comportamento delle persone.
Pertanto è importante testare il modello sul mondo reale. Conviene
selezionare prima un piccolo ambito dove applicare il modello,
verificarne l'efficacia per questo spazio ristretto e solo dopo aver ottenuti
riscontri positivi si può estenderlo all'intero dominio di applicazione.
4. Utilizzo del modello. Costruito e validato un modello per data mining, lo si
può impiegare in due modi differenti. Il primo riguarda gli analisti che
semplicemente visionano il modello e i sui risultati. Spesso l'analista applica il
modello a dati differenti oppure lo usa per selezionare insiemi di records dal
database da sottoporre a ulteriori analisi con altri tipi di strumenti come
l'OLAP. A seguito di questi impieghi, l'analista suggerisce le eventuali azioni
da intraprendere per il raggiungimento degli obiettivi fissati.
Spesso però i modelli sono parte di un processo, come l'analisi dei rischi o la
rivelazione di frodi, e sono incorporati nell'applicazione: ad esempio un
29
modello di predizione può essere integrato in una simulazione che viene
impiegata nella scelta delle decisioni come per la programmazione delle
promozioni. Oppure il modello può essere incorporato in un sistema di
gestione di un inventario, che automaticamente genera delle ordinazioni
quando si prevede che i livelli delle provvigioni scendono sotto le soglie.
I modelli di data mining sono spesso applicati a un evento o transazione per
volta. La quantità di tempo per processare tutte le nuove transazioni, e la
velocità con la quale arrivano, determineranno se occorreranno algoritmi
paralleli. Così, mentre le applicazioni per la valutazione dei rischi creditizi
possono essere facilmente eseguite su computer di modeste dimensioni, il
monitoraggio delle operazioni con carte di credito o delle chiamate telefoniche
cellulari per la rivelazione di frodi potrebbero richiedere un sistema parallelo
per trattare l'elevato numero di transazioni.
Quando si ha a che fare con complesse applicazioni, il data mining è spesso
solo un piccola, sebbene critica, parte del prodotto finale. Ad esempio, la
scoperta di conoscenza attraverso il data mining può venire combinata con la
conoscenza di esperti del settore e applicata ai dati nel database. In un sistema
di rivelazione delle frodi, le forme (patterns) note di frodi vengono confrontate
coi patterns scoperti.
5. Monitoraggio del modello. Naturalmente si deve misurare la bontà del lavoro
svolto dal modello dopo averlo usato. Bisogna continuamente controllare il
modello, anche quando funziona bene, perché nel tempo tutti i sistemi
evolvono e cambiano i dati che essi producono.
I commercianti sanno che i gusti della gente variano, a lungo andare il tasso di
inflazione influisce sui comportamenti, variabili esterne precedente e
correttamente trascurate, possono diventare influenti.
Di tanto in tanto il modello va ritestato, riaddestrato ed eventualmente
ricostruito da capo. I diagrammi che confrontano i risultati previsti con quelli
osservati sono degli eccellenti indicatori del comportamento del modello. Tali
diagrammi sono facili da usare e da capire, non sono computazionalmente
dispendiosi e il software che li produce può essere incorporato col software
che implementa il modello. Così il sistema può monitorare se stesso.
30
3 Tipi di Modelli
3.1 Introduzione ai modelli
Lo scopo del data mining è produrre nuova conoscenza che l'utente possa
utilizzare, sfruttando la costruzione di un modello del mondo reale che si basa sui
dati raccolti da varie sorgenti
Un modello per il data mining generalmente è inquadrato in uno dei seguenti tipi:
classificazione, regressione, serie temporali, clustering (raggruppamenti), analisi
delle associazioni e scoperta delle sequenze [23].
Modelli di classificazione, regressione e serie temporali sono principalmente usati
per la predizione, mentre i modelli di clustering, di associazione e di scoperta di
sequenze sono soprattutto utilizzabili per la descrizione. La classificazione e la
regressione sono i tipi di modelli per il data mining più realizzati.
Nei modelli predittivi, i valori o le classi che si predicono sono dette variabili
dipendenti o obiettivo, mentre i valori impiegati per realizzare la predizione sono
detti variabili indipendenti o predittrici.
3.1.1
Apprendimento supervisionato e non supervisionato
Ci si riferisce alla classificazione, alla regressione e alle serie temporali come
modelli a supervised learning (apprendimento sorvegliato), perché per costruirli
c'è bisogno di dati che sono già classificati (o che hanno valori noti), cioè il
modello deve imparare sulla base esempi come deve comportarsi con nuovi
eventi. Al contrario per il clustering, le associazioni e la scoperta di sequenze,
risultati già noti non sono disponibili e gli algoritmi non vengono addestrati. Ciò è
spesso indicato come unsupervised learning (apprendimento non sorvegliato).
3.1.2
Descrizione gerarchica del problema
Trattare i problemi del data mining in modo gerarchico, dà un vigoroso aiuto alla
soluzione di essi.
Al livello più alto della struttura c'è il problema espresso nei termini tipici
dell'ambiente a cui si riferisce: in astronomia un problema può essere quello di
inserire una stella in uno dei gruppi tipici fra i quali si raggruppano le stelle stesse,
come ad esempio giganti rosse, nane bianche, eccetera.
Il livello successivo è il tipo di modello che si vuole utilizzare. Si può realizzare
31
un modello di classificazione, di clustering per raggruppare le stelle.
Più in basso c'è il livello dell'algoritmo che costruisce il modello. Ad esempio per
la classificazione delle stelle si possono usare alberi di decisione, reti neurali,
eccetera. Tuttavia si possono anche sfruttare algoritmi della statistica tradizionale.
L'ultimo livello della gerarchia è occupato dal prodotto (tool) usato per la
realizzazione del modello. Prodotti differenti generalmente realizzano differenti
implementazioni di un particolare algoritmo. Queste differenze implementative si
riferiscono a caratteristiche operazionali come l'uso della memoria e
l'immagazzinamento dei dati, e influiscono quindi sulle prestazioni come la
velocità e l'accuratezza.
Spesso per molti dei problemi da affrontare il migliore approccio è costruire
diversi tipi di modelli e provare più di un algoritmo per modello, perché, a
secondo dei dati e del problema, alcuni algoritmi e modelli funzionano meglio di
altri. Per di più è quasi impossibile determinare analiticamente quale algoritmo è
il migliore per il modello che si sta costruendo.
3.2 Classificazione
La classificazione permette di trovare le caratteristiche comuni tra un insieme di
oggetti in un database e li raggruppa in classi differenti, in accordo con il modello
di classificazione. Per costruire il tale modello, un campione del database è
trattato come insieme di addestramento, nel quale ogni tupla ha gli stessi attributi
di tutte le tuple nel database, e in più possiede un attributo categorico (etichetta)
che indica la classe alla quale appartiene. L'obbiettivo della classificazione è
all'inizio di analizzare i dati di addestramento e sviluppare il modello che descrive
accuratamente ogni classe usando le caratteristiche insite nei dati. Tali descrizioni
delle classi sono quindi utilizzate per classificare le altre tuple del database o
future nuove tuple.
Ne segue che la classificazione permette sia di comprendere meglio i dati sui quali
si è effettuata la classificazione, sia di predire quale sarà il "comportamento" di
nuovi dati. Ad esempio:
•
•
•
chi risponderà molto probabilmente a una campagna pubblicitaria postale?
chi tra i malati trarrà beneficio da una particolare operazione chirurgica?
chi fra gli studenti di ingegneria giungerà alla laurea? (Io)
infatti una volta individuate le caratteristiche di un nuovo cliente, malato,
studente, confrontandole con quelle delle classe ottenute, sarà facile collocarlo nel
modo adeguato.
32
Come già detto il data mining crea i modelli di classificazione dall'esame di dati
già classificati e per induzione predice il comportamento di futuri nuovi dati. I
casi già classificati hanno origine da databases storici, come ad esempio dalle
informazioni sulle persone che hanno già subito quella operazione chirurgica o
che si sono già laureati. Oppure tali casi possono provenire da esperimenti nei
quali un campione estratto dal database è testato nel mondo reale e si usano i
risultati per la costruzione del classificatore. Ad esempio si può spedire ad un
gruppo di persone estratte casualmente tra i probabili obiettivi per una campagna
pubblicitaria postale e utilizzare le reazioni di tali persone per la realizzazione di
un modello di classificazione da applicare all'intero database. In qualche problema
di data mining un esperto classifica un campione del database e tale
classificazione viene usata per creare un modello da applicare all'intero database.
I modelli di classificazione sono realizzati nella maggior parte dei casi tramite
alberi di decisione e reti neurali.
3.3 Regressione e previsione
La regressione sfrutta valori già noti per predire altri valori non ancora noti.
Tecnicamente si usano un gruppo di variabili divise tra variabili dipendenti e
indipendenti. Dato un certo insieme di tuple delle quali sono noti i valori delle
variabili dei due tipi, si costruisce il modello di regressione. Successivamente,
avendo a disposizione un altro insieme di tuple delle quali sono noti solo i valori
delle variabili indipendenti, si usa il modello per predire i valori delle variabili
dipendenti.
Insieme alla classificazione la regressione si occupa di predizione, con la
differenza che la prima predice variabili categoriche mentre la regressione predice
variabili numeriche.
Nei casi più semplici si adoperano le tecniche standard della statistica come la
regressione lineare. Sfortunatamente però in molti problemi reali i valori ignoti
non sono delle semplici proiezioni lineari dei valori già noti, ciò accade
soprattutto quando la variabile dipendente è legata a molte variabili indipendenti,
o quando la regressione lineare è pesantemente influenzata da anche pochi
outliers. Quindi tecniche più complesse sono necessarie per predire i valori futuri,
come la regressione non lineare, le funzioni a base radiale (radial basis function,
RBF), reti neurali RBF.
Le stesse tecniche spesso possono essere usate sia per la regressione sia per la
classificazione. Ad esempio, il CART (Classification And Regression Trees)
costruisce alberi di classificazione che classificano variabili categoriche
dipendenti, e alberi di regressione che predicono variabili continue dipendenti. Le
reti neurali possono creare sia modelli di classificazione sia di regressione.
3.4 Clustering (analisi dei gruppi)
Il clustering divide un database in gruppi distinti, senza il ricorso a dati di
33
addestramento. L'obiettivo è di trovare gruppi che sono differenti l'uno dall'altro,
ma i membri di un singolo gruppo devono essere molto simili tra loro.
Diversamente dalla classificazione, all'inizio del processo di clusterizzazione non
si conosce che cosa rappresenteranno i cluster o quali attributi avranno maggior
influenza sulla costituzione dei raggruppamenti stessi.
Esistono moltissime tecniche per realizzare il clustering [16][17]:
• algoritmi scissori, si basano sulla partizione dell'insieme iniziale in due
sottoinsiemi e sulle successive suddivisioni delle partizioni che soddisfano a
qualche criterio di ottimalità;
• algoritmi aggregativi, nei quali i gruppi si formano aggregando le tuple a
centri predeterminati in funzione di qualche criterio di scelta (k-mean,
algoritmo agglomerativo);
• reti neurali (Kohonen feature map) [18].
Raggruppare è una ottima maniera di iniziare qualsiasi analisi dei dati, infatti i
clusters forniscono quella conoscenza iniziale sui dati che permette il miglior uso
di essi nelle successive analisi.
Tra i vantaggi del clustering ci sono:
• apprendimento non supervisionato,
• buon comportamento con dati categorici, numerici e di testo,
facilità di applicazione,
tra gli svantaggi:
• difficoltà nella scelta delle misure di distanza tra le tuple,
• sensibilità ai parametri iniziali,
• difficoltà nell'interpretazione dei clusters risultanti.
3.5 Analisi dei legami (link analisys)
Contrariamente ai modelli predittivi e alle operazione di segmentazione
(clustering), che puntano a caratterizzare il contenuto di un database nel suo
complesso, l'analisi dei legami cerca di stabilire i legami tra i records individuali o
insiemi di records. Queste relazioni sono spesso chiamate associazioni. Una tipica
applicazione dell'analisi dei collegamenti è proprio la scoperta di associazioni.
Esistono tre specializzazioni per l'analisi dei collegamenti:
1. scoperta di associazioni,
2. scoperta di sequenze,
3. scoperte di sequenze temporali simili.
34
3.5.1
Scoperta di associazioni
Lo scopo della scoperta di associazioni è di trovare insiemi di oggetti, che
implicano la presenza di un altro insieme di oggetti nello stesso evento, nella
stessa transazione. Un esempio classico è dato da un database di acquisti
(transazioni) , ognuno dei quali è composto da diversi articoli (oggetti), eseguito
da diversi acquirenti. Applicando la scoperta di associazioni a questo insieme di
transazioni si scopriranno le affinità tra insiemi di oggetti. Queste affinità sono
rappresentate tramite le regole di associazione.
Generalmente una regola ha lo forma: "se X allora Y" e si rappresenta con X ⇒
Y, dove X è un insieme di oggetti ed è detto corpo o antecedente o parte sinistra,
Y è anch'esso un insieme di oggetti, distinti da X, ed è detto testa o conseguente o
parte destra.
Gli algoritmi di associazione sono veloci ed efficienti nel ricavare le regole. Le
difficoltà, piuttosto, nascono quando si deve giudicare della validità e
dell'importanza delle regole. A questo riguardo sono importanti due parametri: il
supporto e la confidenza.
Il supporto indica il numero relativo di volte che appare una regola scoperta
all'interno dell'insieme totale delle transazioni:
supporto =
numero di transazioni che contengono sia il corpo che la testa
numero totale di transazioni
Il supporto è indice dell'importanza della regola rispetto alle altre estratte dallo
stesso database.
La confidenza indica la forza della regola di associazione ed è definita dal
rapporto:
confidenza =
numero di transazio ni che contengono sia il corpo che la testa
numero di transazio ni che contengono solo il corpo
Regole con supporto e confidenza elevati sono molto più significative di quelle
con tali valori bassi. L'esistenza di una regola non implica obbligatoriamente
l'esistenza di una relazione causale tra gli oggetti del corpo e della testa della
regola. Di solito le regole che si ottengono appartengono a una delle tre seguenti
categorie:
• regole utili,
• regole triviali,
• regole inesplicabili.
Le regole utili sono quelle che contengono informazione di buona qualità e che
non sono difficili da giustificare, ad esempio "quando si compra la farina in
quantità spesso si compre anche lo zucchero".
Le regole triviali sono quelle che già ampiamente acquisite, ad esempio "se un
35
paziente soffre di vene varicose allora il paziente è donna".
Le regole inesplicabili sono quelle che non hanno giustificazioni sensate e che non
suggeriscono niente, ad esempio "quando si comprano dei lacci per le scarpe
spesso si comprano anche dei floppy disks".
Il lift è un'altra misura della forza dell'associazione A ⇒ B. Maggiore è il lift e
maggiore sarà l'influenza che il numero di presenze di A tra le transazioni ha sulla
probabilità che anche B comparirà, cioè più sono numerose le transazioni dove A
è presente e maggiore è la probabilità che insieme ad A ci sia anche B. Il lift è il
rapporto tra la confidenza di A ⇒ B e la frequenza relativa di B:
T(AB) T(A) Τ( ΑΒ) ∗ Τ
,
=
Τ( Α ) ∗ Τ( Β )
T(B) T
Lift(Α ⇒ Β) =
dove T(X) è il numero di transazioni che contengono l'insieme di voci X, T è il
numero totale di transazioni.
Per le due regole A⇒B e B⇒A il lift è coincidente (così come per il supporto)
Esempi di regole utili sono:
• Se vengono acquistati formaggio magro e yogurt, allora nell'85% dei casi
viene comprato anche latte scremato (supporto 10%).
• Se malato soffre di reumatismi, nel 40% dei casi è soggetto a cefalee e ha
difficoltà nell'udito (supporto 1%).
• Se una persona compra un martello e delle tavole, compra anche i chiodi il
50% delle volte (supporto 20%).
Spesso accade che gli oggetti nel database sono moltissimi e ognuno di essi
appare in relativamente poche transazioni (supporti bassi) e spesso si è interessati
non a un singolo particolare oggetto (ad es. il Caffè Ciofè Decaffeinato) ma a
categorie di oggetti (ad es. caffè). In questi casi, se la natura degli oggetti lo
permette, si può ricorrere all'uso di tassonomie. Una tassonomia generalizza e
gerarchizza gli oggetti, nel senso che diversi oggetti possono essere raggruppati
sotto un unico concetto più generale e vari concetti possono essere raggruppati
sotto concetti più generali, ottenendo così una gerarchia di concetti. Ad esempio
una tassonomia per i prodotti in vendita al reparto bevande in un supermercato
può avere la seguente struttura:
Bibite
Alcolici
Vino
Grappa
Analco
lici
Acqua
Gassosa
Ora nello stesso numero di transazioni sono contenuti un minor numero di
36
concetti e quindi si trovano meno regole ma più significative.
Nel campo della vendita al dettaglio, l'utilizzo dell'elettronica per le registrazioni
di cassa (lettori ottici dei codici a barre) ha permesso la memorizzazione in grande
quantità di transazioni, e quindi ha reso possibile la scoperta di associazioni per
quanto riguarda gli acquisti e le vendite: tale attività viene detta in inglese marketbasket analysis.
La tecnica più diffusa per la scoperta di regole di associazione è l'algoritmo
Apriori. Alcune implementazioni di algoritmi per la scoperta di regole di
associazioni supportano un solo elemento nella parte destra o nella parte sinistra.
Tra i vantaggi della scoperta delle regole di associazione ricordiamo:
• spesso risultati chiari e comprensibili,
• non abbisogna di apprendimento,
• lavora su dati di lunghezza variabile,
• i procedimenti di calcolo che richiede sono facili da intendere.
Tra gli svantaggi ci sono:
• il numero di operazioni da eseguire varia esponenzialmente con la quantità di
dati,
• difficoltà nel decidere il numero appropriato di oggetti con cui lavorare,
• viene sminuita l'importanza degli oggetti che si presentano raramente.
Per quanto riguarda quest'ultimo inconveniente, la scoperta di associazioni
funziona meglio quando tutti gli oggetti compaiono quasi con la stessa frequenza
nei dati.
Una estensione alle regole di associazione sono le regole di dissociazione, le quali
coincidono con le prime, ma in più in esse si usa anche il connettore logico "e
non" ("and not"), oltre che al "e" ("and"):
"se X e (non Y) ⇒ W e (non Z)"
Esempio: "se si compra farina e non zucchero allora si compra anche pelati".
Le regole di dissociazione sono generate con semplici adattamenti agli stessi
algoritmi per le regole di associazione, ovvero vengono considerati come nuovi
oggetti gli inversi degli oggetti stessi: se l'oggetto X è presente in 30 transazioni
su 100, allora l'oggetto "non X" sarà presente nelle restanti 70 transazioni.
3.5.2
Scoperta di sequenze
Si tratta di un processo strettamente legato alla scoperta di associazioni, la
differenza è che le relazioni tra gli oggetti devono rispettare una successione
37
temporale, cioè si cerca di individuare insiemi di oggetti che sono seguiti
temporalmente da altri insiemi di oggetti. Risulta quindi fondamentale conoscere,
oltre agli oggetti di una transazione, anche il tempo nel quale è avvenuta la
transazione e chi la ha effettuata (un particolare cliente di un negozio, un certo
malato sottoposto ad un ciclo di cure mediche, eccetera).
Il campo che indica il tempo può essere una data, una ora, l'insieme di data e ora,
o qualsiasi altro tipo di dato che comunque si riferisca al tempo (ad esempio un
intero potrebbe indicare un anno); ci riferiremo ad esso come campo temporale.
Il campo che si riferisce al soggetto della transazione è un dato categorico e ci
riferiremo ad esso come campo soggetto.
In definitiva una transazione è costituita da un campo soggetto, un campo
temporale e diversi campi oggetto (items).
Le sequenze non sono limitate a solo due insiemi di oggetti, come per le regole di
associazione (A ⇒ B), ma ne possono contenere di più: A→B→C, dove il
simbolo "→" sta per "segue".
Per le sequenze è definito il supporto: data una certa sequenza, il supporto è il
rapporto tra il numero di soggetti per i quali sussiste la sequenza e il numero totali
di soggetti.
Degli esempi di sequenze sono:
• Quando una persona compra un martello, successivamente compra i chiodi nel
18% dei casi, e negli ulteriori successivi tre mesi nel 12% dei casi.
• Se viene eseguita un certa operazione chirurgica ai polmoni, sopraggiunge
successivamente la febbre e una infezione nel 45% dei casi.
• Se il titolo A sale e l'indice MIBTEL scende, allora il titolo A salirà
ulteriormente nel 68% dei casi.
Molti programmi per il data mining trattano le sequenze come associazioni per le
quali gli eventi sono collegati nel tempo.
La scoperta di sequenze ha gli stessi vantaggi e svantaggi delle analisi delle
associazioni, e in più bisogna considerare che:
• c'è bisogno di specificare un solo parametro, il supporto;
• occorrono un elevato numero di records per assicurare che per ogni soggetto ci
siano un numero significativo di transazioni;
• è richiesto un campo supplementare per rappresentare i soggetti, ma spesso i
databases delle varie organizzazioni, specialmente quelle che si occupano di
vendite, non memorizzano informazioni sui soggetti;
• le tecniche di ricerca di sequenze funzionano meglio se i dati sono
anticipatamente ordinati per soggetto e per tempo.
38
3.5.3
Scoperta di sequenze temporali simili
La scoperta di sequenze temporali simili si occupa di trovare le sequenze simili tra
loro, o simili ad una fissata sequenza, in un database con dati temporali.
Per sequenza temporale intendiamo un insieme ordinato di valori di una variabile
su un periodo di tempo. I modelli per la scoperta di sequenze temporali devono
tenere in considerazione le proprietà caratteristiche del tempo come ad esempio la
gerarchia dei periodi temporali (ora, giorno, mese, anno), i periodi particolari
come i diversi tipi di settimana con 5, 6 o 7 giorni, le festività e le pause feriali,
l'aritmetica delle date.
Su un grafico bidimensionale si può rappresentare una sequenza temporale
ponendo sull’asse delle ascisse il tempo per unita discrete costanti come ad
esempio settimane, mesi oppure anni. Sull’asse delle ordinate sono graficati i
valori della variabile, ad esempio vendite di prodotti, costi di mutui, quotazioni di
titoli.
Supponiamo che una società di distribuzione al dettaglio abbia un database con le
vendite effettuate. Si potrebbero individuare i prodotti o di gruppi di prodotti che
hanno un andamento delle vendite periodico, o quelli che le cui vendite sono in
fase, in ritardo o in anticipo rispetto alle vendite di un altro gruppo di prodotti.
Sulla base di tali informazioni si potrebbero ottimizzare i rifornimenti del
magazzino per l’anno o per la stagione successiva.
Fondamentale per la previsione di serie temporali è quando e come considerare
due serie uguali. A causa dell'intrinseca casualità dei dati reali, il concetto di
uguaglianza deve essere aggiustato per ottenere una significativa e utilizzabile
definizione di similarità. Due approcci comuni a questo problema sono
l'introduzione di un margine per l'errore e di un ammissibile gap di disaccordo. Il
margine per l'errore è il numero massimo di oggetti in posizione corrispondente
in due sequenze che possono differire ma che vengono considerati uguali: tale
valore assicura la tolleranza per l'intrinseca variabilità delle serie di dati temporali.
Il gap di disaccordo è il numero di unità temporali consecutive per le quali sono
ignorati i valori in disaccordo: tale valore assicura che brevi sottosequenze non
concordi in due sequenze non inficino sulla loro evidente somiglianza.
Un vantaggio della scoperta di sequenze temporali simili è che molti pattern
possono essere scoperti senza nessuna condizione particolare da imporre, tranne
che i dati devono essere quantitativi e dipendenti dal tempo.
Uno svantaggio sta nel fatto che bisogna impostare con cura un certo numero di
parametri, e la cosa potrebbe non risultare agevole per un utente inesperto alle
prime armi. Specificando un margine di errore troppo piccolo, sicuramente non si
ottiene nessun risultato. Specificandolo troppo grande, si potrebbero ottenere
troppe sequenze considerate simili ma che in realtà non lo sono.
39
Imponendo un gap di disaccordo troppo piccolo le sequenze simili potrebbero
restare nascoste, imponendolo troppo grande, potrebbero venire fuori delle
soluzioni non valide.
4 Data Mining: Strumenti e Tecnologie
D
opo aver parlato dei tipi di problemi che il data mining risolve e dei
modelli che adotta, descriviamo ora alcune tecniche per realizzare tali
modelli e risolvere tali problemi. Molti prodottori di software per il data
mining usano delle varianti di algoritmi e di strumenti pubblicati sui
giornali di statistica e di informatica, adattati agli obiettivi che si prefiggono. Ad
esempio molte società informatiche vendono delle versioni del CART o del
CHAID, due algoritmi per la classificazione ad albero, con migliorie per lavorare
su computer paralleli oppure corretti delle imperfezioni che si trovano negli
algoritmi pubblicati. Qualche ditta ha sviluppato dei propri algoritmi che non sono
estensioni o perfezionamenti di approcci pubblici, ma che funzionano molto bene.
Molti degli strumenti descritti di seguito possono essere pensati come
generalizzazioni del metodo standard di modellazione: il modello di regressione
lineare. Molti sforzi sono stati compiuti in statistica, in scienza computazionale, in
intelligenza artificiale e in ingegneria per oltrepassare le limitazioni di questo
modello base. La caratteristica comune di molte nuove tecnologie è che il
meccanismo di ricerca dei patterns è diretto dai dati più che dell'utente. Le
relazioni sono scovate dal software stesso basandosi soprattutto sui dati esistenti e
non sulle capacità di un analista di specificare le forme e le interazioni tra
variabili.
Non un solo strumento o un insieme di strumenti possono o devono essere usati
per risolvere un dato problema. La natura stessa dei dati condizionerà la scelta
degli strumenti: avere a disposizione una buona varietà di tecnologie e tools
agevola la ricerca del migliore modello possibile.
4.1 Reti Neurali
Lo sviluppo delle reti neurali avviene prevalentemente nell'ambito
dell'intelligenza artificiale. Esse traggono spunto, in modo impreciso, dalla
biologia e in particolare sono una simulazione delle reti neurali del cervello
umano, però le reti biologiche sono incomparabilmente più complesse delle loro
attuali corrispondenti artificiali. I neuroni sono delle cellule viventi con una
biochimica complessa, fittamente collegate tra di loro e l'intera struttura celebrale
viene modificata continuamente tramite molti diversi meccanismi.
Le reti neurali artificiali offrono i mezzi necessari per modellare ampi e complessi
problemi con migliaia di variabili indipendenti che interagiscono tra loro in molti
40
modi12. Sono usate nei problemi di classificazione (quando l'output è dato da
variabili categoriche), per la regressione (quando l'output è continuo) e per il
clustering (reti neurali con funzioni caratteristiche di Kohonen) [20].
Una rete neurale artificiale è composta da un insieme di nodi (neuroni), ogni nodo
è raggiunto in ingresso da diverse connessioni, mentre l'uscita è unica, anche se da
essa possono partire più di una connessione ad altri nodi (Figura 5).
Nodo
Input
Output
Figura 5 Nodo o Neurone Artificiale
Ogni nodo è un piccolo centro di elaborazione delle informazioni che gli
pervengono: praticamente applica una certa funzione di trasferimento ai segnali di
ingresso fornendo un segnale di uscita. I segnali di ingresso ad un nodo
provengono da altri nodi o sono i segnali di ingresso della stessa rete neurale,
mentre il segnale di uscita raggiunge altri nodi o è uno dei segnali di uscita della
rete . Sia i segnali di ingresso che di uscita sono dei numeri reali.
L'elaborazione effettuata da ogni nodo i-esimo consiste nel calcolo di una somma
degli ingressi pesata sui pesi delle connessioni; quello che si ottiene è il valore di
attivazione del nodo:
A i = ∑ Wij * O j ,
j ∈ Ii
dove Ii è l'insieme degli indici delle connessioni che entrano nel nodo i, Oj è
l'uscita del nodo j, Wij è il peso della connessione dal nodo j al nodo i.
I pesi Wij delle connessioni sono dei valori reali che indicano quanto il nodo j
influisca fortemente sul nodo i: se Wij = 0 vuol dire che non esiste la connessione
tra i nodi i e j, mentre se Wij < 0 il nodo j influisce in senso opposto sul nodo i. I
pesi sono i parametri comportamentali della rete, infatti variando i pesi si varia il
comportamento della rete, ovvero quello che è in grado di fare o calcolare.
Una volta noto il valore di attivazione Ai del nodo i-esimo ad esso viene applicata
una certa funzione, detta funzione di attivazione, che produce l'uscita Oi:
O i = T(Ai ) .
12
Il teorema di Hecht-Nielsen afferma che una qualsiasi funzione vettoriale Y = F(X) può essere
computata con elevata accuratezza con una rete neurale non ricorrente a soli tre strati avente un
opportuno numero di nodi (anche molto elevato) nello strato intermedio, senza alcuna
connessione all'interno dello strato ma totalmente connessa tra uno strato e l'altro. Tale teorema
ha validità più teorica che pratica.
41
Le funzioni di attivazione sono funzioni a soglia o quasi, nel senso che più è alto
l'ingresso e più è probabile che sarà alta anche l'uscita.
Oi
Ai
Oi
Ai
Figura 6 Esempi di funzioni di attivazione
I nodi che ricevono segnali dall'esterno (ingresso) saranno detti nodi di input della
rete, i nodi che forniscono il loro valore di output all'ambiente esterno saranno
detti nodi di output della rete.
L'input della rete è dunque un insieme X di numeri reali (vettore) e l'output è
anch'esso un insieme Y di reali13. Il compito della rete è di fornire un output
quando gli si presenta un input, in altre parole la rete realizza una funzione
vettoriale F tale che Y = F( X ).
Il calcolo di F avviene in questo modo: inizialmente la rete è in stato di quiete,
quindi tutti i nodi sono inattivi e forniscono un output Oi nullo. Quando
pervengono dall'esterno dei segnali di input X, i nodi di input vengono sollecitati e
mandano un segnale agli altri nodi. Ogni nodo della rete verrà dunque attivato in
maniera diversa e propagherà stimoli agli altri nodi. Le uscite fornite dai nodi di
output saranno trasmessi all'esterno formando l'insieme Y dei valori di input della
rete. Si noti che si è supposto che l'elaborazione nella rete è avvenuta in modo
istantaneo, ma le cose non sono così semplici quando nella rete ci sono
connessioni cicliche. In questo caso alcuni nodi si stimolano a vicenda e possono
verificarsi tre situazioni:
• la reciproca stimolazione porta a attivare le unità di output con valori sempre
differenti, e la rete fornira un output in perenne cambiamento: la rete non
converge. Può succedere che l'output sia in continua crescita: in questo caso la
rete esplode.
• la reciproca stimolazione porta ad una sequenza di attivazioni che si ripetono
ciclicamente, quindi anche l'output della rete sarà periodico: la rete oscilla.
• la reciproca stimolazione porta a una combinazione di attivazioni che non
cambia più: la rete converge verso una soluzione Y = F( X ). Questa è la
situazione più interessante perchè rende la rete neurale una macchina
deterministica.
13
Gli ingressi della rete sono dei numeri reali, mentre in precedenza si è detto che le reti neurali
sono anche applicabili in presenza di variabili categoriche. Come si vedrà in seguito ciò è
possibile grazie alla trasformazione dei valori categorici in vettori numerici formati da tutti 0 e
un solo 1. Lo stesso ragionamento vale quando l'uscita è categorica: la rete in effetti produrrà in
uscita dei vettori di tutti 0 e un solo 1, che verranno assegnati ognuno di essi ad un particolare
valore categorico di uscita.
42
Finora non si è posto nessun vincolo alla struttura delle reti, ma per una loro
implementazione software efficace bisogna ricorre a strutture semplici. Si possono
classificare le reti in base alla loro struttura e alle loro caratteristiche di
funzionamento:
• Reti non ricorrenti: reti in cui le connessioni vanno in un solo senso, dall'input
all'output, cioè sono prive di cicli. Le reti che presentano cicli sono dette
cicliche.
• Reti totalmente connesse: rete nelle quali ogni nodo è connesso con tutti gli
altri (generalmente escluso se stesso); si noti che peso nullo per una
connessione indica l'assenza della connessione.
• Reti a strati: reti i cui nodi sono organizzati in insiemi separati e disgiunti di
cui uno è detto strato di input, un'altro strato di output e gli altri vengono detti
strati nascosti o intermedi.
• Reti simmetriche: reti in cui la connessione fra due qualsiasi nodi è uguale in
entrambi i sensi: Wij = Wji.
• Reti autoassociative: reti in cui i nodi di input coincidono con quelli di output.
Il compito di queste reti è di ricevere uno stimolo dall'esterno e di farlo
evolvere, fornendo come risultato una versione modificata (o completata)
dell'input ricevuto.
• Reti stocastiche: reti in cui vi è una certa probabilità un nodo non venga
attivato anche quando riceve stimoli.
• Reti asincrone: reti in cui i nodi vengono attivati non tutti
contemporaneamente ma uno alla volta secondo un ordine casuale.
Le reti neurali differiscono da molti dei metodi statistici e in molte maniere.
Principalmente, una rete neurale di solito ha più parametri di un modello statistico
tipico. Per esempio in una rete con solo 6 nodi e 9 connessioni ci possono essere
15 parametri. Poiché i parametri sono così numerosi, e poiché le combinazioni tra
essi sono numerosissime, il loro significato non è più comprensibile e la rete
diventa una "scatola nera" di predizione.
Oltre a non essere facilmente interpretabili e ad adattarsi troppo bene ai dati di
training e meno bene agli altri, le reti neurali, e soprattutto le back propagation,
richiedono molto tempo per l'apprendimento a meno che il problema da affrontare
non sia semplice. Però una volta addestrata la rete fornisce le predizioni in tempi
rapidissimi.
Un altro obbligo imposto dal ricorso alle reti riguarda la preparazione dei dati che
non è meno onerosa che per gli altri modelli. Le reti neurali hanno la qualità che
vi si possono applicare quasi tutti i tipi di dati e fornire previsioni ragionevoli, ma
ciò implica una particolare attenzione nelle fasi di pulizia dei dati, di selezione, di
preparazione e di pre-elaborazione.
43
Infine le reti tendono a lavorare meglio quando il problema è molto grande e il
rapporto segnale-rumore (SNR) dei dati è accettabilmente alto. Poiché esse sono
molto flessibili troveranno molti falsi patterns in situazioni di basso SNR (quando
c'è tanto rumore nei dati).
Un vantaggio delle reti neurali è che possono facilmente essere implementate su
computers paralleli su larga scala (massively parallel computers), dove tutti gli
elaboratori simultaneamente svolgono i propri calcoli. Sono disponibili in
commercio molti chips e schede ad hoc per reti neurali.
Dopo aver dato delle definizioni concise dei componenti di una rete, delle
possibili strutture e comportamenti di essa, dei suoi svantaggi e vantaggi,
passiamo a descrivere due tipi di rete neurale che si usano il primo negli algoritmi
di classificazione e il secondo negli algoritmi di clustering. Chiaramente poiché la
classificazione necessita della fase di apprendimento supervisionato, allora anche
la rete che la realizza apprenderà in modo supervisionato, al contrario poiché il
clustering richiede apprendimento non supervisionato allora la rete imparerà senza
ricorrere a degli esempi.
4.1.1
Reti back propagation (classificazione)
La back propagation (propagazione all'indietro) è il tipo di rete neurale che si usa
negli algoritmi di classificazione: spesso si adoperano le parole "classificazione
neurale" quando si usa una rete neurale per la classificazione.
3
1
4
2
Input
6
Output
5
Strato Nascosto
Figura 7 Rete neurale back propagation
Una rete neurale back propagation (Figura 7), nella versione base, cioè con un
solo strato nascosto, inizia con un strato di input, dove ad ogni nodo corrisponde
una variabile indipendente (detta anche predittore o input). Questi nodi di ingresso
sono connessi ai nodi di un strato nascosto. Ogni nodo di ingresso di solito è
collegato a tutti quelli del strato nascosto. I nodi dello strato nascosto sono
connessi ad un altro strato nascosto o allo strato di output. Lo strato di output
rappresenta le variabili dipendenti.
44
W
3
13
1
W
36
W
23
W
14
4
W24
2
Output
W15
Input
W25
6
5
W56
Livello Nascosto
Figura 8 Pesi della rete
La Figura 8 mostra come, dopo lo stato di ingresso, ogni nodo riceve un insieme
di inputs, ognuno moltiplicato per il peso della connessione Wij (il peso della
connessione tra il nodo i e il nodo j), li somma, applica la funzione di attivazione a
tale somma, infine passa l'output ai nodi dello strato successivo.
Le funzioni di attivazione che si usano per le reti back propagation sono le
sigmoidi:
O=
1
,
1 + e −A
dove A è il valore di attivazione e O è l'uscita.
Ogni nodo è o una variabile di predizione (nodi 1 e 2) o una combinazione di
variabili di predizione (nodi da 3 a 6). Il nodo 6 è una combinazione non lineare
dei valori dei nodi di ingresso, data la non linearità delle funzioni di attivazione
dei vari nodi. Al contrario se le funzioni di attivazione sono lineari, la rete neurale
è equivalente a una regressione lineare.
La rete neurale per funzionare deve essere addestrata: gli vengono posti in
ingresso i valori delle variabili indipendenti e in uscita i corrispondenti valori
delle variabili dipendenti: in questa maniera vengono modificati i pesi delle
connessioni e eventualmente alcuni parametri nelle funzioni di attivazione, che
rappresentano appunto la configurazione della rete, ovvero ciò che ha appreso.
In origine il metodo più comune di training era il back propagation; più moderni
sono il metodo del gradiente coniugato, quasi-Newton, Levemberg-Marquardt e
algoritmi genetici. Ogni metodo di training (apprendimento) ha un insieme di
parametri che controllano vari aspetti dell'apprendimento, come ad esempio la
regolazione della velocità di convergenza o l'evitare gli ottimi locali.
L'architettura o topologia di una rete neurale è la scelta delle variabili di ingresso
e di uscita, del numero di strati nascosti, del numero di nodi per ogni strato
nascosto e del tipo di connessione. Nel progetto di una rete, o l'utente o
automaticamente il software devono decidere il numero di nodi nascosti e di strati
nascosti, le funzioni d'attivazione e limiti sui pesi.
45
La rete neurale back propagation, anche nota coi termini rete feed-forward back
propagation (rete a propagazione all'indietro e alimentata in avanti) viene usata
molto diffusamente. La sua struttura è quella finora descritta e per semplicità
assumeremo un singolo strato nascosto.
L'addestramento back propagation è semplicemente una variante del gradiente
discendente, un tipo di algoritmo che cerca di minimizzare un valore obiettivo
(errore, nel caso di reti neurali) ad ogni passo. L'algoritmo procede come segue: il
valore del nodo di uscita è calcolato in base ai valori dei nodi d'ingresso e
all'insieme di pesi iniziali. I valori dai nodi d'ingresso sono combinati negli strati
nascosti, ed i valori di questi nodi sono combinati tra loro per calcolare il valore
dell'uscita.. Questa è la fase del feed-forward, cioè dell' "alimentazione in avanti",
quando le informazioni viaggiano dallo strato di input verso lo strato di output: si
può avere il feed-forward solo per reti acicliche dove il flusso può avere una sola
direzione.
L'errore nella uscita è dato dalla differenza tra l'uscita che si è ottenuta e quella
desiderata (cioè, i valori attuali che si trovano nell'insieme di training). Quindi
l'errore dalla uscita è rinviato ai nodi dello strato nascosto proporzionalmente ai
pesi delle connessioni. Questa è la fase di back propagation, cioè della
propagazione all'indietro. Ciò permette di calcolare l'errore oltre che per ogni
nodo di uscita e anche per ogni nodo nascosto. In fine, l'errore di ogni nodo
nascosto e ogni nodo di uscita viene usato per aggiustare il peso della connessione
tra essi in modo da ridurre gli errori.
Questo processo è ripetuto per ciascuna tupla dell'insieme di training e più volte
sull'insieme di training, finché l'errore non decresce più o è accettabile: le
iterazioni sono chiamate epoche. A questo punto la rete neurale è addestrata e può
iniziare a trovare i patterns nell'insieme di testing.
Poiché possono esserci molti parametri negli strati nascosti, una rete neurale con
molti nodi nascosti alla fine si adatta sempre all'insieme di training. Il problema,
naturalmente, è se la rete si comporterà bene anche con gli altri dati. Il pericolo è
una rete neurale "overfitted" (super-adattata) la quale lavora bene solo si dati
d'addestramento: occorre quindi sapere quando interrompere addestramento.
Alcune realizzazioni valuteranno la rete neurale sui dati di testing periodicamente
durante la fase di addestramento. Finché il tasso d'errore sull'insieme di testing
decresce, l'addestramento continuerà. Se il tasso d'errore sui dati di testing cresce,
sebbene il tasso d'errore sui dati d'addestramento decresca ancora, la rete neurale
potrebbe super-adattare (overfittig) i dati. Se ulteriormente l'addestramento non
riduce l'errore sull'insieme di testing, allora l'utente dovrebbe tornare a un modello
precedente.
4.1.2
Kohonen feature maps o reti auto-organizzanti
Le Kohonen feature maps (funzioni caratteristiche di Kohonen), o anche dette reti
auti-organizzanti [21], sono utilizzate per riconoscere i cluster nei dati. Infatti il
46
loro scopo non è di fornire un output per un certo input ma di ricevere degli input
e classificarli: la rete organizza in modo autonomo (senza il bisogno di esempi)
una struttura che accomuna gli input simili tra loro individuando regolarità e
somiglianze. Esse differiscono dalle rete back propagation per due motivi: hanno
una differente topologia e non è più applicabile il metodo back propagation per
l'apprendimento.
Strato di
output
Strato di input
Figura 9 Semplice Kohonen feature map
Una Kohonen feature map è una rete neurale a strati in grado di riconoscere i
patterns nei dati. È formata da soli due strati, quello di input e quello di output.
Lo strato di output è formato da molti nodi al contrario delle reti back propagation
che ne posseggono giusto una manciata. Ogni nodo di output è connesso a tutti i
nodi di ingresso e lo strato di output è disposto a griglia: anche se i nodi di output
non sono connessi con tutti gli altri dello stesso livello ma solo con quelli vicini,
la struttura a griglia gioca un ruolo importante per il addestramento della rete.
Quando un record della tabella di addestramento è presentato alla rete, i valori
fluiscono attraverso la rete verso i nodi di output. I nodi di output competono tra
loro e quello col valore più alto "vince". La "ricompensa" consiste nell'aggiustare i
pesi delle connessioni che conducono al nodo vincente favorendo il rafforzamento
nella risposta a quel particolare input.
Non sono solo rafforzati i pesi per il nodo vincente ma anche quelli dei nodi ad
esso più vicini (sulla griglia) per favorirne la risposta a quel tipo di input. Queste
ultime modifiche sono controllate da un parametro detto parametro di vicinanza
che regola la distanza dal nodo vincente dei nodi dei quali si modificano i pesi e di
quanto devono essere modificati. All'inizio il "vicinato" è piuttosto ampio e anche
le modifiche sono marcate, ma mentre l'addestramento procede il vicinato e la
forza delle modifiche si riducono.
In definitiva ogni volta che viene presentato in ingresso un certo tipo di input si
fortifica sempre una stressa zona di uscita della rete. Man mano che la rete
esamina i records, si autoconvince sempre più che tuple simili debbano far vincere
47
gli stessi nodi e che quindi tali records appartengono allo stesso cluster. Non tutte
le uscite della rete rappresentano un cluster, anzi il numero di cluster è molto più
piccolo del numero di nodi di output: qualora il meccanismo di limitazione
dell'influenza di un nodo vincente sul suo vicinato non fosse efficiente, si
otterrebbe un cluster per ogni nodo di output. I clusters simili tra loro hanno le
rispettive uscite più prossime sulla griglia, mentre cluster molto differenti hanno
le uscite più distanziate.
Una volta addestrata la rete la si può utilizzare per clusterizzare nuovi records. Va
sottolineato il fatto che la rete identifica l'appartenenza di un record a una certa
classe, ma non spiega perché i membri di un cluster sono ritenuti simili tra loro e
perché i clusters sono diversi tra loro. Una maniera per capire cosa accomuna i
membri di un cluster è di calcolare, se possibile, la media su essi e ritenere tale
media una rappresentazione o una descrizione del cluster.
4.2 Algoritmo Apriori: un algoritmo per la scoperta
di regole di associazione
Riprendiamo ora la definizione di regola di associazione , in modo più rigoroso. Un
modello matematico semplice ma efficace per affrontare il problema della scoperta di
regole di associazione è stato proposto da Agrawal, Imielinski e Swami [13].
Sia I = { i1, i2, ..., iN } un insieme di oggetti (items): ogni oggetto è fondamentalmente una
etichetta, un valore categorico.
Sia D un insieme di transazioni, dove ogni transazione T è un insieme di oggetti tale che
T ⊆ I. Si noti che il numero di volte che un oggetto appare in una transizione è
ininfluente, cioè quello che conta è che un dato oggetto sia presente o meno nella
transazione (ad esempio quando si comprano insieme 12 uova e 2 litri di olio, quello che
veramente interessa è il fatto che si sono acquistati uova e olio). Ogni transazione è
identificata da un codice identificatore.
Sia X un insieme di oggetti (itemset): si dice che la transazione T contiene X se e solo se
X ⊆ T. Una regola di associazione è una implicazione di forma X ⇒ Y, dove X ⊂ I, Y ⊂
I e X ∩ Y = ∅.
La regola X ⇒ Y ha confidenza c nell'insieme di transazioni D se c% delle transazioni
che contengono X contengono anche Y.
La regola X ⇒ Y ha supporto s nell'insieme di transazioni D se s% delle transazioni
contengono X ∪ Y.
La confidenza indica la forza della regola, il supporto invece l'importanza della regola
rispetto alle altre scoperte nello stesso database. Spesso è desiderabile rivolgere
l'attenzione solo a quelle regole che hanno un supporto ragionevolmente alto. Le regole
con confidenza e supporto elevati sono dette regole forti.
Lo scopo di qualsiasi algoritmo per la scoperta di regole è essenzialmente quello di
trovare regole forti in databases di grandi dimensioni. Tale obbiettivo di solito si
raggiunge dividendo il problema in due passi:
• scoperta di large itemsets, cioè quegli insieme di oggetti che hanno il supporto più
elevato di un predeterminato supporto minimo smin,
48
•
utilizzo dei large itemsets per generare le regole di associazione dal database.
Le buone prestazioni di un algoritmo per le regole di associazioni sono determinate
esclusivamente dal solo primo passo, infatti una volta individuati i large itemsets, le
corrispondenti regole di associazione si ottengono in maniera diretta.
L'algoritmo Apriori è iterativo, ripetendo per un numero finito di volte (al massimo m-1,
dove m è il numero di oggetti della transazione con più oggetti) i due passi appena
descritti: ad ogni iterazione costruisce un insieme di large itemset candidati , conta il
numero di occorrenze di ogni large itemset candidato tra le transazioni, determina i large
itemset effettivi in base a un predeterminato supporto minimo, estrae le regole da ogni
large itemset.
Nella prima iterazione, di preparazione, l'Apriori scandisce tutte le transazioni contando il
numero di occorrenze di ogni item. Genera così un insieme C1 di large itemsets candidati
di grandezza 1 (un solo item per itemset), cioè tutti gli itemset con un solo item.
Escludendo tutti i large itemset candidati che non superano il minimo supporto, ottiene
l'insieme L1 di tutti gli effettivi large itemsets di grandezza 1. Con un large itemset di
grandezza 1 non si può costruire nessuna regola, perché essa deve possedere almeno due
items.
Per scoprire l'insieme di large itemsets di grandezza 2 (cioè i large itemsets formati da
due items), poiché ogni sottoinsieme di un large itemset deve anch'esso avere il minimo
supporto, cioè ogni sottoinsieme di un large itemset è anch'esso un large itemset, l'Apriori
usa L1⊗L1 per generare l'insieme C2 dei candidati large itemsets di grandezza 2, dove
Lk⊗Lk = { X ∪ Y : X, Y ∈ Lk e | X ∩ Y | = k - 1 }, che nel caso di k = 1 coincide con la
semplice concatenazione di due items. Tale operazione praticamente confronta a due a
due tutti large itemsets di grandezza k, cercando quelli che differiscono per un solo item e
da queste particolari coppie genera un large itemset candidato di grandezza k+1, i cui
items sono tutti quelli comuni ai due large itemsets generatori più quello contenuto nel
primo generatore ma non nel secondo e quello contenuto nel secondo ma non nel primo.
⎛ | L1 | ⎞
⎟⎟ itemset di grandezza 2 e per ognuno di essi viene
Ora C2 risulta composto di ⎜⎜
⎝ 2 ⎠
scandito l'insieme delle transazioni per calcolare il proprio supporto. Solo i large itemset
candidati di C2 con supporto superiore al minimo passano in L2, l'insieme degli effettivi
large itemsets di grandezza 2. Tali successioni di operazioni al massimo fino a che non si
arriva a generare l'insieme Ln di large itemsets di grandezza n pari al numero di items
della transazione più grande, in effetti però tale processo termina molto prima perché non
si possono più generare large itemsets con adeguato supporto.
Algoritmo Apriori:
genera C1 ;
trova L1 da C1 ;
finché è possibile proseguire:
genera Ck+1 = Lk ⊗ Lk ;
trova Lk+1 da Ck+1 ;
genera la regole di associazione da Lk+1 ;
fine.
49
Finora non abbiamo parlato del passo "genera la regole di associazione da Lk+1", ovvero
il passo n° 2 di quasi tutti gli algoritmi per le regole di associazione. Dato un large itemset
Lk di grandezza k, qualsiasi regola Ai⇒Bj, dove Ai e Bj sono qualsiasi sottoinsiemi di Lk
rispettivamente con i e j items, dove i + j = k e Ai ∩ Bj = ∅, risulta essere una regola di
associazione con supporto pari a quello di Lk, quindi valida per quanto riguarda il
supporto. Tra tutte le regole ottenute da un large itemset si devono filtrare quelle che non
raggiungono la confidenza minima. Quest'ultima operazione non richiede la scansione
delle transazioni per ogni regola, dato che la confidenza della regola si ottiene con tramite
i supporti di due diversi large itemsets, infatti per la generica regola Ai⇒Bj ottenuta da
Lk, si ha:
confidenza Ai⇒ Bj =
T(A i B j )
T(A i )
=
T(A i B j ) T
T(A i ) T
=
supporto di L k
supporto di A i
dove T(XY) è il numero di transazioni che contengono sia X che Y.
Il supporto di Lk è noto, ma anche quello di Ai perché anche esso è un large itemset dato
che è sottoinsieme di Lk.
L'algoritmo Apriori è chiaramente estensibile alle tassonomie, ottenendo regole
generalizzate e gerarchiche. Ad esempio le regole molto dettagliate vengono esaminate
solo se le regole al livello immediatamente superiore hanno supporto e confidenza molto
al di sopra delle soglie.
Esistono diverse varianti dell'Apriori, tra le quali quelle che permettono di ridurre il
numero di scansioni del database, quelle che tramite campionamento permettono di
analizzare immensi insiemi di transazioni ricorrendo a un compromesso tra accuratezza e
efficienza, quelle che si adattano ad ambienti distribuiti, quelle che permettono la
manutenzione delle regole scoperte quando i dati del database vengono modificati ad
esempio per la presenza di nuove transazioni.
4.3 Alberi di decisione (decision trees)
Gli alberi di decisione sono un modo per rappresentare una serie di regole che
portano alla definizione di una classe o di un valore. La Figura 10 mostra un
piccolo albero per la classificazione delle persone che chiedono un prestito, tra
quelle affidabili e quelle non affidabili.
Stipendio > 1.2 M£ ?
No
Lavora da più di 5 anni?
Si
Affidabile
No
Si
Ha molti debiti?
Si
Non
Non
Affidabile Affidabile
No
Affidabile
Figura 10 Un semplice albero di classificazione
50
L'albero è composto fondamentalmente da tre elementi: i nodi di decisione, i rami
e le foglie.
Il primo componente dell'albero è il nodo di decisione superiore o nodo radice,
che specifica una condizione che deve essere testata. Viene così diviso l'albero in
due rami, che rappresentano le possibili risposte. In base al tipo di algoritmo, ogni
nodo può avere due o anche più rami.
Ogni ramo porta o ad un altro nodo di decisione, o al fondo dell'albero, cioè a un
nodo foglia o nodo classe). Al livello dei nodi foglia è nota la classe alla quale una
tupla è assegnata, tupla che ha rispettato tutte le condizioni dei nodi sul cammino
che va dalla radice alla foglia stessa.
Navigando nell'albero, partendo dalla radice, si classificano le tuple
sottoponendole di seguito alla condizione del nodo di decisione, finché non si
raggiunge una foglia, cioè una classe. Ogni nodo usa i dati della tupla per
scegliere il ramo appropriato.
Il data mining è usato per creare l'albero dall'esame dei dati, e per indurre le regole
che formano l'albero. Sono molti gli algoritmi che possono essere impiegati nella
costruzione di un albero e tra gli altri ricordiamo il CHAID (Chi-squared
Automatic Interaction Detection), CART (Classification and Regression Tree),
Quest, C5.0.
Gli alberi di decisione si sviluppano per mezzo di divisioni iterattive dei dati in
gruppi discreti, con lo scopo di massimizzare la "distanza" tra i gruppi ad ogni
divisione. Una delle differenze principali tra i vari metodi è appunto come
misurare questa distanza. Senza approfondire ulteriormente, si può pensare che
ogni divisione dei dati nei nuovi gruppi massimizzi la differenza dell'uno dall'altro
il più possibile.
Questo è talvolta detto rendere i gruppi più puri. Quindi nella ricerca delle
condizioni per ogni nodo bisogna trovare quella che più mette in risalto le
differenze tra i nuovi gruppi, in modo tale che in ogni gruppo ci siano solo gli
elementi di una certa classe (nel limite del possibile).
Gli alberi di decisione usati per la predizione di variabili categoriche sono
chiamati alberi di classificazione perché essi collocano le tuple in classi o
categorie, mentre gli alberi usati per la predizione di variabili continue sono gli
alberi di regressione.
L'albero, se è sufficientemente piccolo, risulta di immediata comprensione, però
quando esso è costruito su databases con migliaia di attributi e quindi con un
numero di livelli esponenziale con il numero degli attributi usati, sebbene rimanga
51
chiaro il ruolo di ogni nodo, l'intero albero risulta incomprensibile perché troppo
complesso. Tuttavia il significato di ogni cammino radice-foglia è immediato per
cui l'albero di decisione può spiegare, palesare le sue predizioni (al contrario delle
reti neurali), e questo è un grosso vantaggio.
Questa chiarezza però può risultare ingannevole. Ad esempio la rigidità delle
condizioni di decisione spesso non si rispecchia nel mondo reale: che differenza
passa tra una persona che guadagna 1'200'000 lire e 1'200'500 lire? tuttavia
nell'albero di Figura 10 vengono considerati in modo differente. E inoltre, poiché
gli stessi dati possono essere rappresentati da diversi alberi con eguale
accuratezza, quali interpretazioni possono essere date per le differenti regole?
Nella costruzione gli alberi richiedono pochi passaggi sui dati (non più di un
passaggio per ogni livello dell'albero) e lavora bene anche in presenza di molte
variabili indipendenti, di conseguenza i modelli sono costruiti molto rapidamente,
rendendoli particolarmente adatti per grossi insiemi di dati.
Gli alberi che sono lasciati crescere senza limiti prendono più tempo alla
costruzione e diventano inintelligibili, ma soprattutto creano problemi di
overfitting dei dati. La dimensione dell'albero può essere controllata tramite le
regole d'arresto (stopping rules) che ne limitano la crescita. Una semplice e
diffusa regola d'arresto è la limitazione del numero massimo di livelli (profondità
dell'albero). Un'altra regola d'arresto richiede di fissare il numero minimo di tuple
in un nodo sotto il quale non si deve più ricorrere alla divisione.
Una alternativa alle regole d'arresto è la potatura (pruning) dell'albero. All'albero
è permesso di crescere fino alla sua massima grandezza e a quel punto, ricorrendo
a interventi euristici integrati o interventi dell'utente, gli vengono tolti alcuni rami
riducendone la dimensione senza comprometterne eccessivamente l'accuratezza.
Ad esempio un cammino o un sottoalbero che l'utente ritiene insignificante perché
raccoglie pochissime tuple, possono essere rimossi.
Una critica comune agli alberi di decisione è che essi scelgono un criterio di
divisione ricorrendo ad un algoritmo "greedy" (avido, vorace), nel quale la
decisione su quale variabile basare la divisione non tiene conto degli effetti che la
divisione può avere sulle future divisioni. In altre parole la decisione sulla
divisione è presa per un nodo in quel momento e non è mai più rivista. In più tutte
le divisioni sono eseguite in successione e quindi ognuna di esse dipende dalle
precedenti. Ne segue le soluzioni finali possono essere molto differenti tra loro se
la condizione al nodo radice vari anche di poco. Non sono ancora chiari però i
benefici che giungono dal preoccuparsi di "guardare in avanti" nella scelta dei
criteri di divisione. I tentativi di guardare in avanti sono allo stadio della ricerca,
ma sono computazionalmente onerosi e attualmente non si hanno a disposizione
implementazioni commerciali.
52
Oltre a ciò gli algoritmi usati per la divisione si basano su condizioni ad una sola
variabile, cioè considerano su una sola variabile indipendente per volta: questo
approccio è una delle cause della rapidità nella costruzione del modello, ma limita
fortemente la possibilità di scoprire le relazioni tra variabili apparentemente
indipendenti.
Esistono algoritmi che effettuano la divisione lavorando su più variabili
indipendenti: gli alberi che permettono combinazioni lineari delle variabili sono
noti come alberi obliqui. Un criterio lineare è ad esempio "Stipendio" < 0.15 *
"Debiti". Un altro tipo di divisione su più variabili la combinazione logica di più
condizioni semplici: ("Salario" > 1'200'000) OR ("Anni Lavorativi" > 5).
Gli alberi di decisione trattano efficacemente dati non numerici. La capacità di
operare su dati categorici riduce la quantità di trasformazioni da effettuare sui dati
ed elimina l'esplosione di variabili indipendenti tipico delle reti neurali.
Qualche albero di classificazione è progettato per lavorare meglio quando anche le
variabili di ingresso sono categoriche e in questo caso le variabili continue vanno
discretizzate. Ci sono poi alcuni alberi di decisione che non supportano variabili
continue in uscita (cioè non possono costruire alberi di regressione) e in tal caso le
variabili dipendenti nell'insieme di addestramento vanno anch'esse discretizzate.
4.4 Induzione di regole
Una induzione di regole è un metodo per ricavare un insieme di regole allo scopo
di classificare degli oggetti (casi). Anche gli alberi di decisione generano un
insieme di regole, e spesso vengono detti induttori di regole, ma il significato che
assumono in effetti è diverso. I metodi di induzione generano un insieme di regole
indipendenti che non necessariamente (e poco probabilmente) costituiscono un
albero. Poiché l'induttore di regole non è forzato alla divisione ad ogni livello e
può guardare in avanti, sarà in grado di trovare patterns diversi e talvolta migliori
per la classificazione.
4.5 K-nearerest neighbour e ragionamento basato
sulla memoria
Q
uando si prova a risolvere nuovi problemi, spesso si guarda alle soluzioni
di problemi simili che sono stati precedentemente affrontati. Il K-nearst
neighbour (i k vicini più prossimi, K-NN) è una tecnica di classificazione
che usa una variante di questo approccio. Si determina in quale classe
collocare un nuovo oggetto dall'esame di un certo numero (k) di oggetti più simili
ad esso, detti vicini (neighbours). Tra questi k si contano per ogni classe il numero
di oggetti e si assegna il nuovo oggetto alla stessa classe alla quale appartengono
il maggior numero dei vicini.
53
Y
X
X
X
N
X
Y
X
Y
X
Y
X
Figura 11 K-nearst neighbour. N è il nuovo oggetto. Sarà assegnato alla classe X perché
nell'ellisse ci sono più elementi di X che di Y.
La prima necessità del K-NN è una misura della distanza tra gli attributi. Per dati
numerici esistono molte distanze ma per le variabili categoriche la definizione di
distanza è meno definita ed sono richiesti particolari accorgimenti. Ad esempio
qual è la distanza tra il verde e il blu? Oltre a ciò si deve anche saper combinare le
distanze tra i singoli attributi in modo da ottenere una distanza globale tra gli
oggetti.
Una volta che si sa calcolare la distanza tra gli oggetti, bisogna scegliere l'insieme
di oggetti già classificati da usare per classificarne dei nuovi, per determinare
quanto grande deve essere il range (vicinanza, neighbourhood) nel quale effettuare
i confronti, e infine per decidere in che maniera contare i vicini stessi ( ad esempio
si può assegnare più importanza agli oggetti più prossimi e meno a quelli lontani).
Il K-NN implica un forte carico computazionale perché il tempo di calcolo cresce
fattorialmente col numero di oggetti. Al contrario degli alberi di decisione e delle
reti neurali che processano i nuovi oggetti molto rapidamente, il K-NN obbliga a
rifare i calcoli per ogni nuovo oggetto. Per aumentare la velocità dell'algoritmo
spesso tutti i dati sono mantenuti in memoria. Spesso ci si riferisce a classificatori
K-NN residenti in memoria come metodi di ragionamento basato sulla memoria
(memory-based reasoning).
I modelli K-NN sono facilmente comprensibili in presenza di poche variabili
indipendenti. Sono utili anche alla costruzione di modelli che implicano tipi di
dati non standard, come il testo. L'unico requisito per trattare un certo tipo di dato
è che esista una metrica appropriata su tale tipo di dato.
4.6 Clustering demografico
Nel clustering demografico l’algoritmo di data mining, durante la sua esecuzione,
crea nuovi segmenti secondo il criterio che segue. Quando si presenta in input un
record, si verifica che esso sia compatibile con almeno uno dei cluster già
54
esistenti, e se ciò non accade viene creato un nuovo segmento dove il record viene
inserito. Tale verifica è eseguita secondo un certo misura di distanza tra il record
in questione ed i record appartenenti ai diversi segmenti.
La tecnica del clustering demografico si basa su un semplice principio di
votazione, chiamato Condorcet, che misura la distanza tra i record di input per
poterli assegnare ai cluster appropriati. Ogni record è contenuto in uno ed un solo
cluster.
Coppie di record vengono comparate secondo i valori dei campi individuali. Il
numero di campi che hanno valori simili determina il loro livello di similarità. Il
numero di campi che hanno valori diversi determina il loro livello di diversità. Per
variabili non categoriche tale similarità è espressa attraverso un certo numero di
intervalli: se due campi hanno valori dentro lo stesso intervallo, allora sono simili,
altrimenti no. Quando una coppia di record ha lo stesso valore per lo stesso campo
(oppure, nel caso di variabili non categoriche, ha valori simili per quel campo),
quest’ultimo prende il voto +1, altrimenti prende –1.
Infine, il punteggio complessivo è calcolato come la somma dei punteggi a favore
e contro l’inserimento del record in un dato cluster. L’idea di base è che un record
viene assegnato ad un certo cluster se il suo punteggio complessivo è maggiore
rispetto al punteggio che avrebbe avuto in qualunque altro cluster. Se il punteggio
complessivo risulta negativo per tutti i cluster, il record è un candidato per essere
posto in un suo nuovo cluster, che viene creato. Quando si verifica ciò, bisogna
ricalcolare il punteggio di tutti gli altri record rispetto a questo nuovo cluster e, se
qualche record risulta avere un punteggio maggiore rispetto al precedente, viene
spostato nel nuovo cluster.
Il clustering demografico fornisce un veloce e naturale partizionamento di grandi
databases. Una volta che si sono formati dei cluster sufficientemente grandi, la
decisione di dove mettere un nuovo record non viene presa comparando ogni
campo del record con ogni campo di tutti i record di tutti i cluster. Piuttosto, per
ciascun cluster si assegnano dei valori, uno per ogni campo di un generico record,
che rappresentano le distribuzioni dei valori di ciascun campo calcolate su tutti i
record contenuti nel cluster. Il confronto avviene tra i campi del nuovo record e
questi valori.
A differenza del clustering neurale, che è adatto soltanto a dati numerici, il
clustering demografico è particolarmente adatto per dati categorici, specialmente
se il numero di categorie è basso. Inoltre esso può anche trattare variabili non
categoriche, ed in tal caso l’analista deve stabilire delle tolleranze a priori.
L’algoritmo usa tali tolleranze per determinare le similarità o le differenze tra due
variabili. Valori all’interno delle tolleranze registrano un voto di uguaglianza a
favore, mentre valori al di fuori delle tolleranze registrano un voto contro.
La misura di similarità in questo caso non è un semplice valore binario (0,1), ma
varia da 0 a 1. Zero indica valori lontani, 1 indica valori identici, 0.5 indica che i
valori sono separati esattamente dal valore della tolleranza.
55
4.7 Funzioni a base radiale
Il metodo delle funzioni a base radiale (RBF, radial basis functions) è una nuova
tecnica per la predizione di valori che si è dimostrata più robusta e flessibile del
approccio tradizionale della regressione, lineare e non lineare. Il metodo RBF
lavora ricorrendo non ad una singola funzione non lineare ma ad una somma
pesata di molte funzioni non lineari, dette appunto funzioni a base radiale. Una
funzione a base radiale è una funzione non lineare di distanza da un centro ed è
per questo motivo che è detta " a base radiale" : essa assume lo stesso valore per
ogni punto con la stessa distanza o raggio dal centro. Le RBF distinguono delle
regione nello spazio delle variabili indipendenti (input), in ognuna delle quali le
variabili dipendenti assumono quasi gli stessi valori. Per ogni regione ottenuta
viene costruito un centro che predice il valore medio della regione.
Terminato di costruire il modello su valori noti delle variabili dipendenti, lo si può
sfruttare per la predizione vera e propria: per ogni nuovo tupla di variabili
indipendenti vengono predetti i valori delle variabili dipendenti tramite una media
pesata delle predizioni di tutti i centri, dove il peso di ogni centro decade
rapidamente se il centro è molto distante dalla tupla stessa.
4.8 Algoritmi genetici
Gli algoritmi genetici non vengono impiegati nella ricerca diretta di patterns, ma
piuttosto nella guida del processo di apprendimento dei metodi di data mining,
come le reti neurali [19]. Essenzialmente essi agiscono come un metodo di ricerca
guidata di buoni modelli nello spazio delle soluzioni.
Sono detti genetici perché essi seguono vagamente il comportamento
dell'evoluzione biologica, nel quale i membri di una generazione (di modelli)
entrano in competizione per passare le proprie caratteristiche alla prossimo
generazione, finché non viene trovato miglior modello.
Ad esempio nella costruzione di una rete neurale, gli algoritmi genetici possono
sostituirsi al backpropagation nella regolazione dei pesi. I cromosomi in questo
caso conterranno i pesi.
Oppure gli algoritmi genetici possono essere usati per trovare la migliore
architettura della ret e i cromosomi conterranno il numero di strati nascosti e di
nodi per ogni strato.
Se da un lato gli algoritmi genetici sono un interessante approccio per
l'ottimizzazione dei modelli, dall'altro aggiungono un surplus computazionale.
56
4.9 Regressione logistica (logistic regression)
La regressione logistica è una generalizzazione della regressione lineare. È usata per la
predizione di una variabile binaria; poiché la variabile dipendente è binaria non si può
ricorrere direttamente alla regressione lineare.
Perciò piuttosto che predire se l'evento stesso (la variabile dipendente) accadrà, si
costruisce il modello usando il logaritmo della probabilità (odds) della sua presenza.
Questo logaritmo è detto in inglese log odds.
Come per le reti neurali, la regressione logistica diventa uno strumento di classificazione
quando viene usato per predire variabili categoriche come ad esempio se una persona
probabilmente compri o non compri, diventa invece uno strumento di regressione quando
viene usato per predire variabili continue come la probabilità che una persona farà un
acquisto.
Se da un lato la regressione logistica è uno strumento di modellazione molto potente,
dall'altro necessita l'assunzione che la variabile dipendente (il log odds, non l'evento
stesso) sia lineare nei coefficienti delle variabili predittrici. Inoltre, il modellista
basandosi sull'esperienza coi dati e l'analisi di essi, deve scegliere le variabili predittrici
corrette e specificare la loro relazione funzionale con la variabile dipendente (ad esempio
dovrà scegliere tra il guadagno, la sua radice quadrata o il suo logaritmo). Deve anche
esplicitamente trasformare ogni possibile interazione in variabile predittrice. In definitiva
il modellista deve essere in grado di ricercare le giuste variabili, trovare le loro
espressioni rendere conto delle loro possibili interazioni: tutto questo richiede
effettivamente molto abilità e esperienza da parte dell'analista.
Le reti neurali, d'altro canto, usano gli strati nascosti per valutare le forme dei termini e
interazioni non lineari in modo semi-automatico. Gli utenti hanno bisogno di un insieme
differente di competenze analitiche allo scopo di impiegare con successo le reti. La scelta
della funzione di attivazione influisce sulla velocità di apprendimento della rete: lo stesso
ruolo lo gioca nella regressione logistica la trasformazione della variabile dipendente, ed
è questa la principale ragione per cui una rete neurale senza strati nascosti è equivalente
alla regressione logistica.
4.10 Analisi discriminante
L'analisi discriminante è la più vecchia tecnica di classificazione, la prima
pubblicazione è del 1936. Essa trova gli iperpiani che separano le classi. Il
modello che ne risulta è semplice da interpretare poiché l'unica cosa che bisogna
determinare è da quale parte dell'iperpiano giace un punto. L'addestramento è
semplice e scalabile e la tecnica è molto sensibile ai patterns nascosti nei dati. È
molto usata in medicina, nelle scienze sociali e in biologia, non è invece diffusa
nel data mining per tre motivi principali.
Primo, l'analisi discriminante assume che ogni variabile predittrice sia distribuita
normalmente. Secondo, le variabili predittrici categoriali non ordinali (ad es.,
57
rosso/blu/verde) non possono essere assolutamente usate. Terzo, i confini che
separano le classi hanno solo la forma lineare, ma spesso i dati non possono essere
separati in questa maniera.
Le versioni recenti dell'analisi discriminante risolvono alcuni dei precedenti
problemi realizzando i confini con funzioni quadratiche oltre che lineari,
aumentando significativamente la sensibilità in taluni casi. Altre tecniche
permettono di sostituire la normalità delle variabili indipendenti con una stima
della distribuzione reale (cioè si può rimpiazzare la curva normale teorica
con l'istogramma delle variabili).
4.11 Modelli additivi generalizzati (General Additive
Models, GAM)
Sono modelli che estendono sia il modello lineare sia la regressione logistica.
Sono detti additivi perché si assume che il modello può essere scritto come la
somma di funzioni anche non lineari, una per ogni variabile predittrice. Il modello
GAM può essere usato per la regressione e la classificazione con risposta binaria.
La principale caratteristica in più è che viene rimossa l'ipotesi di linearità. La
variabile di uscita potrebbe essere virtualmente qualsiasi funzione del predittore
finché non ha passi discontinui. Per esempio, si supponga che i mancati pagamenti
siano una funzione piuttosto complicata del guadagno, e inizialmente decresca
all'aumentare del guadagno. Successivamente incomincia ad aumentare per
guadagni medio-bassi, infine raggiunto il picco tende a scendere per guadagni
elevati. In questo caso un modello lineare fallirà se vuole descrivere la relazione
tra mancanza di pagamenti e guadagni a causa del comportamento non lineare. Il
GAM, sfruttando la potenza computazionale al posto della teoria e della
conoscenza sulla forma della funzione, produrrà una curva sufficientemente
regolare che descrive la precedente relazione. La più diffusa procedura di
valutazione è la backfitting (adattamento all'indietro). Invece di stimare un gran
numero di parametri, come fa la rete neurale, il GAM va oltre stimando il valore
di uscita per ogni valore di ingresso — ad un punto una stima. Come per le reti
neurali il GAM genera automaticamente una curva, fissando la complessità sulla
base dei dati.
4.12 Multivariate
(MARS)
Adaptive
Regression
Splines
A metà degli anni 80 si sviluppò un metodo progettato per superare i problemi del
CART.
Le principali imperfezioni che si eliminarono furono:
- Predizioni discontinue (o hard splits).
58
-
Dipendenza di tutte le divisioni da quelle precedenti.
Interpretabilità ridotta a causa delle interazioni, specialmente interazioni di
alto livello.
Nacque così l'algoritmo MARS. L'idea base del MARS è molto semplice, mentre
l'algoritmo stesso è piuttosto complesso. Molto brevemente si affrontano i difetti
del CART nelle seguenti maniere:
Rimpiazzando la diramazione discontinua in un nodo con un transizione continua
modellata da una coppia di linee rette. Alla fine del processo di costruzione del
modello, le linee rette in ogni nodo sono sostituite con una funzione più regolari
(smooth) dette spline.
Imponendo che le nuove divisioni non dipendano dalla precedenti.
Sfortunatamente ciò comporta che il MARS perda la struttura ad albero del CART
e che non produca più le regole. D'altro canto. il MARS automaticamente trova ed
elenca le più importanti variabili predittrici oltre alle interazioni tra esse. Il MARS
inoltre traccia la dipendenza della risposta da ogni predittore. Il risultato è un
strumento di regressione non lineare, graduale, automatico.
Il MARS, alla pari di molti algoritmi per reti neurali e per gli alberi di
classificazione, ha la tendenza a superadattarsi ai dati di addestramento. Ciò può
essere superato in due modi: primo, si può ricorrere a validazioni incrociate
(cross-validation) manuale in modo da regolare l'algoritmo allo scopo di fornire
buone predizioni sull'insieme di testing; secondo, sono presenti nell'algoritmo
stesso vari parametri di regolazione (tuning) che possono dirigere la validazione
incrociata interna.
4.13 Visualizzazione
La visualizzazione dei dati (data visualization) è usato molte volte insieme con gli
strumenti per il data mining [24]. L'importanza della visualizzazione per l'analisi
efficace dei dati non può essere accentuata eccessivamente. Se i modelli statistici
e le analisi di verifica sono essenziali per la produzione dell'analisi dei dati, è
tuttavia la visualizzazione dei dati nella maggioranza dei casi a fornire quella
chiarezza necessaria alla comprensione dei risultati ottenuti. E tanto più complessi
sono i patterns individuati e più potenti e raffinati devono essere gli strumenti per
visualizzarli.
La visualizzazione funziona bene perché la grafica trasmette più informazione
rispetto al testo e ai numeri. Patterns, relazioni, valori fuori dalla norma e valori
mancanti sono più facilmente percepibili quando vengono mostrati graficamente
invece che come una lista di frasi e di numeri.
59
Il fatto che i modelli hanno molte dimensioni o variabili è un problema nell'uso
della visualizzazione, perché si è limitati a mostrare tutte queste dimensioni solo
nelle due dimensioni dello schermo del computer e dei fogli. Di conseguenza gli
strumenti di visualizzazioni devono ricorrere a rappresentazioni intelligenti per
proiettare n dimensioni in solo due.
Gli utenti daltonici o le persone che non hanno dimestichezza con le
rappresentazioni spaziali potrebbero incontrare difficoltà con gli strumenti di
visualizzazione. Inoltre, se da un lato la visualizzazione comunica una gran
quantità di informazione, dall'altro richiede una preparazione ed un'abitudine alla
lettura e all'interpretazione delle rappresentazioni grafiche.
60
INDICE GENERALE
1
IL DATA MINING .............................................................................. 1
1.1
Tradizione.............................................................................................................................1
1.2
Nuove Tecniche ....................................................................................................................1
1.3
Definizione di Knowledge Discovery in Databases e Data Mining...................................3
1.4
Data mining: Cosa non può fare .........................................................................................5
1.5
Data mining e data warehousing ........................................................................................6
1.6
Data mining e OLAP..........................................................................................................10
1.7
Data mining, machine learning e statistica ......................................................................12
1.8
Data mining e gli andamenti dell'hardware/software.....................................................13
1.9
Applicazioni del data mining.............................................................................................14
1.10
Quando è vantaggioso applicare il data mining? .......................................................19
1.11
Il successo del data mining...........................................................................................19
1.12
Ostacoli e sfide per il data mining ...............................................................................20
1.13
Evoluzione futura .........................................................................................................22
2
IL PROCESSO DELLA SCOPERTA DELLA CONOSCENZA ....... 22
3
TIPI DI MODELLI ............................................................................ 31
3.1
Introduzione ai modelli......................................................................................................31
3.2
Classificazione ....................................................................................................................32
3.3
Regressione e previsione ....................................................................................................33
3.4
Clustering (analisi dei gruppi) ..........................................................................................33
3.5
Analisi dei legami (link analisys) ......................................................................................34
61
4
DATA MINING: STRUMENTI E TECNOLOGIE.............................. 40
4.1
Reti Neurali.........................................................................................................................40
4.2
Algoritmo Apriori: un algoritmo per la scoperta di regole di associazione ..................48
4.3
Alberi di decisione (decision trees) ...................................................................................50
4.4
Induzione di regole.............................................................................................................53
4.5
K-nearerest neighbour e ragionamento basato sulla memoria ......................................53
4.6
Clustering demografico .....................................................................................................54
4.7
Funzioni a base radiale ......................................................................................................56
4.8
Algoritmi genetici...............................................................................................................56
4.9
Regressione logistica (logistic regression) ........................................................................57
4.10
Analisi discriminante....................................................................................................57
4.11
Modelli additivi generalizzati (General Additive Models, GAM) ............................58
4.12
Multivariate Adaptive Regression Splines (MARS) ..................................................58
4.13
Visualizzazione..............................................................................................................59
62