Introduzione e Concetti di Base Data Selection Information...

Post on 21-Jan-2021

0 views 0 download

transcript

Data preprocessing

•  Introduzione e Concetti di Base •  Data Selection •  Information Gathering •  Data cleaning •  Data reduction •  Data transformation

Data preprocessing

•  Trattamento di valori anomali •  Trattamento di outliers •  Trattamento di tipi impropri

Data preprocessing

•  Valori mancanti –  NULL

•  Valori sconosciuti –  Privi di significato

•  Valori non validi –  Con valore noto ma non significativo

Data preprocessing

•  I valori mancanti possono apparire in molte forme: –  <empty field> “0” “.” “999” “NA” …

•  I valori vanno standardizzati (e.g., utilizzando il simbolo NULL)

•  Trattamento di valori nulli: –  Ignorare I record con valori nulli –  Trattare il valore null come un valore separato –  Imputare: sostituire il valore null con altri valori

Data preprocessing

•  Un valore può essere mancante perché non registrato o perché è inapplicabile

•  Per Jane non è registrato, mentre per Joe o Anna dovrebbe essere considerato Non applicabile

•  I valori null possono essere inferiti

Nome Età Sesso Incinta ..

Mary 25 F N Jane 27 F - Joe 30 M -

Anna 2 F -

Pronto soccorso Ospedale

Data preprocessing

•  Utilizzando media/mediana/moda •  Predicendo i valori mancanti utilizzando la distribuzione

dei valori non nulli •  Segmentando i dati (tramite le distribuzioni di altre

variabili) e utilizzando misure statistiche (media/moda/mediana) di ogni segmento

•  Segmentando i dati e utilizzando le distribuzioni di probabilità all’interno dei segmenti

•  Costruendo un modello di classificazione/regressione e utilizzando il modello per calcolare i valori nulli –  In dati numerici il trattamento può influenzare

la distribuzione

Data preprocessing

•  Vogliamo trasformare tutte le date in uno stesso formato •  Problema molto sentito

–  e.g. “Sep 24, 2003” , 9/24/03, 24.09.03, etc •  Rappresentazioni categoriche: YYYYMM / YYYYMMDD

–  YYYYMMDD non preserva gli intervalli: –  20040201 - 20040131 /= 20040131 – 20040130 –  Ciò può introdurre bias nei modelli

Data preprocessing

•  Possiamo usare: –  Unix system date: numero di secondi dal 1970 –  Numero di giorni dal 1 gennaio 1960 (SAS)

•  Problemi: –  I valori non sono ovvii –  Non aiuta l’interpretazione –  Facile commettere errori

Data preprocessing

giorni_dal_1_gennaio - 0.5 Date = YYYY + ----------------------------------

365 + 1_se_bisestile •  Preserva gli intervalli •  L’anno e il quadrimestre sono facili da estrapolare

–  Sep 24, 2003 is 2003 + (267-0.5)/365= 2003.7301 (round to 4 digits)

•  Può essere esteso al tempo

Data preprocessing

•  Outliers = Valori inconsistenti con la maggioranza dei dati

•  Differente significato per gli outliers –  Valido: il salario di un amministratore delegato –  Rumore: Età = 200

•  Rimozione –  Clustering –  Curve-fitting –  Test di ipotesi con un modello precalcolato

Data preprocessing

•  Alcuni algoritmi possono lavorare con valori nominali

•  Altri metodi (reti neurali, regressione) lavorano solo con valori numerici – Conseguenza: trasformazione

•  Strategie differenti

Data preprocessing

•  Campi binari – E.g. Sesso=M, F

•  Convertito in Campo_0_1 con valori 0, 1 – e.g. Sesso= M Sesso_0_1 = 0 –  Sesso = F Sesso_0_1 = 1

Data preprocessing

•  Attributi ordinati (ad esempio, Giudizio) possono essere convertiti in numeri che preservano l’ordine naturale – Ottimo 10.0 – Discreto 8 – Sufficiente 6 –  Insufficente 4 – Scarso 2

•  D: Perché è importante preservare l’ordine? •  R: Per permettere confronti significativi: Giudizio >

6

Data preprocessing

•  Un ordinale con n valori può essere codificato utilizzando n–1 attributi booleani

•  Esempio: l’attributo “temperature”

Temperature Cold Medium Hot

Temperature > cold Temperature > medium False False True False True True

Dati originali Dati trasformati

Data preprocessing

