Chapter 14, Hastie , Tibshirani and Friedman

Slides:



Advertisements
Presentazioni simili
DBMS (DataBase Management System)
Advertisements

Normalizzazione Forme Normali.
Stored Procedure Function Trigger
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Esercizio zSi vuole realizzare un data warehouse per una azienda che vende mobili allingrosso. zIl data warehouse deve permettere di analizzare i ricavi.
Query OQL e XQUERY a confronto
Biglietti e Ritardi: schema E/R
Data warehousing con SQL Server
1 Misura Derivata: esempio dei biglietti CostoMedioBiglietto (CMB) calcolato come INCASSO/NUM_BIG. SUM AVG Implementazione in Analysis Services 1. Si definisce.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Basi di dati attive Dispongono di un sottosistema integrato per definire e gestire regole di produzione (regole attive) Regole di tipo: Evento-Condizione-Azione.
ANALISI DEI DATI OLAP (On Line Analytical Processing) Data Warehousing Data Mining.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
ESEMPI DI ARCHIVI DI DATI
Sistemi di supporto alle decisioni 2. Features space
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Parallel and Distributed Association Mining: A Survey Cappellazzo Pietro Carminati Roberto Approfondimento per il corso di Calcolo Parallelo.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Esercitazione 5 MySQL Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 81 Ricerca e visualizzazione delle informazioni Gestione, ricerca, navigazione: accesso alle.
SQL: Lezione 7 Nataliya Rassadko
Fogli elettronici - Spreadsheet
Fogli di Calcolo Elettronici Corso di Informatica Generale per SMID a.a. 2002/03 docente: Giorgio Delzanno (DISI)
Tecniche e algoritmi di base per l’estrazione di conoscenza
Cercare informazioni sul Web. 5-2 Organizzazione dellinformazione tramite gerarchie Classificazione gerarchica Linformazione è raggruppata in un piccolo.
Data mining for e-commerce sites
Clustering Mercoledì, 24 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Density-Based Clustering.
DATA MINING E SCOPERTA DELLA CONOSCENZA
Clustering Martedì, 30 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Clustering Lecture.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Daniel Stoilov Tesi di Laurea
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Database & Information Retrieval
Valutazione costi di una QUERY. A.1-Nome di tutti i fornitori che forniscono il prodotto P2 forpro fornitori CP=P2 Nome fornitori (CF, Nome, Citta) prodotti(CP,
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
Basi di Dati e Sistemi Informativi
Algoritmi e Strutture Dati
Mining Frequent patterns without Candidate Generation
sql: esempi di linguaggio sql nell'implementazione mysql
Web Communities and their identificaton
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Architettura Centralizzata di un DBMS Relazionale
1 Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre.
ROCK A Robust Clustering Algorithm for Categorical Attributes Sudipto Guha, Rajeev Rastogi, Kyuseok Shim Sistemi Informativi per le Decisioni a.a. 2005/2006.
Metaclassificazione Giovedì, 18 novembre 2004 Francesco Folino ( Combinare Classificatori Lecture 8.
ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica”
1 PerfectFit06 Sistema di personalizzazione dei contenuti per gli scavi archeologici di Ercolano Candidato: Vincenzo Scognamiglio Relatore: Prof. Ernesto.
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Basi di dati distribuite Prof. M.T. PAZIENZA a.a
“Association mining” Salvatore Orlando.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: –Gestione di vincoli di integrità: Per fallimento Per modifica.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
ICT e Sistemi informativi Aziendali Materiale di supporto alla didattica.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Transcript della presentazione:

Chapter 14, Hastie , Tibshirani and Friedman Lecture 14 Association Rules Giuseppe Manco Readings: Chapter 6, Han and Kamber Chapter 14, Hastie , Tibshirani and Friedman

Association Rule Mining Dato un insieme di transazioni, trovare le regole che predicono l’occorrenza di un item sulla base delle occorrenze di altri items nella transazione Conosciuta anche come market basket analysis Transazioni Market-Basket Esempi di associazioni {pannolini}  {birra}, {latte, Bread}  {Eggs,Coke}, {birra, Bread}  {latte}, NB: l’implicazione è co-occorrenza, non causalità!

Il contesto Abitudini del cliente tramite l’analisi delle correlazioni tra le varie cose che il cliente acquista latte, eggs, sugar, bread latte, eggs, cereal, bread Eggs, sugar Customer1 Customer2 Customer3

Il contesto [2] Dato: Trovare: Un database di transazioni, dove ogni transazione è un insieme di items Trovare: I gruppi di items che sono stati acquistati insieme frequentemente

Road Map AR Unidimensionali/multidimensionali Su insieme o su attributi Intra-Attributo, Inter-Attributo AR Qualitative/quantitative Dati categorici, dati numerici AR semplici/basate su vincoli Esempio: acquisti piccoli (sum < 100) causano grandi acquisti (sum > 1,000) Single level/multiple-level AR Esempio Quali marche di birra sono associate con quali marche di pannolini? Associazioni/correlazioni Causalità

Definizioni base Itemset Support () Itemset frequente Una collezione di items Example: {latte, Bread, pannolini} k-itemset Un itemset contenente k items Support () Frequenza di occorrenze di un itemset E.g. ({latte, Bread,pannolini}) = 2 Itemset frequente Un itemset il cui supporto è maggiore di un valore soglia

Definizioni base [2] Transazione Formato relazionale Formato colonnare Formato compatto

Itemset frequenti Support({formaggio}) = 3 (75%) Support({frutta}) = 3 (75%) Support({formaggio, frutta}) = 2 (50%) Se  = 60% {formaggio} e {frutta} sono frequenti, mentre {formaggio, frutta} non lo è.

Itemset frequenti, regole logiche La co-occorrenza non implica causalità b a a b ab Nessuna relazione b b a a ba Sia ba che ab

Definizioni base [3] Esempio: Regola associativa Un’implicazione della forma X  Y, dove X e Y sono itemsets Esempio: {latte, pannolini}  {birra} Metriche per la valutazione di una regola Support (s) Frazione delle transazioni che contengono X e Y Confidence (c) Misura quante volte Y appare nelle transazioni che contengono X Esempio:

Regole associative e interpretazione probabilistica support(A  B) = p(A  B) confidence(A  B) = p(B|A) = p(A & B)/p(A).

Il problema Dato un insieme T di transazioni, trovare tutte le regole per cui supporto ≥ minsup confidenza ≥ minconf Confidenza alta = forte regolarità Supporto alto = il pattern occorre spesso La co-occorrenza non è casuale

Applicazioni 1 (vendite al dettaglio) market baskets Le catene di supermercati mantengono le transazioni relative agli acquisti dei clienti conseguenze Conoscere le abitudini d’acquisto dei clienti Posizionamento adeguato dei prodotti Cross-selling –gli hamburger al saldo, il prezzo del ketchup aumentato …

Applicazioni 2 (Information Retrieval) Scenario 1 baskets = documenti items = parole Gruppi di parole frequenti = concetti correlati. Scenario 2 items = frasi baskets = documenti contenti frasi Gruppi di frasi frequenti = possibili plagi

Applicazione 3 (Web Search) Scenario 1 baskets = pagine web items = link in uscita Pagine con riferimenti simili  stessi topics Scenario 2 items = link in entrata Pagine con gli stessi in-links  mirrors

Regole associative Esempi di regole: {latte,pannolini}  {birra} (s=0.4, c=0.67) {latte,birra}  {pannolini} (s=0.4, c=1.0) {pannolini,birra}  {latte} (s=0.4, c=0.67) {birra}  {latte,pannolini} (s=0.4, c=0.67) {pannolini}  {latte,birra} (s=0.4, c=0.5) {latte}  {pannolini,birra} (s=0.4, c=0.5) Le regole sono ottenute dal dataset {latte, pannolini, birra} Supporto simile, confidenza differente Decomposizione del problema: Trovare tutti gli itemset frequenti Utilizzare gli itemset frequenti per trovare le regole

Mining di regole associative Obiettivo – trovare tutte le regole per cui Supporto ≥ s confidenza ≥ c Riduzione del problema trovare tutti gli itemsets frequenti X Dato X={A1, …,Ak}, generare le regole X-Aj  Aj Confidenza = sup(X)/sup(X-Aj) Supporto = sup(X) Eliminiamo le regole il cui supporto è basso Problema principale Trovare gli itemsets frequenti

Il reticolo degli itemsets dati m items, ci sono 2m-1 possibili itemsets candidati

La scala del problema Catena di supermercati Web vende m=100,000 items traccia n=1,000,000,000 transazioni al giorno Web Miliardi di pagine Approssimativamente una parola diversa per ogni pagina Un numero esponenziale di itemsets m items → 2m-1 possibili itemsets Non possiamo considerare tutti gli itemsets dato m Anche i 2-itemsets possono essere troppi m=100,000 → 5.000 miliardi di coppie

Utilizzando SQL Assunzione di base: formato relazionale 3-itemsets: Purchase(TID, ItemID) 3-itemsets: SELECT Fact1.ItemID, Fact2.ItemID, Fact3.ItemID, COUNT(*) FROM Purchase Fact1 JOIN Purchase Fact2 ON Fact1.TID = Fact2.TID AND Fact1.ItemID < Fact2.ItemID JOIN Purchase Fact3 ON Fact1.TID = Fact3.TID AND Fact1.ItemID < Fact2.ItemID AND Fact2.ItemID < Fact3.ItemID GROUP BY Fact1.ItemID, Fact2.ItemID, Fact3.ItemID HAVING COUNT(*) > 1000 Trovare i k-itemsets richiede k operazioni di join!

Monotonicità Idea chiave: Se un itemset è frequente, Tutti i suoi sottoinsiemi devono essere frequenti Il principio di monotonicità vale per il supporto: Strategia di pruning: Se un itemset è infrequente, tutti i suoi sovrainsiemi devono essere infrequenti

Monotonicità infrequente pruning

L’algoritmo Apriori Join Step Prune Step Pseudo-codice: Ck è generato fondendo Lk-1con sé stesso Prune Step Tutti i (k-1)-itemsets non frequenti non possono essere sottoinsiemi di un k-itemset frequente Pseudo-codice: Ck: itemsets candidati di dimensione k Lk : itemsets frequenti di dimensione k 1. L1 = {items frequenti}; 2. for (k = 1; Lk ≠ ; k++) do begin 3. Ck+1 = candidati generati da Lk; 4. for each transazione t in D 5. Incrementa il supporto dei candidati in Ck+1 contenuti in t 6. Lk+1 = tutti i candidati in Ck+1 con min_support 7. return ∪k Lk;

Esempio Database D L1 C1 Scan D C2 C2 L2 Scan D C3 L3 Scan D

Generazione di candidati [1] Fase di join Passo 3 insert into Ck+1 select p.item1,p.item2, …, p.itemk-1,q.itemk-1 from p,q where p.item1=q.item1 and p.item2= q.item2 and … p.itemk-2= q.itemk-2 and p.itemk-1< q.itemk-1

Generazione candidati [2] Fase di pruning Passo 3 Inizialmente, Eliminiamo {a,c,d,e} {c,d,e}L3

Generazione degli itemsets frequenti Conteggio dei candidati Passo 6 Perché è problematico? Il numero totale dei candidati può essere alto Una transazione può contenere molti candidati Soluzione Hash-tree Nodi foglia Itemsets candidati Nodi interni Tabelle hash Ogni bucket punta ad un sottoinsieme di candidati Speed-up della relazione di sottoinsieme

Hash-tree

Utilizzo dell’Hash-tree Inserzione Identifica la foglia opportuna e inserisci l’itemset La foglia è ottenuta con la ricerca Se c’è overflow, splitta la foglia in due foglie e aggiungi un nuovo nodo interno Ricerca Parti dalla radice Ad ogni livello i: Applica la funzione hash all’i-esimo elemento dell’itemset Scendi al livello puntato dal risultato della funzione Counting Passo 5 t={t1,t2,…tn} Ad ogni livello d Determina il nodo puntato da ti Continua la ricerca con {ti+1,…,tn} Se nodo foglia Aggiorna il supporto degli itemsets contenuti in t

Ricerca {3,7,11} 3 mod 3=0 7 mod 3=1 11 mod 3=2

Counting T={1,3,7,9,12} Nodi identificati Nodi tagliati