Corso di Basi di Dati



Documenti analoghi
Data Warehousing (DW)

Marketing relazionale

Università di Pisa A.A

Data mining e rischi aziendali

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Uno standard per il processo KDD

Ricerca di outlier. Ricerca di Anomalie/Outlier

Sistemi Informativi Aziendali. Sistemi Informativi Aziendali

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Introduzione alla teoria dei database relazionali. Come progettare un database

Database. Si ringrazia Marco Bertini per le slides

Distributed P2P Data Mining. Autore: Elia Gaglio (matricola n ) Corso di Sistemi Distribuiti Prof.ssa Simonetta Balsamo

Analisi di Mercato. Facoltà di Economia. Analisi sui consumi. Metodo delle inchieste familiari. Metodo delle disponibilità globali

La Metodologia adottata nel Corso

Data mining. Data Mining. processo di Data Mining estrarre automaticamente informazioneda un insieme di dati

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

SEGMENTAZIONE INNOVATIVA VS TRADIZIONALE

Progettazione di Basi di Dati

Analisi dei requisiti e casi d uso

Introduzione data warehose. Gian Luigi Ferrari Dipartimento di Informatica Università di Pisa. Data Warehouse

Data warehouse Introduzione

Ottimizzazione delle interrogazioni (parte I)

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Raggruppamenti Conti Movimenti

Organizzazione degli archivi

Access. P a r t e p r i m a

Basi di Dati Relazionali

Data Mining. Gabriella Trucco

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Ciclo di vita dimensionale

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Regressione Mario Guarracino Data Mining a.a. 2010/2011

Esercitazione 1 del corso di Statistica 2 Prof. Domenico Vistocco

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario

Data Mining in SAP. Alessandro Ciaramella

Introduzione al corso

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Pianificazione del data warehouse

Basi di Dati e Microsoft Access

DATABASE RELAZIONALI

TECNICHE DI SIMULAZIONE

Introduzione ai tipi di dato astratti: applicazione alle liste

MODELLO RELAZIONALE. Introduzione

Customer Relationship Management. Eleonora Ploncher 3 aprile 2006

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

SVM. Veronica Piccialli. Roma 11 gennaio Università degli Studi di Roma Tor Vergata 1 / 14

Lezione V. Aula Multimediale - sabato 29/03/2008

Introduzione ai database relazionali

VALORE DELLE MERCI SEQUESTRATE

Regressione non lineare con un modello neurale feedforward

La distribuzione Normale. La distribuzione Normale

Segmentare ovvero capire il contesto di mercato di riferimento

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Il database management system Access

1. BASI DI DATI: GENERALITÀ

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

BASE DI DATI: sicurezza. Informatica febbraio ASA

Strutturazione logica dei dati: i file

I database relazionali (Access)

Metodi di previsione

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

RISK MANAGEMENT: MAPPATURA E VALUTAZIONE DEI RISCHI AZIENDALI. UN COSTO O UN OPPORTUNITA?


Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

MODULO 5 Appunti ACCESS - Basi di dati

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Ricerca Operativa e Logistica

Operazioni sui database

Analisi dei Dati. Lezione 10 Introduzione al Datwarehouse

risulta (x) = 1 se x < 0.

Indagini statistiche attraverso i social networks

