Scarica Appunti di Data Analytics e più Appunti in PDF di Analisi Dei Dati solo su Docsity!
Data analytics
1. Progettazione di algoritmi
L’algoritmo è un procedimento per la soluzione di un problema utilizzando un numero finito di istruzioni. Gli aspetti fondamentali di un algoritmo sono la correttezza e l’efficienza La progettazione di algoritmi viene utilizzata in diversi campi, come i pagerank, il calcolo di distanze , l’ordinamento di dati ecc..
- ANALISI DI DATI La disciplina che studia l’analisi dei dati è la data science. È diventata così importante perchè la produzione di dati negli ultimi 20 anni è cresciuta ed è diventato sempre più importante utilizzare i dati per scopi commerciali. Si stima che nel 2011 venivano prodotti circa 1800 mlrd di GB, mentre ora sono diventati 40 mila mlrd, entrando nella così detta era dei dati I dati vengono prodotti dagli utenti che navigano in rete, in quanto le nostre azioni vengono tracciate I dati che riguardano gli esseri umani crescono in maniera più importante rispetto a quelli del commercio Quando parliamo di analisi dei dati dobbiamo tenere conto che esistono dei fattori che ne hanno portato la crescita, come le tecnologie di raccolta dati, la crescita delle capacità di computazione e applicazioni efficaci nell’analisi Molte di queste tecniche sono di apprendimento, se io ho a disposizione pochi dati apprendo poche informazioni. Le applicazioni di algoritmi e le tecniche di analisi vengono utilizzati per estrarre informazione e creare conoscenza, infatti gli obiettivi principali dell’analisi dei dati sono: fare previsioni analizzando e stimando ciò che avverrà nel futuro, il secondo obiettivo è creare suggerimenti per gli utenti e infine abbiamo il supporto alle decisioni
- Il dato è ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione e costituito da simboli che debbono essere elaborati
- L’informazione è un dato che viene interpretato e che consente di avere conoscenza di fatti e situazioni Possiamo avere due tipologie di dati
- Dati organizzati : sono dotati di una struttura, in genere una tabella. Generalmente nelle righe vengono rappresentati i vari elementi, mentre nelle colonne abbiamo le caratteristiche degli elementi
- Dati non organizzati : privi di struttura organizzativa Big data: rappresentano un volume considerevole di dati difficile da mantenere in memoria centrale Sono state definite le tre V dei big data per definirli:
- Volume : grande quantità di dati
- Velocità : flusso ad alta velocità
- Varietà : varietà di formato, ovvero dati strutturati e non
Altri aspetti sono la variabilità e la complessità. La generazione dei dati segue dei flussi non costanti, in particolare ci sono dei picchi di attività oppure momenti di quiete. Possono esserci anche errori nei dati o l’assenza di dati Effettuare l’analisi per estrarre un’informazione significa trovare le proprietà di un dataset, capire quale informazione possiamo trovare e se si ha un interesse reale L’obiettivo finale è costruire un modello dei dati, ovvero analizzare i dati estraendo informazioni cercando relazioni tra diverse entità. Ad esempio, possiamo prevedere il numero di auto vendute conoscendo il prezzo di un modello? Possiamo trovare insiemi di dati ad esempio su:
- Baseball Enciclopedia, dove possiamo trovare caratteristiche dei giocatori, andamento della carriera e dei salari , l’attesa di vita di mancini e destrimani , oppure la crescita altezza e peso della popolazione
- The internet Movie database: attori apparsi in più film e aspettativa di vita
- Allmusic: produzione di musica e aspettativa di vita dei musicisti
- Google Ngrams: cambiamento nella frequenza delle parole, forme scorrette e cambiamento di significato
L’analisi dei dati coinvolge discipline come l’informatica, la matematica e la statistica e la conoscenza di dominio Ci sono però diverse differenze tra analisi di dati e informatica: 2.1 – Linguaggio Python È uno dei linguaggi maggiormente usati per l’analisi di dati, diffuso in vari ambiti. Ci sono due modi per utilizzarlo:
- Tramite codice sorgente;
- Tramite una modalità interattiva, mandando direttamente in esecuzione. Utilizzeremo la piattaforma PythonAnywhere, una piattaforma web accessibile tramite il sito www.pythonanywhere.com previa registrazione.
3 – ANALISI DI ALGORITMI
L’obiettivo degli algoritmi è risolvere dei problemi, definendo una procedura da eseguire in modo automatico. Per definire un “problema” ci rifacciamo alla definizione di “elaborazione”: quando l’algoritmo riceve una serie di dati (input), l’algoritmo deve trasformare questi dati e definire le operazioni/istruzioni con cui trasformare questi dati e trovare una soluzione, per ottenere un output. Esistono diverse tipologie di problemi:
- Decisione : dato un insieme di dati in input, il problema chiede se quei dati hanno una certa proprietà, una certa caratteristica (es. da una serie di numeri chiedo se questi sono in ordine crescente o decrescente). Abbiamo una risposta di tipo binario. - Ordinamento e ricerca : dai dati forniti (numeri, parole, ecc.) ci aspettiamo come soluzione questi stessi dati in un determinato ordine (ordinamento) o un dato preciso (ricerca).
- Ottimizzazione : c’è un valore che vogliamo rendere “ottimo” ovvero “minimo” (problemi di minimizzazione) o “massimo” (di massimizzazione). Ad esempio, il tragitto da percorrere più breve su Google Maps. Dato un problema, possiamo avere più algoritmi per la sua risoluzione, i quali non necessariamente hanno le stesse caratteristiche. Ad esempio, qual è l’algoritmo migliore? In un torneo sportivo tra otto giocatori, determiniamo il vincitore tramite un torneo all’italiana o tramite eliminazione diretta? Ma con quale criterio scelgo uno di questi? Ciò dipende dai nostri obiettivi: vogliamo massimizzare o minimizzare le partite? Se vogliamo massimizzare il numero di partite faremo il torneo all’italiana, di modo da guadagnare di più, se vogliamo fare più velocemente possiamo minimizzare useremo il torneo ad eliminazione diretta, se vorremo determinare una graduatoria useremo il torneo all’italiana. Da qui, arriviamo a valutare l’efficienza di un algoritmo. Se vogliamo minimizzare la quantità di partite, sarà più efficiente quello ad eliminazione diretta: avremo n-1 partite. Nella valutazione dell’efficienza individueremo le operazioni di base (partita) e valutare il numero di queste operazioni di base (numero di partite). Immaginiamo di dover scrivere un programma per determinare il vincitore di un torneo, in cui ogni giocatore è associato ad un valore numerico (valore del giocatore). Dobbiamo scrivere un algoritmo che calcola il valore massimo di una lista di numeri (vettore). Innanzitutto, memorizzeremo il punteggio di ciascun giocatore in un vettore con tanti elementi quanti sono i giocatori, nell’esempio 8. Il nome di ogni cella del vettore è il numero del giocatore; alla fine del torneo, per trovare il vincitore, bisognerà scrivere un algoritmo. Per trovare il vincitore, alla fine del torneo, l’algoritmo calcolerà qual è il numero massimo nel vettore, utilizzando un’iterazione. Per valutare l’efficienza di un programma o di un algoritmo, analizzeremo il tempo (nel caso peggiore), il quale è espresso in funzione dei dati in input (n, n2, ...). Non sono considerate le costanti, come ad esempio (2n-2 e n+1), che sono considerati ordine di n.
L’algoritmo usato in questo caso si chiama MergeSort. Come già detto, la tecnica però si chiama divide et im- pera, suddivisa quindi in:
- Divide : divido l’insieme S di dati da ordinare in due insiemi S1, S2 di ugual dimensione e ordino questi due
insiemi.
- Impera: partendo da S1 e S2 ordinati, costruisco un ordinamento complessivo di S. Come faccio ad ordinare S e S2? Se ho 100 numeri, ad esempio, li divido in due gruppi da 50, che sono comunque troppi, quindi riapplico lo stesso metodo:
- **Divido S1 in due insiemi e li ordino: S1.1 e S1.
- Divido S2 in due insiemi e li ordino: S2.1 e S2.2** e così via finché non arrivo a insiemi che hanno solo 1 o 2 ele- menti, al punto da ordinarli con facilità. A questo punto, devo applicare “impera”: partendo da S1.1 e S1.2 costruisco S1 ordinato. Da lì, combinando il tutto, troverò l’ordinamento di S. Per fare un esempio: S : 92, 44, 18, 56, 11, 26, 88, 72, 47, 93 S1 : 92, 44, 18, 56, 11 S2 : 26, 88, 72, 47, 93 S1.1 : 92, 44, 18 S1.2 : 56, 11 S2.1 : 26, 88, 72 S2.2 : 47, 93 Una volta ordinati, analizzo i vari insiemi e li ordino. Il vantaggio è che quando faccio questa operazione lavoro su due parti che so già essere ordinate, rendendo più veloce il lavoro. Per unirli, facciamo questo esempio: S1 43 21 12 S2 54 32 17 Da qui, verifico tra il più alto di S1 e S2 quale sia il più alto, lo posiziono in S e da lì lo elimino finché S1 e S2 sono vuoti Analizziamo il tempo di calcolo di questo algoritmo: Se lavoro sul livello 2 le operazioni che svolgo sono la dimensione dell’insieme 1 più la dimensione dell’insieme 2 Per ogni livello quindi faccio n operazioni. Per capire complessivamente le operazioni che faccio devo capire quanti sono i livelli L’algoritmo parte da un insieme e lo suddivide in due : al primo livello diventano 2, poi diventano 4, poi diventano 8, poi 16 e così via. Al massimo gli insiemi che posso avere sono quando ho n insiemi costituiti da un solo elemento, quindi 2z^ deve essere uguale a n Se dobbiamo ordinare 1mln di dati quanto impieghiamo? Selectionsort impiega 1000 secondi. Con questo algoritmo dobbiamo fare 1mln x 19,93 arrivando a fare circa 20mln di operazioni Se fa un mlrd di operazioni al secondo dobbiamo dividere il numero di operazioni per la velocità , quindi 19.930.000/ 10^9 = 0,0193 secondi Gli algoritmi di ordinamento sono uno dei campi di studio più importanti e ha diverse applicazioni:
- Ordinare i risultati di una ricerca
- Predisporre dati per analisi
- Semplificare una ricerca 3.3 La ricerca Indica la ricerca di un elemento all’interno di una lista o un vettore. Dato un insieme di elementi, se esiste, dove si trova un elemento K? Ad esempio se vogliamo trovare il numero 9 dobbiamo scorrere gli elementi da sinistra a destra
In un insieme disordinato o rinuncio alla correttezza dell’algoritmo oppure devo svolgere una ricerca sequenziale. Viceversa questo cambia quando la lista che ho è un insieme ordinato, ad esempio con una sequenza crescente di numeri. In questo caso la ricerca binaria segue i principi di divide et impera, ma in realtà è un approccio che tende più a dividere. F unziona confrontando l’elemento da ricercare con l’elemento in posizione centrale che ci permette di dividere la lista in due parti uguali
- Se ho trovato l’elemento concludo la ricerca
- Se l’elemento è maggiore di quello centrale, effettuo la ricerca solo nella parte destra
- Se l’elemento è minore effettuo la ricerca solo nella parte sinistra Considero la parte destra perché 4 è maggiore di 1 La ricerca sequenziale impiega n , mentre la ricerca binaria nel caso peggiore impiega log 2 n perché i dati considerati sono dimezzati Con 1ml di dati tra cui cercare, la ricerca binaria compie 20 operazioni, mentre quella sequenziale 1mln Lo svantaggio è che prima devo usare l’ordinamento quindi conviene usare la ricerca binaria se devo fare poche ricerche , se invece ho un insieme di dati disordinato sul quale devo fare tante ricerche allora conviene prima ordinarli e poi applicare la ricerca binaria
3.4 Il calcolo delle distanze
Questo approccio viene utilizzato ad esempio per indicare la distanza tra due punti. Viene utilizzato un grafo o rete e sono costituiti da due elementi:
- nodi : es gli utenti di una piattaforma, documenti da analizzare - archi: relazioni binarie (a due)tra coppie di nodi, come ad esempio le amicizie tra utenti, i link tra due documenti Queste strutture vengono usate per fare clustering, classificazione e stabilire distanze Ad esempio: nodi: a b c d e archi: a,e - a,b - b,e - b,c- d,e - c,d I nodi sono adiacenti quando sono collegati da un arco Possiamo sposatrci da un punto all’altro del grafo: 3.4.1 Il cammino Un cammino da A a B è una sequenza di nodi adiacenti, distinti (non posso tornare indietro) che inizia da a e termina con b Ad esempio, il cammino da A a D Siamo interessati al calcolo del cammino più breve Quando gli archi presentano dei valori, i valori si chiamano pesi e rappresentano ad esempio il tempo che impiego per spostarmi da un
punto all’altro. Ovviamente il cammino più breve è quello con i valori
minori sommandoli Come calcoliamo un grafo non pesato? Consideriamo gli archi tutti allo stesso modo Il problema del commesso viaggiatore: toccare tutti i punti nel minor tempo possibile
Scelgo l’arco con il peso più basso l(f) e la faccio diventare definitiva. Da f con un arco posso raggiungere direttamente B o E, continuando ad aggiornare l’etichetta con il valore più basso e a farla diventare definitiva
3 .5 Algoritmi e motori di ricerca
Un altro ambito in cui è stato utilizzato il grafo è quello dei motori di ricerca. Il motore di ricerca è uno strumento di ricerca formato dall’archivio, dove i documenti sono già stati analizzati, per cui tramite queste componenti, gli strumenti rispondono velocemente Uno degli aspetti che rendono complessa la ricerca nel web è che l’archivio deve essere costruito ed è fondamentale l’ordine con cui sono rappresentati i risultati Fino alla fine degli anni 90 i motori di ricerca funzionavano in maniera classica, analizzando il testo dei documenti. L’effetto è che non sempre i risultati erano di buona qualità. Alla fine degli anni 90 si comprende che il web è un contesto informativo che è multimediale e ipertestuale (link ipertestuali) Viene analizzato così il grafo del web, ovvero la struttura che formano le pagine e i link ipertestuali I link hanno un ruolo importante e possono essere usati per costruire i risultati della ricerca Il grafo del web è formato dai nodi (pagine) e dai collegamenti (link) I link sono diretti (da pag 1 andiamo a pag 2 ma non necessariamente possiamo tornare indietro) C’è un ambito che riguarda il tipo di grafo che si crea perché ha delle caratteristiche specifiche e sono stati fatti diversi studi per capire la struttura e il grafo del web. La prima applicazione semplice è l’esplorazione delle pagine web e l’ordinamento dei risultati, ovvero il pagerank Per definire un ordinamento rilevante, devo capire quali sono le pagine più importanti e devo trovare un metodo. Uno degli approcci che veniva usato dai primi motori di ricerca era basarsi sul testo, mentre ora abbiamo metodi diversi. In particolare quello più di successo è stato il pagerank, l’algoritmo introdotto da Google Uno degli aspetti per valutare i nodi è misurarne l’importanza, per esempio in base al numero di connessioni (grado). Si contavano i collegamenti in entrata, in uscita e diretti alla pagina, in particolare il più importante è quello dei collegamenti diretti alla pagina , ma non basta contarli L’idea che ebbero i fondatori di google è usare i link e misurare la rilevanza all’interno della rete. Se io considero un elemento da cosa dipende la sua rilevanza? Dipende dalla rilevanza delle pagine che hanno dei link ipertestuali diretti verso la pagina che stiamo considerando Intuitivamente la rilevanza viene trasmessa dalle pagine. Considerando una pagina x immaginiamo che abbia n link diretti verso n pagine. La rilevanza di x con la rilevanza influenza le altre pagine, suddividendo la rilevanza di x in parti uguali che vengono trasmesse alle altre pagine Tutti i link che escono da x hanno la stessa importanza La rilevanza si sposta così da una pagina verso le altre Se voglio calcolare la rilevanza di una pag devo calcolare quanta rilevanza arriva da pag A,B,C.. sommando la somma della rilevanza che pag riceve da A,B,C P: pagina R: rilevanza L:link Al numeratore ho la rilevanza di P1 diviso il numero di link che p1 ha verso l’esterno e così via
se voglio calcolare come avviene il passaggio di rilevanza, quanta rilevanza di A riceve C? La metà. Ognuno riceve metà della rilevanza di A Ci sono delle situazioni dove il calcolo del pagerank diventa più complicato: A ha un link diretto verso B , B ha dei link in uscita ed entrata e ne ha uno che da B va a A Se voglio calcolare la rilevanza di A devo calcolare prima quella di B e viceversa In questi casi bisogna fare una procedura ricorsiva Quando inizio a fare il calcolo stabilisco un ordine delle pagine (prima rilevanza di A e poi B ) Calcolo la rilevanza delle pagine e rifaccio tutto il procedimento Mi fermo quando la rilevanza non cambia Nei primi anni di utilizzo l’algoritmo che veniva usato è il pagerank mentre ora non lo sappiamo esattamente. Viene calcolata la rilevanza, l’utente scrive una parola e il motore di ricerca individua le pagine che contengono quella parola e le ordina in base al pagerank, relativo alla struttura della pagina. è un valore calcolabile a priori e dipende dalla struttura del Web. Quando è stato proposto sono state cercate delle interpretazioni: una è la rilevanza e l’altra riguarda il modo in cui un utente visita pagine web in maniera casuale Il pagerank è tanto più alto quando facendo un tipo di visita casuale arriviamo a una certa pagina in modo casuale Nell’esempio dell’immagine vediamo delle pagine con la percentuale di rilevanza. C è la seconda pagina più rilevante perché ha un solo link, ma arriva da B, la pagina più importante e che ha più link in entrata. È l’unico link che esce da B, quindi quasi tutta la rilevanza di b viene trasferita a C
3.6 Sistemi di raccomandazione
Il sistema di raccomandazione è un software che propone contenuti di interesse per un utente. Sono basati sull’analisi di contenuti e sul comportamento degli utenti Sono diventati importanti in molti ambiti di applicazione, come ad esempio Netflix, Youtube e nel commercio elettronico Queste piattaforme hanno un insieme ampio di contenuti e per migliorare l’interazione con l’utente vengono sfruttati i sistemi di riferimento e di ricerca Come funzionano i sistemi di raccomandazione? Costruiamo il grafo delle valutazioni : abbiamo due insiemi di nodi: gli utenti e i contenuti e due tipi di archi tra utenti e contenuti: un arco positivo (valutazione positiva) e un arco negativo (valutazione negativa) In questo esempio la valutazione positiva è la linea continua e quella negativa una linea tratteggiata
in questo caso dividiamo per 3 perchè il secondo film non è stato valutato da nessuno Possiamo quindi costruire la tabella di similarità che rappresenta quanto sono simili gli utenti :
- Possiamo inoltre fare una stima delle valutazioni grazie alla tabella delle valutazioni L’idea intuitiva è che dobbiamo valutare quanto gli utenti simili a un utente hanno apprezzato un film e quanto gli utenti diversi da lui hanno o non hanno apprezzato il film A partire da un utente x calcoliamo la media pesata dei giudizi degli utenti che hanno visto il film. Le valutazioni vanno pesate per grado di similarità Come calcolo la media pesata? Al numeratore calcolo la somma dei prodotti tra valutazione degli utenti e grado di similarità con x Al denominatore la somma dei valori assoluti (sempre positivi) delle similarità con x Elena non ha votato il film 1 I sistemi di raccomandazione per ogni film non visto calcolano la stima della valutazione dell’utente , ordinandole in ordine decrescente e vengono selezionate le stime con valore maggiore Alcuni aspetti da tenere in considerazione sono:
- inclinazione utenti: ci sono utenti che danno più valutazioni di altri
- qualità dell’elemento: alcuni elementi sono considerati di qualità dalla totalità degli utenti
- dinamiche temporali: le caratteristiche di un utente possono cambiare nel tempo Un altro approccio algoritmico è quello dei fattori nascosti, ovvero un metodo basato su una caratteristica che influenza il giudizio di un utente Possiamo arrivare a capire quale caratteristica di un disco o un film attrae l’utente? Ammettiamo di considerare il catalogo di film: ipotizziamo che i fattori nascosti che influenzano un film sono il genere e il paese di provenienza e cerchiamo di determinare quanto questi fattori influenzano le scelte degli utenti
4 - la statistica e l’analisi dei dati
Le discipline connesse all’analisi dei dati sono la statistica e il calcolo delle probabilità .La statistica è una disciplina applicativa che analizza quanto è già stato osservato, mentre la probabilità serve a fare predizioni future ed è quindi una disciplina teorica
4.1 La statistica
La statistica descrittiva
La statistica descrittiva è l’analisi di fenomeni e dei dati raccolti. Parliamo di popolazione per indicare l’insieme di soggetti studiati ( unità statistiche ) e di carattere quando parliamo della grandezza di un soggetto statistico Abbiamo inoltre la variabile statistica , ovvero l’associazione tra un’unità statistica e il dato (valore di un carattere ) Esempio: x (variabile statistica) voti esame X= 24,26,25,30…
4.2 caratteristiche dei dati
I dati possono essere
- strutturati : hanno un struttura interna che ne rende semplice l’analisi e sono organizzati in tabelle.In genere l’elaborazione e l’analisi di questi dati è più semplice e inoltre sono meno diffusi
- non strutturati : privi di struttura e organizzazione interna. L’elaborazione è più complessa e necessitano di tecniche di pre-elaborazione, ma sono più diffusi La fase di pre-elaborazione presenta un input , dove abbiamo i dati non strutturati e un output che riorganizza i dati La definizione di una struttura è basata sulla definizione di caratteristiche dei dati, come ad esempio in un testo dobbiamo considerare le parole, la presenza di caratteri speciali o la classificazione semantica I dati possono essere anche qualitativi o quantitativi:
- i dati quantitativi possono essere espressi in forma numerica (fatturato di un negozio, acquisti giornalieri, visite di una pagina web).
- i dati qualitativi non possono essere esprimibili numericamente e quindi non sono applicabili a operazioni matematiche (CAP o testo di una pagina web). In questo caso posso usare l’appartenenza a certe categorie Le operazioni che posso applicare sui dati quantitativi sono le operazioni aritmetiche (somma o media) o l’andamento nel tempo, mentre le operazioni che posso fare sui dati qualitativi sono la ricerca di valori univoci , il numero di valori univoci o la frequenza dei valori I dati quantitativi possono essere divisi in
- Discreti : possono essere contati (nr iscritti a un corso, numero di visite)
- Continui: possono essere misurati (temperatura, peso) Per i dati continui, il numero di dati distinti si avvicina al numero di dati individuali e I dati vengono quindi suddivisi in classi
- Identificazione dell’intervallo di valori (considerando min e max)
- Suddivisione in k intervalli delle unità statistiche Una delle scelte che si fanno per il raggruppamento è il numero di classi
4.3 i livelli dei dati
I dati possono avere diversi livelli, all’interno dei quali posso descrivere le caratteristiche, le operazioni applicabili e le misure per descrivere i dati. Per ogni livello esistono operazioni applicabili, in base alle quali possiamo definire il centro e le misure di variabilità Primo livello- livello nominale Secondo livello- livello ordinale Terzo livello- livello degli intervalli Quarto livello – il livello dei rapporti Misurazione del centro Il centro è il valore che esprime la tendenza dei dati, facendo una sintesi con un solo valore che deve essere compreso tra gli estremi di min e max
4 .4 proprietà della media e della mediana
Media Mediana Sensibile ai valori anomali (outliers ) Non sensibile ai valori anomali Significativa per dati senza outliers e distribuzione simmetrica Es. altezza, peso Adatta per valutare dati sbilanciati Es. Ricchezza di una popolazione: Jeff Bezos: 130 miliardi USD Popolazione USA: 330 milioni La ricchezza di Bezos aggiunge 394 USD alla ricchezza media di ogni individuo; 0 alla mediana Data una variabile statistica calcoliamo gli scarti rispetto al centro dei dati , rappresentando in maniera sintetica un insieme di dati con un solo valore. Lo scarto rispetto al centro è la differenza tra il valore del dato e il valore del centro Se prendo gli scarti rispetto alla media, la loro somma è nulla, il che conferma la proprietà della media di essere il baricentro dei dati
- Consideriamo questa proprietà nell’analisi della dispersione: Se sommo gli scarti positivi con quelli negativi si compensano, ma se vogliamo capire quanto la media è vicina ai dati che stiamo prendendo in considerazione, si usano gli scarti quadratici → Si prendono gli scarti e si elevano al quadrato, facendoli diventare tutti positivi Questo valore è minimo quando il centro dei dati corrisponde alla media 100= - 102
- La media delle variabili statistiche si indica con E(X) , quindi la media aritmetica di una trasformazione lineare di una variabile statistica: Y = a + b X E[Y] = a + b E[X]
5 - I PASSI DELLA SCIENZA DEI DATI
Cinque passi della scienza dei dati:
- Definire la domanda: problema di interesse
- Acquisire i dati
- Esplorare i dati: tipi di dati
- Definire un modello per i dati
- Presentazione dei risultati
5.1 Raccolta dei dati
I dati provengono da aziende, istituzioni e centri di ricerca.Le difficoltà nella raccolta stanno negli interessi economici e problemi di privacy con difficoltà ad anonimizzare (sono però tecniche elaborate che sono riuscite a risalire ai dati delle persone) Alcuni dati sono pubblicati tramite API ,per migliorare le vendite rilasciando più dati e per avere un accesso controllato I dati possono anche essere estratti da pagine web in due modi:
- Spidering : .scaricare pagine web
- Scraping : estrarre il contenuto delle pagine per renderlo analizzabile
- Data cleansing Una volta raccolti i dati bisogna fare un pre-processamento dei dati per evitare alterazioni e identificare errori e anomalie. In alcuni casi si può verificare anche la mancanza di dati , infatti alcuni dataset possono essere incompleti , come l’aspettativa di vita e la risposta non significativa a una domanda In questi casi posso:
- eliminare le righe
- completamento inserendo dati che non perturbino le osservazioni:
- valore centrale
- scelta di un valore casuale della stessa colonna
- valore della riga più simile
5.2 Esplorare i dati
Nel processo di esplorazione è necessario comprendere la natura dei dati(organizzati, non organizzati, strutturati, non strutturati) e comprendere il livello dei dati (nominale,ordinale,degli intervalli , dei rapporti) A livello nominale posso individuare un numero di valori presenti, verificare la presenza di valori univoci e la frequenza con cui appaiono i valori (quante volte appare un valore?) Ai livelli superiori possiamo calcolare la misura del centro a seconda dei livelli (media/mediana) , stabilire un minimo e un massimo e guardare la distruzione dei valori (quanti e quali sono i valori che può assumere un carattere quantitativo?) Oltre alle statistiche complessive possiamo ricavare informazioni più complesse, come calcolare la media solo per una categoria di dati Esempio: Calcolo età media maschi e femmine Femmine 38. Maschi 32. Abbiamo quindi la divisione dei dati in base al sesso
5.3 Tecniche di analisi
Bisogna definire un modello per cercare di rappresentare in modo sintetico alcune proprietà di quel modello:
- Data mining : ricerca di relazioni implicite tra dati
- Machine learning : tecniche di apprendimento automatico sulla base dei dati. Viene costruito un modello su un certo numero di dati, comprendendo che esistono dei legami tra alcuni dati. L’obiettivo è quindi applicare il modello costruito su tutti i dati. Un esempio è quello della classificazione delle mail come spam
5.3.1 Dati e descrizione
- Ordinamento e quantili Quando parliamo di quantili dobbiamo essere almeno al livello ordinale. In generale un quantile è la ricerca di una posizione di un valore all’interno dei dati. Possiamo distinguere tra dati inferiori rispetto a un valore o superiori, come la mediana che divide in due i dati Alcuni quantili semplici sono minimo e massimo
temperature1 = [15, 16, 17, 19, 21, 23, 24, 25] Media = 20 Campo di escursione = 10
- Per evitare l’effetto negativo dei valori estremi è stata introdotta la differenza interquartile : se i valori anomali influenzano il campo di escursione dobbiamo determinare una misura che non considera i valori estremi. Si identificano il terzo quartile (75%) e il primo quartile (25%) e faccio la differenza temperature = [10, 16, 17, 19, 21, 23, 24, 30] Media = 20 Campo di escursione = 20 Differenza interquartile = 23 – 16 = 7
- Dispersione rispetto alla media Queste misure sono più complessive e tengono conto quanto sono distanti i dati dalla media Bisogna ricordarsi che la distanza dalla media viene chiamato scarto e la somma degli scarti è nulla, non posso quindi utilizzarli per descrivere la dispersione Ho scarti positivi e scarti negativi che si compensano, ma elevandoli al quadrato tutti gli scarti diventano positivi e quindi posso sommarle e ottenere dei valori che descrivono la variazione dei dati rispetto al centro La media rende minimo lo scarto quadratico: se calcolo la somma degli scarti quadratici il risulato non è più piccolo della media Definiamo la dispersione usando gli scarti quadratici
- Varianza
- Deviazione standard Informalmente la varianza misura la distanza media al quadrato dei punti dal centro. Calcoliamo lo scarto quadrato di X1,X2 e Xn, li sommiamo e poi li dividiamo per il numero di dati che abbiamo La deviazione standard calcola la distanza media dei punti dal centro. Per calcolarla bisogna fare la radice quadrata della varianza temperature1 = [15, 16, 17, 19, 21, 23, 24, 25] Media = 20 Dev. standard = 3. temperature2 = [9, 11, 13, 14, 26, 27, 29, 31] Media = 20 Dev. Standard = 8.
5.3.3 Disuguaglianza di Tchebychev
Assumiamo di conoscere la media e la varianza di una variabile statistica. Riusciamo a valutare quanti dati sono presenti all’interno di un intervallo comprendente la media? Il risultato di T. vale sempre per tutti i dati , è generico Data una variabile statistica con
- Media: m
- Varianza: v 2 **In un intervallo [m-kv, m+kv]
- I dati esterni all’intervallo sono non più di 1/k**^2 2. I dati interni all’intervallo sono almeno 1 - 1/k^2 Posso garantire che
- 75% = (1 - 1/k^2 ) = (1 - 1/2^2 ) dei dati
- A distanza 2 v Garantisco che in questo intervallo trovo il 75% dei dati Esempio Punteggio test Media m = 80 Varianza v^2 = 16 Proporzione studenti con voto in [72,88] 72 e 88 sono equidistanti da 80 M+kv = 80+ K4= K= 1 - 1/k^2 = 75% Punteggio test Media m = 80 Varianza v2 = 16 Quanti studenti al più hanno punteggio non in [70,90] Punteggio test Media m = 80, varianza v^2 = 16 v = 4 m + k v = 90 80 + k* 4 = 90 k = 2, Al più 1/k^2 = 16% Nella realtà la distribuzione che hanno i dati non è sempre generica, spesso ci sono delle regolarità che possiamo descrivere con formule o diagrammi A Questo tipo di dati si dice che hanno una distribuzione normale o Gaussiana L’idea è che abbiamo una distribuzione a campana dove la maggior parte dei valori sono concentrati vicino alla media. Inoltre non succede di osservare valori troppo lontani dalla media Esempi di dati che seguono questo andamento sono altezza, peso, aspettativa di vita La curva rappresenta il numero di dati che assumono quello specifico valore. Quando arriviamo a - 4 o 4 non abbiamo più valori La disuguaglianza di Tchebyshev mostra il legame tra media e distribuzione standard e distribuzione dei dati. Per la distribuzione normale vale la regola empirica : definizione di proprietà più precise Regola empirica: considerata una distribuzione normale (varianza v^2 )
- **Circa il 68% dei dati è in un intervallo [m- v, m+ v] rispetto alla media m
- Circa il 95% dei dati è in un intervallo [m-2v, + m+2v] rispetto alla media m
- Circa il 99,7% dei dati è in un intervallo [m-3v, m+3v] rispetto alla media m**
Esempio: felicità persone = [0.8, 0.8, 0.9, 0.7, 0.6, 0.7, 0.5] media = 0.71 42 deviazione standard = 0. z-score= [0.6882, 0.6882, 1.4912, - 0.1147, - 0.9176, - 0.1147, 1.7206] Lo z-score è utile per distribuzioni normali, meno per distribuzioni sbilanciate (power law) Es. Distribuzione della ricchezza negli Stati Uniti
- Media 200.000 $
- Deviazione standard 200.000 $ Una persona con patrimonio di 80.000.000.000 $: z-score 4999 (la media è 0)
5.5 La correlazione
Esempi: Esiste un legame tra ricchezza e la salute di una persona? Sì, esiste una correlazione negativa (-0,717) importante tra reddito familiare e malattie alle coronarie Esiste un legame tra essere fumatori e la salute? Sì, esiste una correlazione positiva (+0,716) importante tra propensione al fumo e tasso di mortalità Considerato un insieme di dati esistono relazioni significative tra i dati? L’obiettivo è estrarre conoscenza dai dati Covarianza e correlazione sono misure quantitative per il confronto tra dati
5.5.1 La covarianza
Quanto variano i dati da un centro comune? Considerando X e Y valutiamo la variabilità congiunta risetto al centro comune E(X),E(Y) La covarianza è la media aritmetica del prodotto tra gli scarti dalla media di X e gli scarti dalla media di Y Il valore della covarianza può essere
- Positivo: proporzionalità diretta
- Negativo: proporzionalità inversa
- Vicino a zero: assenza di proporzionalità : situazione simmetrica
5.5.2 Correlazione tra dati
La correlazione la misuriamo quando vediamo che due dati hanno un legame , ma abbiamo tre casi:
- **associazione positiva (andamento simile)
- associazione negativa (andamento opposto)
- nessuna associazione** Il coefficiente di correlazione misura la relazione tra variabili, ha un valore compreso tra - 1 e 1 e la correlazione minima è 0 Indice di correlazione di Pearsons : misura una possibile relazione lineare tra le variabili considerate Sx: deviazione standard x Sy : deviazione standard y 1 vuoldire correlazione positiva, quindi un comportamento simile , se invece abbiamo - 1 la correlazione è inversa (al crescere di x, decresce y) non abbiamo informazione quando il coefficiente è nullo Limiti del coefficiente di pearsons:
1 Questo indice assume che la relazione tra X e Y sia lineare. Ci può essere relazione anche se le due
variabili non variano in maniera lineare
2 La correlazione non implica casualità → questo è un limite generale
Significa che il fatto di prendere due variabili e misurare un coefficiente positivo non ci permette di concludere che tra le due variabili c’è una relazione di causalità In questo tipo di comportamento c’è una parte dove x cresce e y decresce. Nel punto più basso al crescere di x cresce anche y. Possiamo capire che è difficile rappresentarlo con una retta
Correlazione di Spearman
Il coefficiente di Spearman conta il numero di coppie che rispettano l’ordine (x1 , y1 ), (x2 , y2 ), … , (xn , yn ) dove x1< x2 < …< xn e y1< y2 < … < yn
- La causalità La causalità implica una relazione di causa effetto. Avendo X e Y notiamo che se c’è una causalità di X su Y un’azione su X fa si che questa si propaghi anche a Y (se x aumenta, lo fa anche y) Se c’è una causalità deve esserci anche correlazione