La sfida dei Big Data

Documenti analoghi
Business Intelligence per i Big Data

Business Intelligence per i Big Data

Business Intelligence per i Big Data

La sfida dei Big Data

Business Intelligence per i Big Data

Business Intelligence

Business Intelligence per i Big Data

Business Intelligence per i Big Data

Business Intelligence per i Big Data

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

INTRODUZIONE AI DBMS

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

Sistemi per la gestione delle basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.2 Strumenti di Access. Utilizzo elementare del computer Concetti fondamentali di basi di dati

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Access 2007 Colonna di ricerca

Analisi dei Dati. Lezione 9 - Preprocessing dei dati

Lecture 14. Association Rules

Regole associative con Weka

Regole associative con Weka Testo degli esercizi. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE

Insert > Object > Chart

INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno GESTIONE DEI DATI

Data Import pulizia dati e Probabilità. Renato Mainetti

Data Import e Probabilità. Renato Mainetti

Corso di Access Modulo L2 A (Access) I tipi di query

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

Librerie digitali. Strumenti di ricerca. Ricerca di informazioni nelle Digital library

2.3.2 I tipi di query MODULO L2

Definizione di file. Directory e file File binari e file di testo

Analisi di un dataset di perizie assicurative. Esercitazione Data Mining

Estendere Rialto. Esercitazione Data Mining 5 Novembre

ListView. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Informatica per le discipline umanistiche 2 lezione 11

13 Le funzioni di ricerca e riferimento

Regole di associazione

Data warehouse in Oracle

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Regole associative Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007

Il proprietario di una catena di negozi vuole confrontare il reddito (in euro) dei suoi 5 negozi, riportato nella seguente tabella

2.5 Sottomaschere e Report avanzati MODULO L2

10 I grafici: creazione e personalizzazione

Come creare un nuovo Prodotto per ebay con Var.

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Excel 3. Master Universitario di II livello in MANAGER NELLE AMMINISTRAZIONI PUBBLICHE A.A Prof.ssa Bice Cavallo

Grafici e Pagina web

MICROSOFT ACCESS IL MODELLO E/R

Corso di Microsoft. Access. Marco P. Locatelli.

Data warehouse in Oracle

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1. Data warehouse in Oracle

MODULO 5 ACCESS Basi di dati

C.da Di Dio - Villaggio S. Agata Messina Italy P.I c.f AMBIENTE STATISTICO. Release /03/2018.

Data Science e Tecnologie per le Basi di Dati

Pre-elaborazione dei dati (Data pre-processing)