Convegno 6 giugno 2013 Federlazio Frosinone

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Sistemi Informativi e Basi di Dati

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ ρσ1 σ 2 ) = (σ 1

Artifact Centric Business Processes (I)

PDF created with pdffactory trial version Il processo di KDD

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario:

ECONOMIA CLASSE IV prof.ssa Midolo L ASPETTO ECONOMICO DELLA GESTIONE. (lezione della prof.ssa Edi Dal Farra)

Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività

Ingegneria del Software T

Statistica. Lezione 6

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

Introduzione ad OLAP (On-Line Analytical Processing)

Calcolo delle probabilità

Esercizio 1: trading on-line

EXPLOit Content Management Data Base per documenti SGML/XML

Sistemi per la gestione di database: MySQL ( )

Mining Positive and Negative Association Rules:

Introduzione al MATLAB c Parte 2

AUMENTARE I CONTATTI E LE VENDITE CON UN NUOVO PROCESSO: LEAD ADVANCED MANAGEMENT

Dispensa di database Access

Tecniche di Simulazione: Introduzione. N. Del Buono:

Transcript:

Corso di Basi di Dati Introduzione al Data Mining Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Data Mining: tecniche di apprendimento computerizzato per analizzare ed estrarre conoscenze da collezioni di dati. Pattern e relazioni non note a priori e non immediatamente identificabili. Disciplina complessa: utilizzo di tecniche di machine learning, intelligenza artificiale e statistiche

ESEMPI di APPLICAZIONI (aziendali) Previsioni di dati temporali (es. vendite) Market Basket Analysis (vi siete mai chiesti come mai tanti tornei di golf sono sponsorizzati da societa di brokeraggio? ) Scoperta di truffe (es. clonazioni di carte di credito) Campagne pubblicitarie mirate Churn Analysis (analisi della clientela che potrebbe passare alla concorrenza) Segmentazione della clientela

BUSINESS INTELLIGENCE (BI) à (def.) Insieme di processi aziendali, metodologie tool per raccogliere i dati di un azienda, ed estrarre infor mazioni di supporto alla decisioni strategiche. DATA MINING à componente essenziale del processo di BI, si occupa di estrarre informazioni utili dai dati per aiutare il processo decisionale

BUSINESS INTELLIGENCE (BI) à (def.) Insieme di processi aziendali, metodologie tool per raccogliere i dati di un azienda, ed estrarre infor mazioni di supporto alla decisioni strategiche. DATA MINING à componente essenziale del processo di BI, si occupa di estrarre informazioni utili dai dati per aiutare il processo decisionale Sorgente: http://www.conbusinessintelligence.com/

Data mining à estrae informazioni da un DB. Data query (SELECT) à estrae dati da un DB relazionale (in particolare, dalle tabelle della FROM). Q. Che differenza esiste tra i due approcci? A. Il processo di data mining estrae regolarità e pattern sui dati che non sono note a priori, e che non possono essere ricavate da query SQL.

Q. Da dove derivano i dati da analizzare? DBMS Dati posseduti da un azienda/ organizzazione e custodoti in un DB operazionale. Dati estratti dal Web (es. OPEN DATA) Dati estratti dai social media

Q. Da dove derivano i dati da analizzare? DBMS Dati posseduti da un azienda/ organizzazione e custodoti in un DB operazionale. + Dati estratti dal Web (es. OPEN DATA) + Dati estratti dai social media

Big Data: grandi moli di dati, provenienti da sorgenti eterogenee, difficili da gestire ed analizzare utilizzando strumenti tradizionali. Le 3 V dei Big-Data: Volume Varietà Velocità Valore Fonte: http://www.datameer.com/product/big-data.html 9

Un esempio di sorgente di Big-Data: Dispositivi mobili 3. ANALYZE 2. SHARE 4. PROVIDE SERVICES 1. SENSE Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010 10

Un esempio di applicazione di tecniche di data-mining (1) TRAINING PHASE <timestamp, dato sensore 1, dato sensore 2, dato sensore3, CLASSE MOBILITA > TRAINING SET <1/1/2014:08:50:23, 0.323, 0.123, 9.8, 1214, 134.121, 125.56, 5421,, WALKING> DATABASE relazionale contentente le osservazioni raccolte 11

Un esempio di applicazione di tecniche di data-mining (1) ESTRAZIONE DELLA CONOSCENZA MINING Modello di classificazione If (val1 < Y) and (val2 > Z) then WALKING If (val2 > Y) and (val3 > W) then BIKING else DRIVING CAR 12

Un esempio di applicazione di tecniche di data-mining (1) PREDIZIONE E TESTING <timestamp, dato sensore 1, dato sensore 2, dato sensore3, > MODELLO Output classificazione: WALKING 13

Un esempio di applicazione di tecniche di data-mining (1) L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Un esempio di applicazione di tecniche di data-mining (1) L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Un esempio di applicazione di tecniche di data-mining (1) L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Un esempio di applicazione di tecniche di data-mining (1) L. Bedogni, M. Di Felice, L. Bononi, By Train or By Car? Detecting the User's Motion Type through Smartphone Sensors Data, in Proc. of the 5th IFIP International Conference Wireless Days 2012 (WD 2012), Dublin, Ireland, November 21-23, 2012

Q. Da dove derivano i dati da analizzare? DBMS Dati posseduti da un azienda/ organizzazione e custodoti in un DB operazionale. + Dati estratti dal Web (es. OPEN DATA) + Dati estratti dai social media

Un esempio di applicazione di tecniche di data-mining (2) Analisi pagine FB delle Destination Management Organizations (DMO) su scala regionale Analisi utilizzo dei social media per fini di marketing del turismo Individuazione bestpractice per pubblicazione dei contenuti

Un esempio di applicazione di tecniche di data-mining (2) Impatto del profilo FB misurato attraverso l engagement: (Likes+ Comments+ Shares) (Total _ Posts Total _ Fans(end _ of _ the_ month)) 100 Quale fattore incide positivamente sull engagement? Quale fattore incide negativamente sull engagement? STRATEGIE PER PUBBLICAZIONE DEI CONTENUTI

Un esempio di applicazione di tecniche di data-mining (2) REGRESSIONE LINEARE COEFFICIENTI Y = β 0 + β 1 * X 1 + β 2 * X 2 +... + β M * X M Variabile dipendente: Engagement Variabile esplicativa: Es. Geografia, Stagione, Tipo Post, Frequenza Post, etc

Q. Dove memorizzare i dati necessari per l analisi? DBMS REPORT DW ANALISI Un data warehouse è una collezione di dati (non volatile) finalizzata al supporto del processo decisionale.

Un data warehouse è un database relazionale finalizzato all analisi ed al processo decisionale. Q. Che differenza c è tra un data warehouse ed i database operazionali visti fin qui nel corso? R. A basso livello, nessuna (modello relazionale à chiavi, tabelle, vincoli integrità, SQL, etc) R. Le differenze principali sono nella progettazione

Differenze principali tra database operazionali (visti fin qui) e data warehouse. OPERAZIONI sui DATI Database operazionali à Accessi multipli ai dati, aggiornamenti costanti nel tempo, possibile alta concorrenza delle operazioni lettura/scrittura. Data warehouse à Accesso in sola lettura, dati storici e non soggetti a cambiamento.

Differenze principali tra database operazionali (visti fin qui) e data warehouse. RAPPRESENTAZIONI dei DATI Database operazionali à I dati delle tabelle sono normalizzati (Prima/Seconda/Terza Forma Normale) per ridurre la ridondanza dei dati. Data warehouse à I dati sono rappresentati in forma denormalizzata per evitare operazioni (costose) di join tra le tabelle troppo frequenti.

Differenze principali tra database operazionali (visti fin qui) e data warehouse. GRANULARITA dei DATI Database operazionali à Ogni riga contiene informazioni relative ad operazioni di inserimento (insert SQL), eseguite sul database. Data warehouse à I dati rappresentano informazioni aggregate, utili per la reportistica, spesso ottenute processando altri dati (del db).

Esistono opportune metodologie (che non vedremo) per progettare un data warehouse relazionale. MODELLO A STELLA MODELLO OLAP Noi ci concentriamo ora sul processo di analisi dei dati

ESEMPIO di PROCESSO di DATA-MINING Un azienda di telefonia vuole analizzare il data-set dei propri clienti abbonati, in modo da: Costruire una profilazione della clientela, in modo da individuare un possibile nuovo cliente, a partire dai suoi dati (es. età, sesso, lavoro, etc). Determinare quali utenti abbonati possono essere interessati ad una nuova offerta (es. abbonamento Internet con tecnologia LTE). Q. Da dove partire per effettuare l analisi?

CRISP-DM (Cross Industry Data Process for Data Mining) à metodologia standard e generale per l implementazione di un processo di data mining. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

CRISP-DM (Cross Industry Data Process for Data Mining) à metodologia standard e generale per l implementazione di un processo di data mining. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

BUSINESS UNDERSTANDING In questa fase, è necessario comprendere bene gli obiettivi che il sistema dovrebbe raggiungere (es. modello predizione costi?) ed i requisiti del committente. Inventario delle risorse disponibili. Requisiti, presupposti e vincoli. Analisi dei rischi/imprevisti. Analisi dei costi/benefici.

ESEMPIO di PROCESSO di DATA-MINING Nel caso di studio (azienda di telefonia), la fase di business understanding include la formulazione delle risposte ai seguenti quesiti: Che margine di profitto mi aspetto di ottenere dal modello di previsione dei nuovi clienti? Che margine di risparmio mi aspetto di ottenere effettuando pubblicita mirata delle nuove offerte? Quali sono i costi necessari per implementare il modello di data-mining nel processo decisionale?

CRISP-DM (Cross Industry Data Process for Data Mining) à metodologia standard e generale per l implementazione di un processo di data mining. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

DATA UNDERSTANDING In questa fase, è necessario comprendere bene quali dati sono fondamentali per la costruzione del modello di data mining. Report dei dati disponibili. Costruzione del dataset. Strategie di recupero dati mancanti. Criteri di verifica della qualità dei dati.

ESEMPIO di PROCESSO di DATA-MINING Nel caso di studio (azienda di telefonia), la fase di data understanding include la formulazione delle risposte ai seguenti quesiti: Ho a disposizione tutti i dati necessari per poter classificare gli utenti del mio servizio? Devo prevedere campagne di raccolte dati (es. attraverso survey o interviste telefoniche?) Posso estendere il mio data-set includendo dati provenienti da altre fonti (es. social media)?

CRISP-DM (Cross Industry Data Process for Data Mining) à metodologia standard e generale per l implementazione di un processo di data mining. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

DATA PREPARATION Molti algoritmi di data-mining richiedono di trasformare i dati in un opportuno formato per poter essere eseguiti efficacemente. Es. Gli algoritmi di classificazione lavorano spesso su un numero discreto di classi da riconoscere, sebbene i dati in questione abbiano un dominio continuo.

DATA PREPARATION STORICO EROGAZIONI Costruire un modello di data-mining per decidere l erogazione di una carta di credito sulla base della segmentazione degli utenti. Codice Macchina Eta Casa Reddito Erogazione 1332 SI 26 SI 10500 SI 2232 NO 40 SI 20000 SI 4323 NO 60 NO 5000 NO Se Reddito <= 10000 à 0 Se Reddito> 10000 & Reddito < 15000 à 1 Se Reddito >= 15000 à 2 REGOLE di CLASSIFICAZIONE Reddito 1 2 0

DATA PREPARATION Molti algoritmi di data-mining lavorano su dati normalizzati su un intervallo (es. [0,1]). Normalizzazione Massimo/Minimo: ValMin ValNew i = 0 1 Val i Min(Val) Max(Val) Min(Val) ValMax 15 20 40 60 0 0.11 0.55 1

DATA PREPARATION Molti algoritmi di data-mining lavorano su dati normalizzati in base alla media dei valori. Normalizzazione con Deviazione Standard: ValNew i = Val i Media(Val) Std(Val) Media 0 15 20 40 60 0 0.11 0.55 1

DATA PREPARATION In molti data-set, possono essere presenti dati anomali (out-lier) che possono alterare l analisi. 1 1-Rischio 0 Reddito 1 Dati anomali 1) Come identificarli? 2) Come gestirli? In molti casi, l obiettivo del processo di data mining consiste nella ricerca degli outlier (es. analisi frodi)

