Data Import e Probabilità Renato Mainetti
Importare dati in Matlab: 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? 21/04/2016 Data Import e Probabilità - Lezione 7 2
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) 21/04/2016 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 21/04/2016 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,». 21/04/2016 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. 21/04/2016 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. 21/04/2016 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/import ing-data-from-databases-into-matlab.html 21/04/2016 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. 21/04/2016 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) 21/04/2016 Data Import e Probabilità - Lezione 7 10
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) 21/04/2016 Data Import e Probabilità - Lezione 7 11
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)) 21/04/2016 Data Import e Probabilità - Lezione 7 12
Statistiche volatili: Marroni Bianchi Piccioni 30% 20% Gabbiani 10% 40% 21/04/2016 Data Import e Probabilità - Lezione 7 13
Statistiche volatili: Marroni Bianchi Marginale specie (somma elementi riga) Piccioni 30% 20% 50% Gabbiani 10% 40% 50% Marginale colore (somma elementi colonna) 40% 60% 21/04/2016 Data Import e Probabilità - Lezione 7 14
Probabilità condizionata e congiunta: (ricordiamo i dadi) 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 : Marroni Bianchi Piccioni 75% 33% Gabbiani 25% 67% 21/04/2016 Data Import e Probabilità - Lezione 7 15
Probabilità condizionata e congiunta: (ricordiamo i dadi) 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 : Marroni Bianchi Piccioni 60% 40% Gabbiani 20% 80% 21/04/2016 Data Import e Probabilità - Lezione 7 16