•  Attributi numinali con pochi (regola pratica < 20) valori –  e.g. Colore=Rosso, Arancio, Giallo, …, Viola –  Per ogni valore v creiamo una variabile binaria C_v ,

che assumerà valore 1 if Colore=v, 0 altrimenti

ID Colore … 371 rosso 433 giallo

ID C_rosso C_arancio C_giallo …

371 1 0 0

433 0 0 1

Data preprocessing

•  Esempi: –  Codici Postali (~10.000 valori) –  Codici professionali (7,000 valori)

•  D: Come gestirli ? •  R: Ignoriamo gli attributi che si comportano come

chiavi (= con valori unici per ogni record) •  Gli altri attributi dovrebbero essere raggruppati in

gruppi “naturali” : –  Esempio: Codici postali regioni –  Professioni – selezionare le più frequenti, raggruppare

le altre •  Trattare le nuove categorie come attributi nominali

Data preprocessing

•  Introduzione e Concetti di Base •  Data Selection •  Information Gathering •  Data cleaning •  Data reduction •  Data transformation

Data preprocessing

•  Riduzione del volume dei dati – Orizzontale: eliminazione di colonne

– Factor Analysis – Principal Component Analysis

– Verticale: eliminazione di tuple – Data Sampling – Clustering

Data preprocessing

•  Permette ad un algoritmo di mining di essere eseguito con una complessità minore (su una porzione sublineare della dimensione dei dati)

•  Problema: scegliere un sottoinsieme rappresentativo dei dati –  Un campione è rappresentativo se ha le stesse proprietà

(di interesse) del dataset originale –  Schemi semplici possono risultare inadeguati in presenza di

picchi/sbilanciamenti

Data preprocessing

•  Simple Random Sampling –  Stessa probabilità di selezionare un oggetto

•  Sampling senza rimpiazzamento –  Gli oggetti selezionati sono rimossi dal dataset originale

•  Sampling con rimpiazzamento –  Gli oggetti selezionati non sono rimossi

– Lo stesso oggetto può essere scelto più volte

•  Stratified sampling –  Dividi i dati in più partizioni; campiona da ogni partizione

Data preprocessing

8000 oggetti 2000 oggetti 500 oggetti

Data preprocessing

•  Quando il numero di attributi cresce, i dati diventano progressivamente sparsi

•  Densità e distanza perdono di significatività

• La differenza tra max e min diminuisce progressivamente

Data preprocessing

•  Evita il problema descritto precedentemente •  Migliora le performances degli algoritmi •  Permette una migliore visualizzazione •  Può eliminare attributi irrilevanti e ridurre il

rumore

•  Tecniche – Principle Component Analysis – Singular Value Decomposition – Altri metodi (più avanti nel corso)

Data preprocessing

Data preprocessing

Data preprocessing

Data preprocessing

Data preprocessing

•  Introduzione e Concetti di Base •  Data Selection •  Information Gathering •  Data cleaning •  Data reduction •  Data transformation

Data preprocessing

•  Errori nei dati •  Dati incompleti •  forte asimmetria nei dati

–  diversi raggruppamenti esprimono comportamenti differenti •  molti picchi

–  residui larghi e sistematici nella definizione di un modello •  La modifica della forma dei dati può alleviare questi

problemi

Data preprocessing

•  In una matrice X –  Xik rappresenta un elemento della matrice

–  (i = 1..n), n numero di righe –  (k = 1…l) l numero di attributi

•  Vogliamo definire una trasformazione T t.c. Yij = T(Xik)

–  (j = 1…m), m numero di attributi dopo la trasformazione –  Yij preserva l’informazione “rilevante” di Xik –  Yij elimina almeno uno dei problemi di Xik –  Yij è piu` utile di Xik

•  In generale, m ≠ l

Data preprocessing

•  scopi principali: –  stabilizzare le varianze –  linealizzare le relazioni tra variabili –  normalizzare le distribuzioni

•  scopi secondari: –  semplificare l'elaborazione di dati che presentano

caratteristiche non gradite –  rappresentare i dati in una scala ritenuta più adatta.

Data preprocessing

•  Molte metodologie statistiche richiedono correlazioni lineari, distribuzioni normali, assenza di outliers

•  Molti algoritmi di Data Mining hanno la capacita` di trattare automaticamente nonlinearita’ e non normalita’ –  Gli algoritmi lavorano comunque meglio se tali problemi sono

trattati

Data preprocessing