DATA PREPARATION In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l analisi. 1 1-Rischio 0 Reddito 1 Dati anomali 1) Come identificarli? Es. Range valori consentiti: [Media Y*Dev: Media+Y*Dev] Se X fuori dal range à OUTLIER

DATA PREPARATION In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l analisi. 1 1-Rischio Dati anomali 1) Come identificarli? Es. : Metodo dei vicini X(x 1,y 1 ) e Y (x 2,y 2 ) sono vicini se: (x 1 x 2 ) 2 + (y 1 y 2 ) 2 < R 0 Reddito 1 Se #Vicini(X) < Soglia à OUTLIER

DATA PREPARATION In molti data-set, possono essere presenti dati anomali (outlier) che possono alterare l analisi. 1 1-Rischio 0 Reddito 1 Dati anomali 1) Come identificarli? 2) Come gestirli? Rimovere gli outlier Sostituirli con valori NULL Sostituirli con Media(Val)

DATA PREPARATION In molti data-set, possono essere presenti dati incompleti che possono condizionare l analisi. STORICO EROGAZIONI Codice Macchina Eta Casa Reddito Erogazione 1332 SI??? SI 10500 SI 2232 NO 40??? 20000 SI 4323??? 60 NO??? NO Q. Come gestire i record con informazioni incomplete?

