data mining
loc. inglese (propr. escavazione di dati) usata in italiano come sm. Le attività e gli strumenti necessari per ricavare informazioni da un insieme di dati non organizzato. Obiettivo del data mining (DM) è l'estrazione di informazione implicita, utile e non precedentemente nota dai dati a disposizione. In particolare il suo scopo è quello di analizzare, in modo automatico, grosse quantità di dati per individuarne le occorrenze (pattern) e cogliere le interrelazioni fra fenomeni in modo da esprimerle come regole. Il rilevamento può avvenire secondo due modelli: di verifica e di scoperta. Il primo (verification model) prevede che l'utente fornisca, attraverso input al sistema, un'ipotesi e gli chieda di verificarne la validità. In questo caso il sistema non estrae informazioni, ma verifica ipotesi. Il modello di scoperta, invece, presuppone che il sistema individui in modo autonomo informazioni nascoste nei dati a disposizione, senza intervento esterno. Per esempio dall'osservazione di dati meteorologici di una certa zona si potrebbe dedurre la seguente regola di previsione (R1): "Se (la sera ci sono le nubi e la temperatura è circa 15 gradi centigradi) allora la notte pioverà". In effetti R1 è un'informazione presente nei dati a disposizione, ma solo implicitamente perché non è nota prima dell'attività di data mining, ma una volta conosciuta può essere utilizzata nelle previsioni. In sintesi, dunque, il data mining non crea una nuova informazione, ma rende esplicita quella presente nei dati attraverso un data miner, programma che esplora il contenuto di un data base con l'obiettivo di estrarre regolarità o pattern. Può accadere che il DM identifichi regole inutili o false o debba fare fronte all'assenza o all'inesattezza di dati. Le regole inutili sono quelle derivate da fenomeni che, pur presentendosi contemporaneamente, non sono legati da nessi causali. Le regole false sono in generale la conseguenza della presenza di dati spuri, magari rilevati in condizioni eccezionali. È anche possibile che l'insieme di dati disponibile sia insufficiente, o viziato da interferenze, per estrarre regole. I dati su cui opera un data miner sono in genere organizzati in una tabella T con m righe (per gli esempi noti) e n colonne (per gli attributi). Gli elementi di T possono essere numerici oppure no. Per convenzione si assume che l'ultima colonna di T, cioè l'attributo n, sia quello che si vuole predire (classificare). Il problema del data mining può essere allora formulato come segue: data T, trovare una funzione classificatore (f) tale che "per molti esempi" t, T[t, n]=f(T[t, 1],...,T[t, n-1]). Una volta determinata f (fase di training), l'implementazione della stessa (fase di esercizio) in un opportuno linguaggio di programmazione non presenta difficoltà. Nel caso in cui tutti gli elementi della tabella T siano numerici, il calcolo di f (classificatore) viene tipicamente eseguito utilizzando i metodi della statistica, altrimenti è possibile impiegando le tecniche di machine learning (apprendimento automatico). Lo stesso problema, spesso, può essere trattato secondo entrambi i metodi. Sia il machine learning sia i metodi statistici partono da un insieme di esempi (dati di training) per generare il classificatore, differendo però nella sua rappresentazione. I metodi di machine learning rappresentano il classificatore usando un modello formale vicino alla programmazione, mentre i metodi statistici ricorrono a funzioni matematiche. Un altro metodo di machine learning usa, per rappresentare il classificatore, programmi strutturati come un albero di decisione (decision tree), organizzato in nodi e archi. I nodi non terminali sono contrassegnati dagli attributi della tabella T; quelli terminali dall'attributo che si vuole predire (l'ultimo attributo della tabella T). Gli archi sono contrassegnati con i valori dell'attributo etichetta per il nodo sorgente dell'arco. I metodi statistici assumono che tutti gli attributi siano di tipo numerico, per questo anche attributi non numerici sono trasformati in numerici usando opportune tecniche. In questi casi è possibile usare metodi di tipo statistico per calcolare f a partire da T. Per esempio, se si vuole predire il valore dell'attributo n-esimo in funzione degli altri si cercano coefficienti a[1], a[2], ..., a[n-1] tali che "per molti esempi” t sia T[t, n] = a[1]*T[t, 1] + ... a[n-1]*T[t, n-1]. Il metodo per determinare i coefficienti a[1], a[2], ..., a[n-1] viene detto regressione lineare e l'equazione T[t, n] = a[1]*T[t, 1] + ..., a[n-1]*T[t, n-1] equazione di regressione. Usando la regressione, si assume che f possa essere bene approssimato tramite una funzione lineare. Quando questa ipotesi è falsa, è necessario adoperare altri metodi, per esempio di regressione non lineare, oppure, specie nel trattamento dei segnali a valori continui, le reti neurali (neural networks), tipica tecnica a metà strada tra metodi di machine learning e metodi statistici. Una rete neurale con r unità di input e s unità di output viene addestrata per mezzo di una tabella di r+s colonne (attributi) di cui i primi r rappresentano gli inputs (dell'esempio di training) e gli ultimi s rappresentano la classificazione (dell'esempio di training). Il training della rete neurale consiste nell'aggiustare i pesi delle connessioni fra i nodi in modo che, su "molti" degli esempi di training, l'output della rete sull'input dell'esempio differisca "di poco" dalla classificazione data nell'esempio. Al termine dell'addestramento la rete neurale può essere usata come classificatore per gli r attributi di input. Il DM è utilizzato prevalentemente nell'ambito delle aziende commerciali e in genere i dati da analizzare sono spesso contenuti in un data warehouse, che è un sistema adatto alla conservazione di grosse quantità di dati di tipo storico (archivi dei clienti e dei loro ordinativi negli ultimi anni). Si può utilizzare un tale approccio per identificare in un data warehouse aziendale gruppi di clienti per una campagna pubblicitaria. Tale ricerca viene effettuata dal sistema senza formulare alcuna ipotesi: il sistema cercherà autonomamente di raggruppare i clienti in base a caratteristiche comuni che esso stesso individuerà.