•  Trasformazioni esponenziali

•  con a,b,c,d e p valori reali –  Preservano l’ordine –  Preservano alcune statistiche di base –  sono funzioni continue –  ammettono derivate –  sono specificate tramite funzioni semplici

Data preprocessing

•  Trasformazioni lineari

1€ = 1936.27 Lit. –  p=1, a= 1936.27 ,b =0

ºC= 5/9(ºF -32)

–  p = 1, a = 5/9, b = -160/9

Data preprocessing

•  min-max normalization

•  z-score normalization

•  normalization tramite decimal scaling

dove j è il più piccolo intero tale che Max(| |)<1

Data preprocessing

•  Trasformazione logaritmica

–  Si applica a valori positivi –  omogeneizza varianze di distribuzioni lognormali –  E.g.: normalizza picchi stagionali

Data preprocessing

Dati troppo dispersi!!!

Data preprocessing

Data preprocessing

•  Trasformazione in radice –  p = 1/c, c numero intero –  per omogeneizzare varianze di distribuzioni particolari, e.g.,

di Poisson •  Trasformazione reciproca

–  p < 0 –  Per l’analisi di serie temporali, quando la varianza aumenta in

modo molto pronunciato rispetto alla media

Data preprocessing

•  Aggiustiamo la media interpercentile –  In generale, –  Se la media interpercentile è

sbilanciata, allora la distribuzione dei dati è asimmetrica

–  sbilanciata a destra

–  sbilanciata a sinistra

Data preprocessing

•  Verifichiamo la simmetria

Data preprocessing

•  I valori della media interpercentile crescono col percentile considerato

•  Distribuzione sbilanciata a destra

Data preprocessing

•  Consideriamo i percentili xU e xL •  i valori c ottenuti tramite la formula

permettono di trovare il valore adeguato per p –  Intuitivamente, compariamo la differenza assoluta e

relativa tra mediana e medie interpercentili –  il valore medio (mediano) dei valori di c è il valore della

trasformazione

Data preprocessing

•  Calcolando la mediana dei valori c otteniamo p=0.5188

•  Proviamo le possibili approssimazioni razionali...

Data preprocessing

• La curva si tempera,ma i valori alti continuano a produrre differenze notevoli • Proviamo a diminuire p...

Data preprocessing

•  I valori alti continuano ad influenzare

•  Proviamo con il logaritmo...

Data preprocessing

•  Abbiamo ottenuto simmetria!

Data preprocessing

•  E.g., nel caso della regressione –  La formula

puo’ essere individuata studiando la relazione

dove z = log y e w = log x

Data preprocessing

•  Unsupervised vs. Supervised •  Globale vs. Locale •  Statica vs. Dinamica •  Task difficile

– Difficile capire a priori qual’è la discretizzazione ottimale

– bisognerebbe conoscere la distribuzione reale dei dati

Data preprocessing

•  I dati originali possono avere valori continui estremamente sparsi •  I dati originali possono avere variabili multimodali •  I dati discretizzati possono essere più semplici da interpretare •  Le distribuzioni dei dati discretizzate possono avere una forma

“Normale” •  I dati discretizzati possono essere ancora estremamente sparsi

–  Eliminazione della variabile in oggetto

Data preprocessing

•  Non etichetta le istanze •  Il numero di classi è noto a priori •  Natural binning

–  intervalli di identica ampiezza •  Equal Frequency binning

–  intervalli di identica frequenza •  Statistical binning

–  Utilizzando informazioni statistiche –  media e varianza – Quartili

Data preprocessing

•  Troppo poche ⇒ perdita di informazione sulla distribuzione •  troppe ⇒ disperde i valori e non manifesta la foma della

distribuzione •  Il numero ottimale C di classi è funzione del numero N di

elementi (Sturges, 1929)

•  L’ampiezza ottimale delle classi dipende dalla varianza e dal numero dei dati (Scott, 1979)

Data preprocessing

•  Semplice •  Ordino i valori, quindi divido il range di valori in k parti della stessa

dimensione

•  l’elemento xj appartiene alla classe i se

xj ∈ [xmin + iδ, xmin + (i+1)δ)