DATA PREPARATION Diverse possibilita : In molti data-set, possono essere presenti dati incompleti che possono condizionare l analisi. Scartare record incompleti Rimpiazzare??? con valori NULL STORICO Rimpiazzare EROGAZIONI??? con il valore medio dell attributo Codice Rimpiazzare Macchina??? Con Eta un valore Casa che non alteri Reddito la deviazione Erogazione Standard dei valori dell attributo 1332 SI??? SI 10500 SI Rimpiazzare??? Con valori plausibili dell attributo sulla 2232 base NO di valori simili. 40??? 20000 SI 4323??? 60 NO??? NO Q. Come gestire i record con informazioni incomplete?

DATA PREPARATION In molti contesti è opportuno ridurre il numero di attributi del data-set da analizzare Ragioni di efficienza à + Attributi: > Maggior tempo di computazione Ragioni di accuratezza à Alcuni attributi non sono utili per l analisi STORICO EROGAZIONI Informazione non utile per il modello Codice CF Macchina Eta Casa Reddito Erogazione 1332 ADFDS802M SI 26 SI 10500 SI 2232 FSFSS102M NO 40 SI 20000 SI 4323 MRGTY43R NO 60 NO 5000 NO

DATA PREPARATION In molti contesti è opportuno ridurre il numero di attributi del data-set da analizzare Ragioni di efficienza à + Attributi: > Maggior tempo di computazione Ragioni di accuratezza à Alcuni attributi non sono utili per l analisi STORICO EROGAZIONI Informazione non utile per il modello Codice CF Macchina Eta Casa Reddito Erogazione 1332 ADFDS802M SI 26 SI 10500 SI 2232 FSFSS102M NO 40 SI 20000 SI 4323 MRGTY43R NO 60 NO 5000 NO