Regole associative. Il problema della scoperta di regole associative può essere espresso come segue Sia I = {i 1

<Nome Tabella>.<attributo>

SQL QUERY: Le interrogazioni del database

Esercitazione 2 SAT. 11 Novembre Denizione del problema SAT

Indovina la lettera...

MANUALE PER LA GESTIONE DELL APPLICAZIONE FLUSSI FLUSSO APS (gestione dati Accessi al Pronto Soccorso) Versione 1.1 Aggiornata al 18.5.

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

1. Calcolo dell indice di condizionamento di una matrice

Open Refine. Per la manipolazione dei dati, Open Refine usa il linguaggio GREL (General Refine Expression Language) 1.

Tutorial: come scrivere query SPARQL semplici

Un applicazione di Text Mining

Regole associative. Regole associative. Regole associative. Regole associative

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

ONLINEINVENTORY IL TUO INVENTARIO CONTROLLATO SWITALIA. 7 aprile 2017 Autore: Francesco Lombardi

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

SAI EIM. ERP Implementation Methodology. SAP Business One 8.81 NOVEMBRE 2011 VILLA FULVIA

Realizzare una tabella per Statistics explorer

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1.

Elementi di programmazione

Filtri. Microsoft Access. Filtri. Filtri

Fogli di Calcolo. Corso di Informatica. Fogli di Calcolo. Fogli di Calcolo. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Caratteri e stringhe

Verifica 3 aprile Soluzioni

L ANALISI DEI DATI. EuroConsulting S.r.l. Consulenza di Direzione e Organizzazione Aziendale

MADEsmart - Motore Analisi Demografica ed Epidemiologica MODULO

Ingegneria della Conoscenza e Sistemi Esperti Lezione 2: Apprendimento non supervisionato

Esercizio 1: listino prezzi

4. I moduli in Access 2000/2003

Stringhe. Walter Didimo

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Come ordinare facilmente i dati in un foglio di calcolo Excel definendo chiavi e parametri.

Data warehouse in Oracle

Telerilevamento. Esercitazione 5. Classificazione non supervisionata. Apriamo l immagine multi spettrale relativa alla zona di Feltre che si trova in:

File binari e file di testo

Stabilità per i sistemi dinamici a tempo discreto

Esercizi

Dichiarazione FGas: Istruzioni per eseguire il caricamento massivo delle dichiarazioni

La videoscrittura è decisamente più efficace della macchina da scrivere perché: -Consente la correzione immediata del documento senza lasciare tracce

CdS Scienze e tecnologie della comunicazione Fondamenti di Informatica. Dott. Riccardo ZESE

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

Transcript:

copyright - Paolo Garza - Tutti i diritti riservati La sfida dei Big Data Laboratorio #1 Data mining: Preprocessing, Itemset frequenti e Regole di associazione Obiettivo generale Imparare a creare semplici processi di data mining in RapidMiner in cui si usano gli operatori base per il caricamento e la trasformazione dei dati (caricamento e preprocessing) e risolvere problemi reali, principalmente esplorativi, tramite l uso di itemset frequenti e regole di associazione. Estrazione di itemset e regole di associazione dai market-basket data Abbiamo a disposizione le informazioni sugli acquisti effettuati da alcuni clienti di un supermercato online che permette di effettuare la spesa online e farsi recapitare a casa la merce acquistata. Le informazioni sugli acquisti effettuati dai clienti sono memorizzate in un file CSV (in un contesto reale le informazioni sugli acquisti dei vari clienti sarebbero memorizzate in un DBMS relazionale e non in un file csv, ma per semplicità supponiamo che qualcuno abbia già effettuato un operazione di trasformazione che ha creato il file CSV che vi viene fornito eseguendo un opportuna interrogazione SQL sulla base di dati relazionale contenente gli acquisti dei clienti). Il file CSV da utilizzare si chiama marketbasket.csv e si trova sotto la cartella AR. Ogni riga del file CSV rappresenta il carrello della spesa di un cliente (ossia l insieme di prodotti presenti sullo scontrino del cliente) mentre le colonne sono associate ai vari prodotti presenti nel supermercato. In ogni riga la cella relativa ad un prodotto assume il valore true o false in funzione del fatto che in quel carrello della spesa ci sia oppure no il prodotto a cui è associata la colonna. I clienti sono anonimi e quindi non ci sono informazioni sul cliente che ha effettuato l acquisto. Aprire il file marketbasket.csv per capire meglio com è strutturata l informazione. Primo obiettivo Analisi esplorativa delle vendite al supermercato o su un sito di ecommence Il primo obiettivo dell analisi dei dati a nostra disposizione consiste nell identificare le combinazioni di prodotti frequentemente venduti insieme per poter poi fare delle valutazioni sui prodotti più venduti ma soprattutto su come i vari prodotti interagiscono tra di loro per pianificare in seguito delle campagne di marketing/promozioni mirate. Passi per risolvere il problema con RapidMiner:

1. Visualizzare il contenuto della base di dati(file CSV) tramite un semplice processo di RapidMiner che legge i dati e li visualizza a video o Usare l operatore Read CSV per leggere il dataset. Si consiglia di usare il wizard Import configuration wizard per caricare in modo corretto i dati. o Connettere l output dell operatore Read CSV all uscita res del processo o Eseguire il processo e analizzare il risultato (Result view). In particolare analizzare i contenuti delle cartelle Data view e Meta Data View. La seconda è utile per capire lo schema dei dati e la useremo frequentemente dopo le operazioni di trasformazione per verificare che i dati siano conformi a quelli attesi 2. Estrarre gli itemset frequenti dai dati a disposizione per capire quali sono i prodotti più venduti e quali prodotti sono frequentemente venduti insieme. Per realizzare questa operazione realizzare un processo che: o Legge i dati dal file CSV o Specifica tramite l operatore Remap Binominals quale valore degli attributi binomiali rappresenta il positive value (nel nostro caso il valore true) e quale il negative value (nel nostro caso il valore false). Questa operazione è indispensabile altrimenti l algoritmo di estrazione decide in modo casuale qual è il valore positivo portando a dei risultati errati. o Applicare l operatore FP-Growth per l estrazione degli itemset frequenti Disabilitare l opzione find min number of itemsets Impostare il supporto minimo (parametro min support) al valore 0.01 (= 1%) o Eseguire il processo e analizzare il risultato Qual è il prodotto più venduto? Quali sono gli insiemi di prodotti venduti frequentemente insieme? Con quali altri prodotti si vende frequentemente il prodotto Eggs? Cosa succede se uso un supporto minimo troppo alto (ad esempio 0.1 = 10%) o troppo basso? Come usereste l informazione estratta? Per quale tipo di servizio/operazione? Secondo obiettivo Top-K products e Frequently bought together Il secondo obiettivo dell analisi dei dati a nostra disposizione consiste nello sfruttare i dati sulle vendite a nostra disposizione per dare delle indicazioni/suggerimenti agli utenti del sito. In particolare i proprietari del sito online vogliono realizzare due applicazioni per rispondere alle seguenti esigenze: 1. Nell homepage del sito devono essere visualizzati i nomi dei 10 prodotti più venduti (i top-10 products ) 2. Nel momento in cui un utente si trova sulla pagina di un prodotto si vuole visualizzare nella stessa pagina l insieme di prodotti che sono frequentemente venduti insieme al prodotto che l utente sta guardando/comprando ( frequently bought together o frequently shipped together stile Amazon). L elenco di prodotti da visualizzare è pari a 3, uno dei quali è il prodotto della pagina su cui si trova al momento l utente. Se ad esempio l utente si trova sulla pagina relativa al prodotto Eggs il sistema deve suggerirgli/mostrargli l informazione il prodotto Eggs è frequentemente acquistato insieme ai prodotti Milk e Cola. Attenzione che questa informazione significa che ci sono tanti carrelli della spesa in cui tutti e tre i prodotti sono contemporaneamente presenti.

Come risolvereste il problema usando tecniche che conoscevate già prima del corso e con tecniche invece apprese durante questo corso? Passi per risolvere i due problemi con RapidMiner: Per identificare i top-10 prodotti possiamo estrarre gli itemset frequenti di lunghezza 1 e poi selezionare i 10 più frequenti o Usare lo stesso processo utilizzato prima ma impostare la lunghezza massima degli itemset estratti a 1 (impostare il parametro max items dell operatore FP-growth a 1) o Usare l operatore Item sets to Data per generare una versione tabellare degli itemset estratti o Ordinare i dati in base alla frequenza degli itemset estratti in base alla loro frequenza Usare l operatore Sort e effettuare l ordinamento in base all attributo Frequency (attributo generato dell operatore precedente) o Selezionare solo le prime 10 righe Usare l operatore Filter Example Range che permette di selezionare i record in base alla loro posizione (nel nostro caso i primi dieci record) Per identificare i prodotti frequentemente comprati insieme ad un altro prodotto (seconda parte del problema) come possiamo procedere? o La soluzione è analoga a prima ma in questo caso vogliamo itemset lunghi 3, contenenti uno specifico item (il prodotto che stiamo guardando/comprando), e poi selezioniamo il top-1 itemset L operatore di estrazione degli itemset permette di specificare che si devono estrarre solo gli itemset che contengon un item specifico tramite il parametro must contain Realizzare il processo supponendo che l utente stia guardando il prodotto Cola Il procedimento realizzato può essere utilizzato anche in contesti in cui gli oggetti non sono dei prodotti standard ma qualcosa di diverso (ad esempio le notizie lette online dagli utenti di una testata giornalistica). Terzo obiettivo Analisi esplorativa delle vendite al fine di identificare prodotti trainanti Il terzo obiettivo dell esercitazione consiste nel cercare di capire quali sono i reali legami tra i prodotti e quali sono, ad esempio i prodotti trainanti, ossia quei prodotti che se acquistati comportano frequentemente anche l acquisto di altri prodotti. Ad esempio, se voglio incentivare le vendite di pane bianco quali altri prodotti mi conviene promuovere/far acquistare ai clienti? Possiamo basarci sui soli itemset frequenti per risolvere questo problema? Le regole di associazione possono darci delle informazioni più precise? Proviamo ad usare le regole di associazione. Le regole ci permettono si estrarre implicazioni tra oggetti e di stimare la probabilità condizionata che dati certi prodotti nel carrello della spesa (antecedente della regola) ve ne siano altri (conseguente della regola).

Passi per risolvere il problema con RapidMiner: Per estrarre le regole di associazione frequenti utilizzare il processo usato per l estrazione degli itemset frequenti e poi in cascata l operatore Create Association Rules o Tra i parametri Create Association Rules di impostare criterion a confidence e min confidence a 0.7 (=70%) Analizzare il risultato (regole estratte) e cercare di capire, ad esempio, la vendita di quale prodotto dovrebbe permetterci di aumentare anche le vendite di pane bianco (White Bread) Dalle regole si evince che chi compra Potato Chips e White Wine nel 100% dei casi compra anche il prodotto Eggs. Valgono anche le implicazioni opposte? Ad esempio chi compra Eggs e Potato Chips compra sempre anche White Wine? Le regole di associazione sono utili/inutili per il problema dei frequently bought together che prima abbiamo affrontato usando gli itemset frequenti? Estrazione di itemset e regole di associazione da dati testuali (news, pagine HTML, ) Abbiamo a disposizione delle news scaricare da internet. In particolare abbiamo delle collezioni di news scaricate dopo aver interrogato google news. Per ogni interrogazione effettuata sono state scaricate le prime 10 notizie (pagine contenenti notizie) restituite da google news. Sono disponibili le collezioni di news relative a 3 interrogazioni: Milan Sorrentino Obama Le notizie scaricate sono salvate nelle sottocartelle di AR\News. Ogni sottocartella contiene le 10 notizie (10 file) associate ad una delle interrogazioni eseguite. Vogliamo capire come gli itemset e le regole di associazione possano essere utilizzate per analizzare i contenuti delle notizie scaricate e risolvere problemi tipo topic detection o brand sentiment. Obiettivo Analisi esplorativa delle notizie su uno specifico argomento o entità Il primo obiettivo dell analisi dei dati a nostra disposizione consiste nell identificare i topic di discussione per uno specifico argomento o entità. Ad esempio, vogliamo capire cosa si dice del Milan. Per questo motivo abbiamo scaricato 10 notizie relative al Milan e vogliamo capire di cosa parlano senza leggerle una per volta (per questa semplice prova abbiamo solo 10 news ma in un caso reale ne avremmo molte di più e quindi la lettura singola di ogni news sarebbe infattibile o comunque troppo onerosa come operazione). Come possiamo risolvere il problema? Gli itemset frequenti o regole di associazione possono rispondere al nostro problema e se sì come? Quale delle due tecniche utilizzereste?

Per poter analizzare dei dati testuali tramite RapidMiner è necessario installare l estensione Text Mining Extension che offre funzionalità apposite per l analisi dei testi. Gli algoritmi di analisi (non solo quelli che vediamo noi) richiedono come input una rappresentazione sottoforma di tabella dei dati, anche dei documenti. Per questo motivo dobbiamo immaginare i documenti come insiemi di parole e usare una rappresentazione simile a quella usata prima per rappresentare i prodotti. In questo caso ogni singolo documento è un insieme di parole. Trasformazione di dati testuali tramite l uso di RapidMiner e estrazione degli itemset frequenti Utilizzare l operatore Process Documents from Files per leggere da file collezioni di documenti. Ogni file è visto come un singolo documento. o Specificare quali sono le cartelle che contengono i documenti da analizzare o Impostare il parametro vector creation al valore Term Occurrences. Ciò trasforma ogni documento in un vettore di parole e associa ad ogni parola il numero di volte che tale parola si presenta nel documento analizzato o Cliccare due volte sull operatore Process Documents from Files, che è in realtà un operatore complesso, e specificare quali tipi di trasformazioni applicare sui singoli documenti Usare l operatore Tokenize per dividere il testo in un insieme di parole Usare Transform Cases per rendere tutte le parole minuscole (per evitare che due parole identiche siano considerate diverse solo a causa del fatto che alcune lettere sono minuscole e altre maiuscole) Applicare un algoritmo di stemming per ridurre le parole alla loro radice morfologica utilizzando l operatore Stemming operator (opzionale). Fare attenzione a selezionare la lingua giusta. Nel nostro caso le news sono in italiano Applicare un algoritmo per l eliminazione delle stopword per eliminare parole inutili tipo le congiunzioni. Usare l operatore Filter Stopwords (Dictionary) e specificare come file contenente le stopword il file AR\News\stopwordsItalian.txt (Attenzione. Impostare il tipo di encoding a UTF-8 per una corretta interpretazione del contenuto del file delle stopword). Analizzare l uscita dell operatore Process Documents from Files. Come vedrete la tabella generata contiene un record per ogni documento e ogni parola è un attributo di tipo numerico che indica il numero di volte in cui ogni parola si presenta nei vari documenti. Per rendere tale informazione utilizzabile per l estrazione degli itemset frequenti dobbiamo applicare l operatore Numerical to Binominal. Esso genera il valore true per quelle celle in cui c è un valore maggiore di 0 e false per le altre. Estrarre gli itemset frequenti usando, come fatto prima, l operatore FP-Growth o Quali sono gli argomenti più trattati nelle news che state analizzando? Provare ad estrarre le regole di associazione (imporre come lunghezza massima per gli itemset il valore 4). Ci forniscono delle informazioni in più rispetto agli itemset? Sono utili in questo caso? Quando un utente effettua una ricerca su google news (ad esempio scrive Milan nell interrogazione) oltre all elenco di 10 notizie vogliamo visualizzare anche, con una sola frase (insieme di parole), l argomento più trattato in tali notizie. Provare a risolvere il problema utilizzando il processo appena realizzato e parti di processi visti in precedenza.

Svolgere tale operazione prima per la collezione usata fino a ora (quella sul Milan) e poi la collezione relativa a Sorrentino e alla fine quella associata ad Obama. La soluzione proposta funziona bene in tutti e tre i casi? Se in alcuni casi i risultati non sono quelli attesi qual è il motivo? Estrazione di itemset e regole di associazione da dati strutturati Il dataset denominato Users (AR\Users.xls) raccoglie dati anagrafici e lavorativi relativi a circa 1000 persone contattate da un azienda per proporgli l iscrizione ad un loro servizio. Per tali utenti è noto se, dopo essere stati contattati, si sono iscritti al servizio proposto oppure no (valore del campo Response). La campagna di promozione del servizio continua e il personale della compagnia deve decidere chi, tra un elenco di circa 30000 persone non ancora contattare, potrebbe essere interessato al servizio. A tale fine si vogliono analizzare le informazioni presenti in Users per identificare il profilo delle persone che rispondono solitamente in modo positivo alla campagna. Obiettivo Caratterizzazione utenti Partendo dai dati disponibili si vuole capire quali tipologie di persone potrebbero rispondere positivamente alla campagna. Per risolvere il problema utilizziamo gli itemset o le regole di associazione? Ci interessano particolari tipologie di itemset/regole? Per poter analizzare dei dati a nostra disposizione tramite RapidMiner è necessario prima trasformare gli attributi non binomiali in binomiali. Trasformazione dei dati non binomiali Per ciò che riguarda gli attributi di tipo nominale (ad esempio la città di residenza, il titolo di studio) dobbiamo utilizzare l operatore Nominal to Binominal che crea una variabile binomiale per ogni valore presente nel dominio dell attributo nominale di partenza Per ciò che riguarda gli attributi numerici dobbiamo prima applicare un algoritmo di discretizzazione e poi nuovamente l operatore Nominal to Binominal per trasformare la versione discretizzata dei dati numerici in tante variabili binomali. o Per discretizzare i dati esistono più soluzioni. Nel nostro caso usiamo l approccio equi-width che in RapidMiner è implementato dall operatore Discretize by Binning. Impostare il parametro number of bins a 10. Ciò comporta la discretizzazione del dominio di ogni attributo numerico in 10 intervalli. Applicare un analisi esplorativa per identificare le caratteristiche delle persone che rispondono positivamente alla campagna. Implementare un processo per risolvere il problema in RapidMiner applicando gli itemset frequenti o le regole di associazione sui dati delle persone dopo la fase di trasformazione dei dati dal formato originale al formato in cui tutti gli attributi sono binomiali. Si consiglia di fare estrazione usando un supporto minimo pari al 5%. Decidere invece autonomamente che confidenza minima imporre per la fase di estrazione delle regole di associazione. Quali utenti conviene contattare per aumentare la possibilità di risposte positive? Quali conviene non contattare?