•  Puo` produrre distribuzioni molto sbilanciate

Data preprocessing

Ampiezza dell’intervallo prefissata

[64,67) [67,70) [70,73) [73,76) [76,79) [79,82) [82,85]

Valori della temperatura: 64 65 68 69 70 71 72 72 75 75 80 81 83 85

2 2

Count

4 2 2 2 0

Data preprocessing

[0 – 200,000) … …. 1

Count

Stipendi in un’azienda

[1,800,000 – 2,000,000]

Data preprocessing

•  δ =(160-100)/4 = 15 •  classe 1: [100,115) •  classe 2: [115,130) •  classe 3: [130,145) •  classe 4: [145, 160]

•  Caratterizza il prezzo di Bud

•  Non caratterizza il prezzo di Becks

Data preprocessing

•  Ordino e Conto gli elementi, quindi definisco il numero di intervalli calcolando

•  Dove N è il numero di elementi del campione •  l’elemento xi appartiene alla classe j se

j × f ≤ i < (j+1) × f

•  Non sempre adatta ad evidenziare correlazioni interessanti

Data preprocessing

Altezza identica= 4 (tranne che per l’ultimo intervallo)

[64 .. .. .. .. 69] [70 .. 72] [73 .. .. .. .. .. .. .. .. 81] [83 .. 85]

Valori di temperatura: 64 65 68 69 70 71 72 72 75 75 80 81 83 85

4

Count

4 4 2

Data preprocessing

•  Preferita perché evita i raggruppamenti •  In aggiunta:

– Non separa valori frequenti ai bordi degli intervalli – Crea intervalli specifici per valori speciali (e.g. 0)

Data preprocessing

•  f = 12/4 = 3 •  classe 1: {100,110,110} •  classe 2: {120,120,125} •  classe 3: {130,130,135} •  classe 4: {140,150,160}

•  Non caratterizza il prezzo di Becks

Data preprocessing

•  La discretizzazione ha un obiettivo quantificabile •  Il numero di intervalli non è noto a priori •  Esempio: voglio che in ogni intervallo di siano

almeno tre valori identici per un altro attributo

64 65 68 69 70 71 72 72 75 75 80 81 83 85 Yes No Yes Yes Yes No No Yes Yes Yes No Yes Yes No

64 85

Data preprocessing

•  Bottom-up •  Inizialmente, ogni valore è un intervallo a se’ •  Intervalli adiacenti sono iterativamente uniti se sono simili •  La similitudine è misurata sulla base dell’attributo target, contando

quanto i due intervalli sono “diversi”

Data preprocessing

•  Basato sul test del Chi quadro •  k numero di valori differenti dell’attributo target •  Aij numero di casi della j-esima classe nell’i-esimo

intervallo •  Ri numero di casi nell’i-esimo intervallo ( )

•  Cj numero di casi nella j-esima classe ( )

•  Eij frequenza attesa di Aij (Ri* Cj /N)

Data preprocessing

•  Obiettivo: data una tabella di contingenza, verificare se righe e colonne sono indipendenti –  Per un dato elemento in

classe i,j la sua probabilità è pij

–  Se righe e colonne sono indipendenti, allora

– pij = uivj

Data preprocessing

•  Se l’indipendenza vale, allora

•  La statistica Ha una distribuzione del Chi

quadro con (r-1)(c-1) gradi di libertà

Data preprocessing

•  Dato un valore per α (tipicamente, 0.05) –  Se la statistica associata ha un

valore maggiore a –  Il test viene rigettato e le colonne non sono indipendenti

Data preprocessing

Valori attuali Valori attesi

Data preprocessing

•  Si individua quanto “distinti” sono due intervalli

•  k-1 gradi di liberta` •  La significativita` del test è data

da un threshold α –  Probabilita` che l’intervallo in

questione e la classe siano indipendenti

Data preprocessing

•  Discretizzazione w.r.t. Beer •  threshold 50% confidenza •  Vogliamo ottenere una

discretizzazione del prezzo che permetta di mantenere omogeneita` w.r.t. Beer

Data preprocessing

Scegliamo gli elementi adiacenti con Chi-Value minimo

Data preprocessing

Data preprocessing

Data preprocessing

Data preprocessing

Data preprocessing

Tutti i valori sono oltre il 50% di confidenza (1.38)

Data preprocessing

•  Natural binning è il metodo più semplice (e va bene nella maggioranza dei casi) – Fallisce miseramente con distribuzioni sbilanciate)

•  Frequency binning può dare risultati migliori – Ma non può essere utilizzato con tutte le tecniche

•  La discretizzazione supervisionata è particolarmente importante per l’analisi delle dipendenze – Alcuni algoritmi (Naïve Bayes) richiedono la

discretizzazione