Informatica per le discipline umanistiche 2 – lezione 11 – Come si fa a costruire una base di dati? Dipende. Le persone che si iscrivono in università… forniscono dati che popolano il database dellʼuniversità Ma anche chi fa la spesa… …fornisce informazioni con i suoi acquisti, anche se in maniera meno diretta Una volta costruita la base di dati? Profiling Costruzione di profili, intesi come pattern o correlazioni allʼinterno di grandi quantità di dati usati per identificare individui o gruppi di persone. Pattern: uno schema ricorrente Correlazione: interdipendenza tra quantità variabili Tale costruzione può essere facilitata da strumenti informatici. Numerosi scopi: discriminazione di prezzo, servizi personalizzati, rilevamento di frodi, etc. Knowledge Discovery in Databases (KDD): il problema oggi non è più raccogliere i dati, bensì districarsi in una mole di dati e distinguere lʼinformazione significativa e utile dal rumore. Rumore: oscillazioni casuali di una quantità. Le 3 fasi della KDD 1. Preprocessing, o pre-processo dei dati Bisogna selezionare lʼinsieme di dati obiettivo, selezionando un sottoinsieme della base di dati: deve essere grande abbastanza da contenere i pattern che cerchiamo, ma piccola abbastanza da permettere lʼanalisi in tempi accettabili. Lʼinsieme obiettivo viene poi “pulito” (data cleansing/data cleaning) per eliminare dati corrotti o mancanti. Studente matricola cognome nome data-iscr facoltà 23456 19797 21215 Bini Dotti Gxxrossi Laura Paolo Danilo 2010-07-25 9999999999 2007-07-05 let let Le 3 fasi della KDD 2. Data Mining Sotto questo termine generale in realtà ricadono numerosi tipi di knowledge discovery. Anomaly detection / rilevamento di anomalie: ricerca di elementi inusuali nel data base; si potrebbe trattare di informazione interessante o di errori non puliti; è necessaria ulteriore indagine. Association rule learning / apprendimento di regole dʼassociazione: noto anche come “market basket analysis”, ricerca di correlazioni tra variabili diverse presenti nel database. Clustering: ricerca di caratteristiche comuni tra diverse tuple del database, che permettono di riconoscere diversi gruppi di similarità. Classification: applicazione di un criterio di discriminazione elaborato in precedenza su nuovi dati per classificarli. Regression / regressione: ricerca di una funzione matematica che modelli lʼandamento dei dati analizzati con la maggiore precisione possibile, per poi fare estrapolazione e previsioni. Quando cerchiamo di modellare i nostri dati con una retta, si parla di regressione lineare. Questa è una regressione generica. Summarization / riepilogo: accorpamento di dati per costruirne una rappresentazione più compatta per visualizzazioni più efficaci e reporting / “rapportazione”. Facciamo un esempio di association rule learning / market basket analysis scontrino 1 2 3 4 5 acquisti latte, vino pane, burro pane, burro, miele pane, burro, latte pane, vino Cerchiamo regole dʼassociazione sotto forma di: SE cʼè x, ALLORA cʼè anche y nel carrello Cerchiamo regole dʼassociazione sotto forma di: x -> y {se cʼè x, allora cʼè anche y nel carrello} Ce ne sono tante: pane -> burro latte -> pane miele -> pane e burro quali sono buone? burro -> pane Criterio 1: supporto Si definisce supporto di una regola x -> y il rapporto tra il numero di righe che contengono xey e il numero totale di righe della tabella analizzata. scontrino 1 2 3 4 5 acquisti latte, vino pane, burro pane, burro, miele pane, burro, latte pane, vino Sup(pane -> burro) = 60% Sup(latte -> pane) = 20% Sup(miele -> pane e burro) = 20% Sup(burro -> pane) = 60%* *regole con gli stessi oggetti hanno lo stesso supporto Criterio 2: confidenza Si definisce confidenza di una regola x -> y il rapporto tra il numero di righe che contengono xey e il numero di righe che contengono x. scontrino 1 2 3 4 5 acquisti latte, vino pane, burro pane, burro, miele pane, burro, latte pane, vino Conf(pane -> burro) = 75% Conf(latte -> pane) = 25% Conf(miele -> pane e burro) = 100% Conf(burro -> pane) = 100% La confidenza può essere interpretata come la probabilità di avere y in una riga, sapendo che cʼè x in quella riga. Quali regole cercare, quindi? Tutte quelle regole che hanno supporto superiore a un certo valore, e confidenza superiore a un certo valore. Vendite nel 2007: 5782,6 milioni € Se la spesa media è di 25 € vuol dire più di 231mila scontrini Ci sono più di 10mila prodotti Eʼ impraticabile far fare data mining a essere umani con questa mole di dati. Le 3 fasi della KDD 3. Validazione dei risultati In realtà dobbiamo ricordarci che le analisi del data mining non si applicano sullʼintera base di dati disponibile ma su un sottoinsieme. La validazione dei risultati si ottiene controllando che i pattern trovati siano presenti anche nel resto della base dei dati. Questo è possibile perché per applicare un pattern già noto a una base di dati occorre molto meno tempo che trovare un pattern ancora sconosciuto. Come sfruttare la conoscenza acquisita? Picco di vendite di birra in coincidenza con eventi sportivi In vista della partita mettere bene in vista le birre, magari con offerte Chi compra peluche compra spesso caramelle Mettere i due prodotti vicini per incrementare la probabilità di un acquisto congiunto Riconoscere che esistono 3 tipi di clientela rispetto al consumo dei prodotti di macelleria Fornire servizi orientati ai 3 gruppi, iniziando da quello che garantisce i margini di guadagno più alti Tramite la tessera di fidelizzazione capire a che gruppo appartiene un cliente Al suo prossimo acquisto fornirgli un buono sconto mirato per farlo tornare di domenica Andamento delle vendite di patate Acquistare più patate dai fornitori Risultati complessivi di fine anno Da portare in riunione per discutere sulle prossime strategie