data import pulizia dati e...
TRANSCRIPT
Data Importpulizia dati
eProbabilità
Renato Mainetti
Abbiamo visto come sia possibile generare array e matrici di dati.
Per ora abbiamo sempre inserito i dati manualmente o utilizzando metodi di matlab che agevolano l’inserimento di dati ben definiti.
Es: zeros(), ones(), [1:10], etc…
Ma se dobbiamo importare i dati di un esperimento trovati sul web o già salvati in qualche formato?
Data Import e Probabilità - Lezione 7 2
Importare dati in Matlab:
Formato dei dati(i più comuni)
• File di testo
• CSV (comma separated values)
• Da Fogli di calcolo (es. Excel)
• Da Database
• Da File Binari (formati proprietari, immagini, audio, etc)
Data Import e Probabilità - Lezione 7 3
File di testo
• Estensione dei file (.txt)
• Il file contiene solo informazioni testuali (codifica ascii, utf-8)
• Ogni dato è inserito su una nuova riga.
• In allegato alla lezione troviamo il file : simpleData.txt
• Lo possiamo importare in matlab con il comando:
>> load ‘simpleData.txt’
• Cosa succede se proviamo a importare ‘simpleData2.txt’
>> load ‘simpleData2.txt’
Data Import e Probabilità - Lezione 7 4
File di testo
• Otteniamo un errore provando ad importare il simpleData2.txt perché il file contiene due colonne separate da un carattere di spazio.
• Matlab è in grado di importare dati anche con questa sintassi. Se trovate questi file (dataset) potete caricarli utilizzando il comando «import data»
• Se siete voi a generare il file del dataset e vi servono più colonne è però meglio tendere a generare i file .CSV dove le varie colonne sono separate dal simbolo «virgola , ».
Data Import e Probabilità - Lezione 7 5
File .CSV(comma separated values)
• Estensione dei file (.csv)
• Sono sempre file di testo, con una particolare sintassi ed estensione del file. (ricordate che l’estensione di un file serve a suggerire al sistema operativo come aprirlo)
• Esempio di una riga di file .csv
45,giorno,72,49
• Utilizziamo ancora «import data» per importare i dati contenuti nel file simpleCSV.csv
• Nel file simpleCSV2.csv otteniamo direttamente anche i nomi delle variabili di matlab.
Data Import e Probabilità - Lezione 7 6
Fogli di calcolo• Da Fogli di calcolo (es. Excel)
• Importiamo sempre via «import data»
• L’orario non sembra essere importato correttamente.
• Usiamo l’opzione:>> time = datetime(time,'ConvertFrom','excel')
• Altri comandi utili:>> help xlsread
>> help readtable
• Eseguite per esercizio un po’ di prove di import di differenti file e conversioni di data.
Data Import e Probabilità - Lezione 7 7
Database
• Risulta possibile anche importare i dati da database.
• Operazione un po’ troppo complessa per il corso. Nel caso vi servisse per il progetto potete approfondire questo aspetto. http://it.mathworks.com/help/database/ug/importing-data-from-databases-into-matlab.html
Data Import e Probabilità - Lezione 7 8
File binari(proprietari o standard)
• Più contenuti rispetto a file testuali (in meno spazio contengono più informazioni numeriche per esempio)
• Se il formato è fisso e noto è possibile «analizzare» il file andando a leggere byte per byte.
• Se il contenuto è variabile, i dati contenuti possono essere identificati attraverso un «header» auto contenuto nel file stesso.
• Nell’header è specificato come sono alternati i dati nel file specificando il numero di byte per ogni dato.
Data Import e Probabilità - Lezione 7 9
Esempio di un file binario:
• Proviamo ad analizzare e visualizzare un file binario, per la precisione proviamo ad aprire un’immagine.
>> A = imread('gabbiano.jpg')
• Forse era utile usare il ; ?
>> Image(A)
Data Import e Probabilità - Lezione 7 10
Pulizia dei dati:
• Attraverso il tool:
IMPORT DATA
• Possiamo decidere se importare ogni colonna in singole variabili.
• Possiamo decidere se importare i dati in un oggetto tabella.
• Usiamo l’auto completamento «tab» per vedere il contenuto dell’oggetto tabella.
Data Import e Probabilità - Lezione 7 11
Dati mancanti (import data)
• Matlab ci fornisce la possibilità di inserire NaN in caso di valori assenti
• Di non considerare la riga dove mancano dati
• Di non considerare la colonna dove mancano dati
Data Import e Probabilità - Lezione 7 12
Importiamo i dati di un esperimento
Censimento volatili isola di Nim:• 100 volatili vivono su quest’isola
• 30 piccioni marroni (classe 1)
• 20 piccioni bianchi (classe 2)
• 10 gabbiani marroni(classe 3)
• 40 gabbiani bianchi (classe 4)
Data Import e Probabilità - Lezione 7 13
Esperimento:
• Carichiamo il file ‘isola.txt’ e contiamo quanti volatili ci sono per tipo:
>> isola = load('isola.txt')
>> hist(isola)
>> volatili = hist(isola, [1 2 3 4 ])
oppure
>> volatili = hist(isola, unique(isola))
Data Import e Probabilità - Lezione 7 14
Statistiche volatili:
Data Import e Probabilità - Lezione 7 15
30% 20%
10% 40%
Marroni Bianchi
Piccioni
Gabbiani
Statistiche volatili:
Data Import e Probabilità - Lezione 7 16
30% 20%
10% 40%
Marroni Bianchi
Piccioni
Gabbiani
40% 60%
50%
50%
Marginale colore
(somma elementi colonna)
Marginale specie(somma elementi riga)
Probabilità condizionata e congiunta:(esempio carte)
P(a | b) = P(a AND b) / P(b) P(a AND b) è probabilità congiunta
• Vediamo un volatile di un colore ma non sappiamo riconoscere la specie… cosa facciamo ?
• Probabilità condizionate di specie dato il colore :
Data Import e Probabilità - Lezione 7 17
75% 33%
25% 67%
Marroni Bianchi
Piccioni
Gabbiani
Probabilità condizionata e congiunta:(esempio carte)
P(a | b) = P(a AND b) / P(b) P(a AND b) è probabilità congiunta
• Vediamo un volatile di una specie ma non sappiamo riconoscere il colore… cosa facciamo ?
• Probabilità condizionate di colore data la specie :
Data Import e Probabilità - Lezione 7 18
60% 40%
20% 80%
Marroni Bianchi
Piccioni
Gabbiani