DATA PREPARATION L attività di data preparation è molto delicata, le scelte effettuate possono condizionare l analisi STORICO EROGAZIONI Codice Macchina Eta Casa Reddito Erogazione 1332 SI 20 SI 10500 SI 2232 NO 40 SI 20000 SI 4323 SI 60 NO 500000 NO SCELTA 1: Seleziono la riga come outlier e la rimuovo

DATA PREPARATION L attivita di data preparation e molto delicata, le scelte effettuate possono condizionare l analisi STORICO EROGAZIONI Valore medio Reddito: 15250 Codice Macchina Eta Casa Reddito Erogazione 1332 SI 20 SI 10500 SI 2232 NO 40 SI 20000 SI 4323 SI 60 NO 500000 NO SCELTA 1: Seleziono la riga come outlier e la rimuovo

DATA PREPARATION L attività di data preparation e molto delicata, le scelte effettuate possono condizionare l analisi STORICO EROGAZIONI Valore medio Reddito: 176833 Codice Macchina Eta Casa Reddito Erogazione 1332 SI 20 SI 10500 SI 2232 NO 40 SI 20000 SI 4323 SI 60 NO 500000 NO SCELTA 2: Non rimuovo la riga, nessun outlier

CRISP-DM (Cross Industry Data Process for Data Mining) à metodologia standard e generale per l implementazione di un processo di data mining. BUSINESS UNDERSTANDING DATA UNDERSTANDING DEPLOYMENT DB DW DATA PREPARATION EVALUATION MODELING

Algoritmi diversi, per risolvere problemi diversi: Classificazione Determinare se gli attributi di una certa istanza appartengono o meno ad una classe. Predizione Predire il valore di una serie temporale (valori continui). Associazione Determinare regole del tipo: Se X allora Y. Segmentazione Scoprire pattern sui dati, raggruppare istanze simili in gruppi (cluster) di istanze.

Algoritmi diversi, per risolvere problemi diversi: Classificazione Determinare se gli attributi di una certa istanza appartengono o meno ad una classe. Segmentazione Scoprire pattern sui dati, raggruppare istanze simili in gruppi (cluster) di istanze. Predizione Predire il valore di una serie temporale (valori continui). Associazione Determinare regole del tipo: Se X allora Y

INPUT Data un istanza (record) di dati su N attributi: A(x 1,x 2,x 3,x 4,x 5, x N ) Dato un insieme di M possibili classi: C={c 1,c 2, c M } OUTPUT Determinare la classe c j cui appartiene l istanza A. COME? Mediante apprendimento supervisionato à

TRAINING-SET Un Training-Set e definito come un insieme di record: T={(A j,c jk )} A j e un record su N attributi: (x j1,x j2, x jn ) c jk e la classe cui appartiene il record A j Q. Da dove ottengo il Training-Set? A. Spesso disponibile come storico di dati disponibili nel DB o nel DW, o costruito da fonti esterne.

TRAINING-SET Un Training-Set e definito come un insieme di record: T={(A j,c jk )} A j e un record su N attributi: (x j1,x j2, x jn ) c jk e la classe cui appartiene il record A j {<A j,c ij >} DATA-SET + ALGORITMO CLASSIFICAZIONE Istanza A i Fase di TESTING Fase di TRAINING MODELLO C j

Esempio. Determinare se un certo cliente può essere interessato o meno ad acquistare un auto berlina, ai fini di migliorare la campagna pubblicitaria. TRAINING SET Data-set derivato dai risultati di precedenti campagne pubblicitarie Nr Stato Sesso #Nucleo Reddito Acquisto Utente 1 Coniugale Celibe M Familiare 1 Annuo 30000 SI 2 Nubile F 1 45000 NO 3 Sposato M 4 35000 SI TESTING SET <4, Sposato, M, 3, 38000> ACQUISTO??

ALGORITMI di CLASSIFICAZIONE Naïve Bayes Reti Bayesiane Alberi di decisione Random Forest Support Vector Machines (SVM) A. Quale algoritmo usare? Q. Non esiste un classificatore ottimo in assoluto, dipende dallo scenario applicativo

CLASSIFICATORE NAÏVE BAYES (NB) Il classificatore NB utilizza una tecnica statistica con la quale si cerca di stimare la probabilità di un istanza di appartenere ad una certa classe. Istanza A(x 1, x N ) da classificare. P(c j A) à probabilità condizionata di avere una classe c j, vedendo un istanza A. In NB, scelgo la classe c k, tale che: k = argmax j P(c j A) Come calcolare P(c j A)??

Probabilità condizionata: P(E 1 E 2 ) = P(E 1, E 2 ) P(E 2 ) Probabilità congiunta (in caso di eventi indipendenti): P(E 1, E 2 ) = P(E 1 ) P(E 2 ) Teorema di Bayes: P(E 1 E 2 ) = P(E 2 E 1 ) P(E 1 ) P(E 2 ) Applicando il Teorema di Bayes al nostro problema: argmax j P(c j A) = argmax j P(A c j ) P(c j ) P(A)

