Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Sistemi Informativi Data Mining applicato ai sistemi informativi, una panoramica dei principali algoritmi Studenti: Massimo Manara 656814 Andrea Gobbi 651008 Docente del corso: Enrico Spoletini Anno Accademico 2005/2006 . . Indice 3 Indice 1 Introduzione 4 2 Cosa è il Data Mining 2.1 Un pò di storia . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Interdisciplinare . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Il processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 6 3 Alcune tecniche 3.1 Mining association rules 3.2 Alberi di decisione . . . 3.3 GA - Algoritmi genetici 3.4 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 9 10 10 12 4 CRM - Customers Oriented 14 5 Quali standard 15 6 E la Privacy? 16 A Articolo 17 A.1 Il data mining non serve per sconfiggere il terrorismo, ma si diffonde in Usa. . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Bibliografia 20 4 1 Introduzione 1 Introduzione In ogni momento della nostra giornata siamo assaliti da moltissimi dati ed informazioni è importante tuttavia definire nel modo più chiaro possibile la distinzione tra dato ed informazione: • Dato1 : è qualcosa che possiamo vedere, ascoltare; per fare un esempio, un dato può essere un libro. • Informazione2 : l’informazione, ci dà qualcosa in più sul dato; nell’esempio fatto prima l’informazione del dato libro potrebbe essere il titolo, l’editore, il numero di pagine del libro [7]. Il data mining è un processo tramite il quale è possibile sapere sulla base di molti dati gli andamenti delle vendite, delle offerte; nel caso di un supermercato. Questa tecnica, può inoltre essere applicata a moltissimi campi; ed a sua volta fà uso di moltissime discipline: matematica, statistica, chimica, fisica, economia. . . Il data mining può essere visto come il naturale sviluppo dell’IT, inoltre deve essere visto come risultato di un process. 1 Per dato nella legge italiana, si intende informazione codificata da un pc. Per informazione nella legge italiana, si intende delle informazioni non contenute all’interno del pc. 2 2 Cosa è il Data Mining 2 5 Cosa è il Data Mining Traducendo letteralmente il termine, si trova: miniera di dati; interpretando il termine nel contesto informatico, si può capire come questa sia la base di partenza di un processo che prende il nome di data mining. In altre parole, è un processo attraverso il quale è possibile grazie ad una quantità notevole di dati e attraverso particolari algoritmi, estrarre delle informazioni nascoste: estrarre la conoscenza; knowledge [1]. 2.1 Un pò di storia Figura 1: L’evoluzione della tecnologia dei database 2.2 Interdisciplinare Le tecniche di data minig, possono essere applicate in moltissimi ambiti: ambito biomedico e DNA analysis, analisi finanziarie, telecomunicazioni. . . a 6 2 Cosa è il Data Mining sua volta la tecnica di DM, si basa molte altre discipline. Alcuni esempi: • Data Mining – Database technology – Informatica – Statistica – Tecniche di visualizzazione dei dati – Machine Learning (apprendimento automatico); infatti, l’identificazione di pattern può paragonarsi all’apprendimento, da parte del sistema data mining, di una relazione causale precedentemente ignota, cosa che trova applicazione in ambiti come quello degli algoritmi euristici e della intelligenza artificiale [4]. – Altre 2.3 Il processo Il processo di data mining è formato da varie fasi: • Data Cleaning In applicazioni reali, è difficile a volte riuscire a definire con precisione e con completezza le informazioni; consideriamo per esempio il caso di un database contenente dati identificativi di persone; non è detto che conosca tutti i dati di tutti i record. Come sopperire a questo problema: – Tuple Ignorate – Uso di attributi per completare quelli mancanti – Usare il valore più probabile per completare quello mancante – Correzione dei dati inconsistenti, riferimenti esterni. • Data Integration Sempre più spesso, ed anche per motivi di prestazioni, i database sono distribuiti; progettati su piattaforme uguali, in questo caso non ci sono problemi o su piattaforme diversificate ed in questo caso possono sorgere problemi di integrazione appunto. Per risolvere questo problema, vanno considerati anche aspetti come la ridondanza3 delle informazioni al fine di ridurre al minimo sprechi 3 Si intende un dato che può essere ricavato da altre tabelle 2 Cosa è il Data Mining 7 e perdita di prestazioni. Questi dati ridondanti possono essere trovati grazie ad una analisi di correlazione: rA,B P (A − Ā) · (B − B̄) = (n − 1)σa σB (1) dove con n, si indica il numero di tuple, con Ā e B̄ il significato4 e σA , σB , la deviazione standard5 . Se il risultato dell’equazione (1) è maggiore di 0 allora A e B sono correlati; cioè se cresce il valore di A anche B cresce. Se il valore è zero allora A e B sono indipendenti; mentre se il risultato è minore di zero A e B sono correlati negativamente, cioè se A cresce, B diminuisce. • Data Trasformation In questa fase si cerca di trasformare o consolidare i dati affinché la forma di questi sia la più adatta alla applicazione degli algoritmi. In genere si procede in vari passi: – Caratteristiche comuni (Smoothing): cluster, cioè avere gruppi di dati con caratteristiche comuni vedi Figura 2 a Pagina 7 Figura 2: Cluster Analisi 4 Significato: X A Ā = n . 5 Deviazione standard: sX (A − Ā)2 σA = n−1 8 3 Alcune tecniche – Aggregazione: raggruppare i dati per mese di vendita ad esempio, per anno per settimana (Usato nella Data-Cube analisys, raggruppare dati secondo delle direzioni rappresentate sul cubo). – Generalizzazione: dividere i dati in livelli di importanza, es. città, via, numero civico. . . – Costruzione di attributi: per favorire il processo di ricerca, aggiungere nuovi attributi se necessario • Data Mining L’algoritmo usato viene eseguito su i dati al fine di produrre i risultati. • Pattern evaluation Al fine di valutare se il pattern è valido, si cerca di rispondere alle seguenti domande: capire se è di facile lettura per l’uomo, se sono interessanti tutti i patterns oppure solo alcuni; nella maggior parte dei casi solo alcuni. La risposta a queste domande è definita con una probabilità rappresentata dai concetti di supporto e confidenza [5]. Definiti come: – supporto(X ⇒ Y ) = P (X ∪ Y ). – conf idenza(X ⇒ Y ) = P (Y |X). Il primo rappresenta la percentuale di transazioni dove sono contenute sia X che Y ; mentre il secondo rappresenta la probabilità che una transazione che contiene X, contenga Y. Un esempio si può ottenere sostituendo ad X e Y dei valori ad esempio X = birra, Y = pannolini. 3 Alcune tecniche Esistono parecchi modi di analizzare i dati al fine di giungere a delle conclusioni; molti algoritmi già esistenti e molti studi ancora sono in continuo sviluppo per cercarne di nuovi e migliorarne, ottimizzarne altri. Alcuni di questi sono: • Mining Association rules Applicata soprattutto nella MBA: Market basket Analysis • Classification and Prediction Fanno parte di questa categoria i metodi Bayesiani, i GA Genetic Algorithms, approcci Fuzzy • Cluster Analysis 3 Alcune tecniche 3.1 9 Mining association rules Come già accennato questa tecnica viene usata nella Market Basket Analysis, la quale cerca di dare una risposta alla domanda Quale oggetti sono acquistati insieme da un acquirente? Tabella 1: Base di dati per “basket analysis” Transazione 1 1 2 2 2 3 4 4 Data Oggetto 17/12/98 pantaloni-sci 17/12/98 scarponi 18/12/98 maglietta 18/12/98 giacca 18/12/98 stivali 18/12/98 giacca 19/12/98 giacca 19/12/98 maglietta Qta 1 1 1 1 1 1 1 3 Prezzo 140 e 180 e 25 e 300 e 670 e 300 e 300 e 25 e Questa tecnica si basa sull’uso dei concetti di supporto e confidenza presentati nella Sezione 2.3 a Pagina 6. Tabella 2: Regole di associazione Testa pantaloni-sci scarponi ... giacche magliette,stivali ... a b Corpo scarponi pantaloni-sci ... magliette giacche ... Supporto Confidenza 0.25a 1 0.25 1 ... ... 0.5 0.66b 0.25 1 ... ... Numero di transazioni dove c’è sia il corpo che la testa diviso il numero di transazioni totale; vedi Tabella 1 a Pagina 9 Numero di transazioni dove c’è sia il corpo che la testa diviso il numero di transazioni dove è presente il corpo vedi Tabella 1 a Pagina 9 10 3 Alcune tecniche 3.2 Alberi di decisione Un albero di decisione è un diagramma simile ad una struttura ad albero (vedi Figura 3 a Pagina 10), dove ogni nodo ha al suo interno ha un test su un attributo ed ogni scelta, rappresenta un risultato del test; le foglie dell’albero rappresentano la classe o le classi di distribuzione. Questo algoritmi si basa sulla tecnica greedy. Figura 3: Albero di decisione La Figura 3 mostra l’albero delle decisioni del concetto di acquirenti di computer; indica se una persona in base all’età compra o meno un pc. Il percorso nodo radice, foglia, risulta essere la classe di previsione. 3.3 GA - Algoritmi genetici Questo tipo di algoritmi, si basa sull’idea dell’evoluzione naturale. In generale l’evoluzione comincia come: • Popolazione iniziale Creata con delle regole generate in modo casuale; ogni regola può essere rappresentata da una stringa di bit. Consideriamo ad esempio, due attributi booleani A1 , A2 e due classi, C1 , C2 . La regola: if {A1 && (not A2 )} then C2 3 Alcune tecniche 11 possa essere rappresentata dalla stringa di bit “100” dove i primi due bit rappresentano A1 , A2 mentre l’ultimo bit rappresenta C2 . Un altro esempio: if {not A1 && (not A2 )} then C1 può essere codificato con la stringa di bit “001”. Se ho una variabile k dove k > 2, allora si useranno k bit per rappresentarla. Dalla nozione di sopravvivenza, una nuova popolazione è formata da tutta una serie di regole. In genere la forma di una regola è valutata sulla base di un insieme semplice. I figli, sono creati attraverso il crossover; vengono prese un paio di regole e modificate, scambiate (swapped ) per formare un nuovo paio di regole. Mentre con la fase di mutazione, vengono scelti dei bit in una regola ed in modo aleatorio vengono invertiti. Questo processo di evoluzione continua affinché la popolazione non è diventata della misura voluta. In genere questi tipi di algoritmi applicati all’ottimizzazione dei problemi. Mentre nella data mining possono venire applicati per valutare la forma di altri algoritmi. Figura 4: Evoluzione 12 3.4 3 Alcune tecniche Software Figura 5: Progetto Weka Weka è una collezione di machine learning algorithms per il data mining. Questo programma è scritto in Java, e tramite questo linguaggio è possibile richiamare dei dataset su cui applicare gli algoritmi. Weka contiene degli strumenti per il pre-processing dei dati, per la classificazione, per il clustering e l’associazione di regole. Figura 6: Screenshot Weka Questo software è stato sviluppato dall’università di Waikato [6]. 3 Alcune tecniche 13 Il secondo software che presentiamo è una suite commerciale di Microsoft: Microsoft Dynamics. È un software che permette di gestire una organizzazione nel suo insieme, fornendo anche un supporto per il data mining [9]. Figura 7: Microsoft Dynamics Altri vendors nel campo del data mining sono: • SAS • Oracle – Integrazione del data mining nei database • Angoss – Una delle prime applicazioni per il data mining • HNC – Fornisce delle soluzioni mirate e specifiche • Unica 14 4 CRM - Customers Oriented 4 CRM - Customers Oriented Le applicazioni di Customer Relationship Management (CRM) sono essenziali per acquisire e mantenere le relazioni con il Cliente. Includono aspetti di marketing automation, sales force automation. Questo tipo di applicazioni risultano fortemente strategiche per la sopravvivenza del business. L’azienda ricorre alle soluzioni Customer Relationship Management per migliorare la qualità e l’accessibilità delle informazioni attraverso una loro gestione ottimale, il tutto in un’ottica customer-centric. Il concetto che sta alla base del Customer Relationship Management si riassume brevemente nella capacità di raccogliere e gestire in modo appropriato la conoscenza (da con confondere con “informazione”) relativa ad un cliente o ad un gruppo di clienti che l’azienda già possiede all’interno della sua struttura ma che non usa in modo appropriato per incrementare la Customer Satisfaction come mezzo per raggiungere un’elevata Customer Retention6 . In altre parole, le aziende tramite il data mining come supporto dei CRM, possono sapere molte informazioni, per esempio, le preferenze di acquisto dei loro clienti e quindi fornire un prodotto più mirato alle loro esigenze. 6 Tenere i clienti soddisfatti; in altre parole non perdere clienti. 5 Quali standard 5 15 Quali standard • Predictive Model Markup Language7 (PMML) – Data Mining Group [10] – basato su XML (DTD) • Java Data Mining API(JSR-000073)8 – Oracle, Sun, IBM. . . – Supporto per data mining APIs su piattaforme J2EE – Costruzione, gestione, attività programmate [11] • OLE9 database a supporto del Data Mining – Basati su tabelle – Microsoft – PMML In genere alcune applicazioni si basano su più standard per essere più produttive. 1 3 5 7 9 11 13 15 17 19 21 <? xml version = " 1.0 " ? > <! DOCTYPE PMML [ <! ELEMENT MapValuesPair EMPTY > <! ATTLIST MapValuesPair column CDATA # REQUIRED in CDATA # REQUIRED out CDATA # REQUIRED > ]> < PMML version = " 2.0 " > < Header copyright = " Copyright ( c ) 2001 , Oracle Corporation . All rights reserved . " > < Application name = " Oracle 9 i Data Mining " version = " 9.2.0 " / > </ Header > < Itemset id = " 1 " support = " 0.033 " numberOfItems = " 1 " > < ItemRef itemRef = " 2 " / > </ Itemset > < AssociationRule support = " 0.033 " confidence = " 0.121951 " antecedent = " 5 " consequent = " 170 " / > < AssociationRule support = " 0.033 " confidence = " 0.185185 " antecedent = " 170 " consequent = " 5 " / > </ As soc iati onMo del > </ PMML > Codice 1: Esempio PMML 7 Predictive Model Markup Language (PMML) è un linguaggio basato su XML che descrive modelli statistici e di data mining. 8 È uno standard Java che permette di comunicare con altri standard ad esempio PMML. 9 Object Linking and Embedding 16 6 6 E la Privacy? E la Privacy? In Italia esiste la legge 31 dicembre 1996, n. 675: “Tutela delle persone e di altri soggetti rispetto al trattamento dei dati personali”, pubblicata nella Gazzetta Ufficiale n. 5 dell’8 gennaio 1997 - Supplemento Ordinario n. 3; la quale regola il trattamento dei dati personali. È stata puoi riunita con il decreto legislativo n◦ 196 del 30 giugno 2003 che ha fornito un Testo Unico per la privacy (L. 675/96, DPR 318/99). Ad esempio nel CAPO 3, Sezione 1, Art. 9: 1. I dati personali oggetto di trattamento devono essere: (a) trattati in modo lecito e secondo correttezza; (b) raccolti e registrati per scopi determinati, espliciti e legittimi, ed utilizzati in altre operazioni del trattamento in termini non incompatibili con tali scopi; (c) esatti e, se necessario, aggiornati; (d) pertinenti, completi e non eccedenti rispetto alle finalità per le quali sono raccolti o successivamente trattati; (e) conservati in una forma che consenta l’identificazione dell’interessato per un periodo di tempo non superiore a quello necessario agli scopi per i quali essi sono stati raccolti o successivamente trattati. Un altra importante parte è quella del consenso. Abbiamo aggiunto questa sezione sulla privacy in quanto è importante sapere che dati si stia trattando, a volte questo aspetto viene sottovalutato, a discapito delle persone e delle norme vigenti. A Articolo A 17 Articolo A.1 Il data mining non serve per sconfiggere il terrorismo, ma si diffonde in Usa. Nel mondo post-11 settembre si presta molta attenzione a unire i punti. Molti credono che il data mining sia la sfera di cristallo che ci permetterà di svelare future trame terroristiche Nel mondo post-11 settembre si presta molta attenzione a unire i punti. Molti credono che il data mining sia la sfera di cristallo che ci permetterà di svelare future trame terroristiche. Ma anche nelle proiezioni più sfrenatamente ottimistiche, il data mining non è sostenibile per tale scopo. Non stiamo barattando la privacy per la sicurezza; stiamo rinunciando alla privacy senza ottenere in cambio alcuna sicurezza. Moltissime persone scoprirono per la prima volta in che cosa consiste il data mining nel novembre 2002, quando fece notizia un massiccio programma governativo di data mining chiamato Total Information Awareness. L’idea di fondo era audace quanto ripugnante: raccogliere quanti più dati possibile su chiunque, passarli al vaglio grazie a potentissimi calcolatori, e investigare quei pattern, quelle ricorrenze che potrebbero indicare trame terroristiche. Gli americani di ogni credo politico denunciarono il programma, e nel settembre 2003 il Congresso ne eliminò i fondi e ne chiuse gli uffici. Ma Total Information Awareness non scomparve. Secondo The National Journal cambiò semplicemente nome e fu spostato all’interno del Dipartimento della Difesa. Ciò non dovrebbe sorprendere. Nel maggio 2004, il General Accounting Office pubblicò un rapporto che elencava 122 diversi programmi di data mining varati dal governo federale che si servivano delle informazioni personali dei cittadini. Tale lista non comprendeva i programmi segreti, come le intercettazioni della NSA o programmi a livello statale come MATRIX10 . La promessa del data mining è avvincente, e molti ne sono affascinati. Ma tutto ciò è sbagliato. Non scopriremo trame terroristiche con sistemi 10 Informazioni reperibili all’indirizzo: http://www.aclu.org/privacy/spying/ 15701res20050308.html, (Multistate Anti-TeRrorism Information eXchange) è un sistema di sorveglianza che combina informazioni su persone da database governativi ed altri database di multinazionali. 18 A Articolo come questo, e siamo in procinto di sprecare risorse preziose inseguendo falsi allarmi. Per capire perché, occorre osservare l’economia del sistema. La sicurezza è sempre un compromesso, e perché un sistema sia valido, i vantaggi devono essere maggiori degli svantaggi. Un programma di data mining nazionale troverà una certa percentuale di attacchi reali, e una certa percentuale di falsi allarmi. Se i benefici derivanti dall’individuare e dal fermare quegli attacchi superano i costi (in denaro, in libertà, ecc.) allora il sistema è buono. In caso contrario, sarebbe preferibile spendere quei costi in altro modo. Il data mining funziona al meglio quando si è alla ricerca di un ben determinato profilo, un numero ragionevole di attacchi ogni anno, e un costo contenuto per i falsi allarmi. La frode delle carte di credito è un caso di successo del data mining: tutte le compagnie di carte di credito esaminano i propri database delle transazioni in cerca di pattern di spesa che indichino la presenza di una carta di credito rubata. Molti ladri di carte di credito presentano un simile pattern: l’acquisto di costosi beni di lusso, l’acquisto di oggetti facilmente smerciabili tramite ricettazione, ecc.; e i sistemi di data mining in molti casi possono minimizzare le perdite bloccando la carta. In più, il costo dei falsi allarmi è rappresentato solo da una telefonata al titolare della carta, richiedendogli di verificare un paio di acquisti. E i titolari delle carte non sono nemmeno seccati da queste chiamate (purché avvengano di rado), per cui il costo si riduce semplicemente ad alcuni minuti di chiamata con un operatore. Le trame terroristiche sono differenti. Non esiste un profilo ben determinato, e gli attacchi sono molto rari. Presi insieme, questi fatti significano che i sistemi di data mining non rileveranno alcun complotto terroristico a meno che non siano molto accurati, e che anche i sistemi più accurati saranno talmente inondati da falsi allarmi da diventare inutili. [. . . ] Per ridurre entrambi quei numeri, è necessario un profilo ben definito. Ed è questo il problema quando si è alle prese con il terrorismo. Col senno di poi, era davvero semplice unire i punti dell’11 settembre e puntare ai vari segnali d’allarme, ma è molto più difficile prima dell’evento. Di sicuro esistono segnali d’allarme comuni a molti complotti terroristici, ma ognuno è al tempo stesso unico. Più è possibile definire nei dettagli ciò che si sta cercando, migliori saranno i risultati. Il data mining alla caccia di trame terroristiche è destinato a essere approssimativo, e sarà difficile scoprire qualcosa di utile. A Articolo 19 Il data mining è come cercare un ago in un pagliaio. Vi sono 900 milioni di carte di credito in circolazione negli Stati Uniti. Secondo lo FTC Identity Theft Survey Report del settembre 2003, ogni anno circa l’1% (10 milioni) delle carte di credito viene rubato e usato in modo fraudolento. Il terrorismo è diverso. Vi sono trilioni di connessioni fra persone ed eventi (cose che il sistema di data mining dovrà osservare) e pochissimi complotti. Questo livello di rarità rende inutili persino i sistemi di identificazione più accurati. [. . . ] Questo sistema irrealisticamente accurato genererà un miliardo di falsi allarmi per ogni complotto terroristico rilevato. Ogni giorno di ogni anno le forze dell’ordine dovranno investigare 27 milioni di potenziali complotti per poter arrivare a scoprire l’unico vero complotto terroristico ogni mese. Aumentiamo l’accuratezza dei falsi positivi a un assurdo 99,9999% e si dovranno affrontare ancora 2.750 falsi allarmi al giorno; ma questo farà aumentare inevitabilmente anche i falsi negativi, e sarà molto probabile mancare uno di quei dieci veri complotti terroristici. [. . . ] Il data mining può funzionare. Aiuta Visa a contenere i costi delle frodi, cosı̀ come aiuta Amazon.com a mostrarmi libri che potrebbero interessarmi e che potrei comprare, e Google a mostrarmi annunci pubblicitari che potrebbero incuriosirmi. Ma queste sono tutte istanze in cui il costo dei falsi positivi è basso (una chiamata di un operatore Visa, un annuncio non interessante) e riguardano sistemi che hanno valore anche se il numero di falsi negativi è elevato. Scoprire complotti terroristici non è un problema che si presta a essere risolto dal data mining. È il tipico caso dell’ago nel pagliaio, e aumentare la pila di paglia non facilita la risoluzione del problema. Sarebbe molto meglio incaricare persone all’investigazione di potenziali trame terroristiche e permettere a queste persone di dirigere i computer, invece di assegnare l’incarico ai computer e lasciar decidere a loro chi bisognerebbe indagare [2], [3]. di Bruce Schneier http://www.nazioneindiana.com/ http://www.nazioneindiana.com/2006/04/09/antiterrorismo-e-datamining/ #comments 20 Riferimenti bibliografici Riferimenti bibliografici [1] Jiawei Han M. Kamber (2001), Data Mining Concepts and Tecniques Morgan Kuafmann Publishers [2] http://www.schneier.com [3] http://www.businessonline.it [4] http://it.wikipedia.org/ “Data mining”Data accesso 30.04.2006 [5] P. Atzeni, S. Ceri, S. Paraboshi, R. Torlone (1999), Basi di dati Seconda edizione McGraw-Hill [6] http://www.cs.waikato.ac.nz/ml/weka/index.html [7] M. J. A. Berry, G. Linoff (1997), Data mining techniques For Marketing, Sales, and Custumer Suport Wiley Computer Publishing [8] Paolo Giudici (2001), Data mining Metodi statistici per le applicazioni aziendali McGraw-Hill [9] http://www.microsoft.com/italy/dynamics/products/navision/4_ 0/navision_40_release.mspx [10] http://www.dmg.org/ [11] http://www.thearling.com/