data import pulizia dati e...

18
Data Import pulizia dati e Probabilità Renato Mainetti

Upload: others

Post on 06-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

Data Importpulizia dati

eProbabilità

Renato Mainetti

Page 2: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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:

Page 3: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 4: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 5: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 6: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 7: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 8: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 9: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 10: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 11: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 12: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 13: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 14: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 15: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

Statistiche volatili:

Data Import e Probabilità - Lezione 7 15

30% 20%

10% 40%

Marroni Bianchi

Piccioni

Gabbiani

Page 16: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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)

Page 17: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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

Page 18: Data Import pulizia dati e Probabilitàmainetti.di.unimi.it/teaching/ailab/lessons/L7/L7.pdfing-data-from-databases-into-matlab.html Data Import e Probabilità - Lezione 7 8 File binari

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