Semplificando il problema argmax j P(A c j ) P(c j ) P(A) argmax j P(A c j ) P(c j ) Il record A è composto di N Attributi: A(x 1,x 2, x N ) argmax j P(A c j ) P(c j ) = argmax j P(x 1, x 2,..., x N c j ) P(c j ) Assumendo che gli N attributi siano tutti indipendenti N i=1 argmax j P(x 1, x 2,..., x N c j ) P(c j ) = argmax j P(c j ) P(x i c j )

Conclusione à L algoritmo di NB sceglie la classe c j che massimizza la quantità: N i=1 P(c j ) P(x i c j ) PROBLEMA: Come stimare P(c j ) e P(x i c j )? Possibile Soluzione: Si approssima le probabilità come frequenze relative, rispetto ai valori del training set. P(c j ) = # istan ze classificate c j # istan ze totali

Reddito <30000 à 0, Reddito >=30000 à 1 Nr Sposato Sesso #Nucleo Reddito Acquisto Utente 1 NO M Familiare 4 Annuo 0 NO 2 NO F 1 1 NO 3 SI M 4 1 SI 4 SI F 3 0 NO 5 NO M 1 1 NO 6 SI F 3 1 SI A=< Sposato, M, 3, 38000> P(SI)=2/6=0.33 C={SI, NO} P(NO)=4/6=0.67

A=<Sposato, M, 3, 38000> Reddito <30000 à 0, Reddito >=30000 à 1 Nr Sposato Sesso #Nucleo Reddito Acquisto Utente 1 NO M Familiare 4 Annuo 0 NO 2 NO F 1 1 NO 3 SI M 4 1 SI 4 SI F 3 0 NO 5 NO M 1 1 NO 6 SI F 3 1 SI P(Sposato SI)=2/2=1 P(Sposato NO)=1/4=0.25 P(M SI)=1/2=0.5 P(M NO)=2/4=0.5 P(3 SI)=1/2=0.5 P(3 NO)=1/2=0.5 P(1 SI)=1/2=1 P(1 NO)=2/4=0.5

A=<Sposato, M, 3, 38000> Reddito <30000 à 0, Reddito >=30000 à 1 Nr Sposato Sesso #Nucleo Reddito Acquisto Utente 1 NO M Familiare 4 Annuo 0 NO 2 NO F 1 1 NO 3 SI M 4 1 SI 4 SI F 3 0 NO 5 NO M 1 1 NO 6 SI F 3 1 SI C(SI <Sposato,M,3,38000>) à 0.33*1*0.5*0.5*1=0.08125 C(NO <Sposato,M,3,38000>) à 0.67*0.25*0.5*0.5*0.5=0.0408

A=<Sposato, M, 3, 38000> Reddito <30000 à 0, Reddito >=30000 à 1 Nr Sposato Sesso #Nucleo Reddito Acquisto Utente 1 NO M Familiare 4 Annuo 0 NO Classificata come SI 2 NO F 1 1 NO 3 SI M 4 1 SI 4 SI F 3 0 NO 5 NO M 1 1 NO 6 SI F 3 1 SI C(SI <Sposato,M,3,38000>) à 0.33*1*0.5*0.5*1=0.08125 C(NO <Sposato,M,3,38000>) à 0.67*0.25*0.5*0.5*0.5=0.0408

Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione. Nodi interni à attributi utilizzati dal classificatore (sottoinsieme degli attributi disponibili) Arco à condizione sui valori del nodo Foglie à classe (output) del modello A 2 <s C 1 A 1 <k A 2 A 2 >=s A 1 A 3 A 1 >= v C 1 k<=a 1 > v A 3 >=p A 3 <p C 2 C 3

Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione. Nodi interni à attributi utilizzati dal classificatore (sottoinsieme degli attributi disponibili) Arco à condizione sui valori del nodo Foglie à classe (output) del modello SI <=20000 <=4 SI Reddito Nucleo Sposato >4 >20000 SI NO NO NO

Un albero decisionale è una struttura dati (molto) utilizzata nei problemi di classificazione. Classificazione di una nuova istanza: <Sposato=SI, Sesso=M, Reddito=4000, Nucleo=5> CLASSE: SI Problema: Come costruire l albero? SI <=20000 <=4 SI Reddito Nucleo Sposato >4 >20000 SI NO NO NO

Una rete bayesiana è un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). Ogni nodo è una variabile casuale. Un arco da X ad Y indica che X ha un influenza su Y, ossia che le due variabili NON sono indipendenti (P(Y X) <> P(Y)). L assenza di archi tra due nodi indica che le due variabili sono indipendenti. C DAG Grafo Diretto Aciclico A B D

Una rete bayesiana e un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). Ogni nodo X i dispone di una distribuzione di probabilita P(X i Parents(X i )) che quantifica gli effetti dei nodi padre sui figli. DAG Grafo Diretto Aciclico A A P(A) false 0.6 B true 0.4 C D

Una rete bayesiana e un modello (visuale) per rappresentare le interazioni e le dipendenze tra variabili casuali (random variable). Ogni nodo X i dispone di una distribuzione di probabilita P(X i Parents(X i )) che quantifica gli effetti dei nodi padre sui figli. A B P(B A) false false 0.01 false true 0.99 true false 0.7 true true 0.3 C DAG Grafo Diretto Aciclico A B D

Tramite le reti Bayesiane, e possibile modellare comportamenti causa-effetto tra variabili casuali, ed effettuare diagnosi (= determinare la probabilita della causa dato l effetto). Irrigazione ON Pioggia P(R=true)=0.4 P(R=false)=0.6 P(I=true)=0.2 P(I=false)=0.8 Erba Bagnata P(E I=true, R=true)=0.05 P(E I=true, R=false)=0.95 P(E I=false, R=true)=0.90 P(E I=false, R=false)=0.10

Irrigazione ON Pioggia P(R=true)=0.4 P(R=false)=0.6 P(I=true)=0.2 P(I=false)=0.8 Erba Bagnata P(E I=true, R=true)=0.05 P(E I=true, R=false)=0.95 P(E I=false, R=true)=0.90 P(E I=false, R=false)=0.10 = P(R= true E = true) = P(E = true R= true) P(R= true) P(E = true) P(E = true R= true) P(R= true) P(E = true R= true) P(R= true)+ P(E = true R= false) P(R= false) =

P(R= true E = true) = Irrigazione ON 0.95 0.4 0.95 0.4 + 0.2 0.6 = 0.75 Pioggia P(R=true)=0.4 P(R=false)=0.6 P(I=true)=0.2 P(I=false)=0.8 Erba Bagnata P(E I=true, R=true)=0.95 P(E I=true, R=false)=0.90 P(E I=false, R=true)=0.90 P(E I=false, R=false)=0.10 = P(R= true E = true) = P(E = true R= true) P(R= true) P(E = true) P(E = true R= true) P(R= true) P(E = true R= true) P(R= true)+ P(E = true R= false) P(R= false) =

Tramite le reti Bayesiane, e possibile effettuare classificazioni di istanze A(x 1, x N ). In questo caso la rete è composta da: Nodo padre della rete à Classi c j da determinare Nodi foglia ed intermedi à Singoli attributi x i Si sceglie la classe c k, tale che: k = argmax j P(C j A) = argmax j P(C j, A) P(A)

Un esempio di classificatore basato su reti Bayesiane. C={Spam, No Spam} A={a 1,a 2 } à istanza da classificare A 1 ={true,false} à Contiene Poste Mobili nel subject della email? A 2 ={true,false} à Contiene dei link HTML nel testo? Spam Email A 1 A 2

Un esempio di classificatore basato su reti Bayesiane. C={Spam, No Spam} A={a 1,a 2 } à istanza da classificare A 1 ={true,false} à Contiene Poste Mobili nel subject? A 2 ={true,false} à Contiene dei link HTML nel testo? P(A 1 =true C=Spam)=0.8 Spam Email P(C=Spam)=0.4 P(A 2 =true A 1 =true, C=Spam)=0.95. A 1 A 2

Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false): P(C = Spam, A 1 = true, A 2 = false) P(C = NoSpam, A 1 = true, A 2 = false) Confronto i due valori, e scelgo la classe che garantisce la probabilità più alta associata all istanza A. Q. Come calcolare la probabilita congiunta?

Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false): P(C = Spam, A 1 = true, A 2 = false) P(C = NoSpam, A 1 = true, A 2 = false) In una rete bayesiana con variabili casuali X 1, X 2, X N, vale il seguente risultato: d P(X 1, X 2,...X N ) = P(X i parents(x i )) i=1

Un esempio di classificatore basato su reti Bayesiane. Supponendo di dover classificare A(true, false): P(C = Spam, A 1 = true, A 2 = false) P(C = NoSpam, A 1 = true, A 2 = false) P(C = Spam) P(A 1 = true C = Spam) P(A 2 = true A 1 = true,c = Spam) C = NoSpam) P(A 1 = true C = NoSpam) P(A 2 = true A 1 = true,c = NoSpam

Algoritmi diversi, per risolvere problemi diversi: Classificazione Determinare se gli attributi di una certa istanza appartengono o meno ad una classe. Segmentazione Scoprire pattern sui dati, raggruppare istanze simili in gruppi (cluster) di istanze. Predizione Predire il valore di una serie temporale (valori continui). Associazione Determinare regole del tipo: Se X allora Y

La cluster/segmentation analysis è un insieme di tecniche per raggruppare oggetti in classi tra loro omogenee, ossia con caratteristiche simili. INPUT Insieme di N elementi da partizionare Numero di Classi: NC OUTPUT Determinare la composizione di ogni classe c 0<=i<nc

POSSIBILI APPLICAZIONI Ricerche di mercato Segmentazione della clientela Analisi dei social media Identificazione degli outlier Es. Database dei correntisti di una banca. Quali attributi simili consentono di raggrupare i clienti? Quali differenze tra i valori degli attributi (es. tipo del conto, età, sesso, etc) segmentano il database?

ALGORITMO DELLE K-MEDIE (K-MEANS CLUSTERING) Algoritmo di clusterizzazione non-gerarchico. Richiede di indicare il numero di cluster (insiemi) che si vogliono creare (NC). Gli elementi da classificare sono attributi con valori reali. Nel caso di attributi testuali, e necessaria una conversione di dominio. Es. Colore: {rosso, blu, verde} à {0,1,2} Basata sul concetto di distanza tra elementi à

Distanza tra due elementi in uno spazio euclideo 2D d(x, y) = (x 1 y 1 ) 2 + (x 2 y 2 ) 2 Distanza tra due elementi in uno spazio euclideo ND d(x, y) = n (x i y i ) 2 i=1 Centroide di un gruppo (2D): c(a 1,a 2, a M ) " $ c$ $ $ # M i=1 a i,x M, M i=1 a i,y M % ' ' ' ' &

1. Assegno casualmente gli elementi A={a 1,,a M } alle NC classi di clusterizzazione. 2. Ripeto le seguenti operazioni: 2.1 Calcolo il centroide c j di ogni classe j 2.2 Calcolo la distanza tra ogni elemento a i ed ogni centroide c j à d(a i,c j ) 2.3 Assegno l elemento a i al cluster j con centroide piu vicino à j=argmin(d(a i,c j )) 3. Concludo il ciclo quando: Il passo 2.3 non produce differenze rispetto all assegnamento del passo precedente (convergenza). L errore della clusterizzazione < E min (soglia d errore).

Q. Come definire l errore della classificazione? Dato un elemento a i (a i,x,a i,y ) à c(a i ) centroide del cluster cui e assegnato l elemento a i. A. Errore quadratico medioà somma (al quadrato) delle distanze tra a i e c(a i ), per tutti gli elementi a i. M i=1 e= d(a i,c(a i )) 2 La classificazione termina quando l errore diventa minore di una soglia E min (e<e min ).

Es.: A={insieme di info sui clienti di una banca} A={a x, y } a x à Reddito a y à Eta Eta A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } NC=#cluster da formare=3 30 20 * * * * * * * * * * = a x,y 10 5 10 15 20 25 30 35 40 Stipendio x 10000

Es.: A={insieme di info sui clienti di una banca} A={a x, y } a x à Reddito a y à Eta Eta A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } 30 20 10 NC=#cluster da formare=3 * * * * * * * * * STEP 1 Creazione casuale dei cluster * = a x,y 5 10 15 20 25 30 35 40 Stipendio x 10000

Es.: A={insieme di info sui clienti di una banca} A={a x, y } a x à Reddito a y à Eta Eta A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } 30 20 10 NC=#cluster da formare=3 * + * * + * * * * * + * STEP 2.1 Loop: Calcolo centroidi * = a x,y 5 10 15 20 25 30 35 40 Stipendio x 10000

Es.: A={insieme di info sui clienti di una banca} A={a x, y } a x à Reddito a y à Eta Eta A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } 30 20 10 NC=#cluster da formare=3 * + * * + * * * * * + * STEP 2.2 Loop: Calcolo distanze * = a x,y 5 10 15 20 25 30 35 40 Stipendio x 10000

Es.: A={insieme di info sui clienti di una banca} A={a x, y } a x à Reddito a y à Eta Eta A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } 30 20 10 NC=#cluster da formare=3 * * * * * * * * * STEP 2.3 Loop: Riassegnamento * = a x,y 5 10 15 20 25 30 35 40 Stipendio x 10000

Es.: A={insieme di info sui clienti di una banca} A={a x, y } a x à Reddito a y à Eta Eta A={(12000,24), (28000,28), (15000,24), (36000,39), (34000,35), (19000,27), (39000,35), (26000,28), (32000,32) } 30 20 10 NC=#cluster da formare=3 * * * * * * * * * CONVERGENZA? Non ancora STEP 3 Loop: Valuto condizione * = a x,y 5 10 15 20 25 30 35 40 Stipendio x 10000