MATLAB. Note introduttive a cura di C. Sandi. MATLAB: software per la trattazione di problemi tecnico-scientifici



Documenti analoghi
Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione al MATLAB c Parte 2

Il Sistema Operativo (1)

Dati importati/esportati

Cosa è un foglio elettronico

Lezione 5. Fogli di calcolo

Il sistema operativo UNIX/Linux. Gli script di shell

Prova di informatica & Laboratorio di Informatica di Base

Il sistema operativo: interazione con l utente

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Esempio di prova di laboratorio

Finestre grafiche. >> figure >> figure(n)

Introduzione al Foglio Elettronico

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

INTRODUZIONE A MATLAB Matrix Laboratory

Il Software. Il software del PC. Il BIOS

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

CONTROLLI AUTOMATICI E AZIONAMENTI ELETTRICI Ingegneria Meccatronica

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Tipi di dato-prima parte

Esercitazioni Bioingegneria Elettronica e Informatica

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

INFORMATICA 1 L. Mezzalira

Matlab: Strutture di Controllo. Informatica B

Introduzione al MATLAB c Parte 1

MATLAB (1) Introduzione e Operazioni con array

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Introduzione a MATLAB. Il Laboratorio. MATLAB Cos è? Oltre alle lezioni. Octave ( ) Scilab ( )

Gestione Rapporti (Calcolo Aree)

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

ISTITUTO TECNICO ECONOMICO MOSSOTTI

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Fogli Elettronici: MS Excel

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

ISTITUTO d IstruzIone Superiore A. righi

L utility Unix awk [Aho-Weinberger-Kernighan]

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Corso di Informatica. Immissione di dati. Visualizzazione come foglio dati 1. Visualizzazione come foglio dati 2 11/01/2008

PROGRAMMA SVOLTO A.S. 2013/2014 CLASSI 1^ D 1^E AFM DISCIPLINA INFORMATICA

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA

LEZIONE DI MATLAB 2.0. Ing.Irene Tagliente

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Fogli Elettronici: MS Excel utilizzo avanzato

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Potenzialità statistiche Excel

Gestione ed analisi di base dati nell epidemiologia. delle malattie infettive

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Corso di Informatica

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

Introduzione alla programmazione in C

FONDAMENTI di INFORMATICA L. Mezzalira

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

7. Microsoft Access. 1) Introduzione a Microsoft Access

Definire gli attributi dei blocchi

1. Le macro in Access 2000/2003

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

OBIETTIVI SPECIFICI DI APPRENDIMENTO

Crotone, maggio Windows. Ing. Luigi Labonia

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Software di base. Corso di Fondamenti di Informatica

5.6.1 REPORT, ESPORTAZIONE DI DATI

Fogli Elettronici: MS Excel. Foglio Elettronico

4. Un ambiente di sviluppo per Java

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Classe prima sezione e-f Indirizzo Turismo

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Word prima lezione. Prof. Raffaele Palladino

BIBLIOTECA COMUNALE DI BORUTTA

Laboratorio Algoritmi 2014 Secondo Semestre

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

1 -Introduzione MODULO L1

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Il foglio elettronico: Excel

Il sistema operativo

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

MANUALE EDICOLA 04.05

Corso di Visione Artificiale. Matlab per Visione. Samuel Rota Bulò

INTERAZIONE CON L UTENTEL

5.2 UTILIZZO DELL APPLICAZIONE

FotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE

Word per iniziare: aprire il programma

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Parte IV. I fogli elettronici e Excel

Linguaggi e Paradigmi di Programmazione

ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016

LINGUAGGI DI PROGRAMMAZIONE

Rappresentazione dell informazione Codifica Binaria

BOZZA Introduzione a MATLAB

Guida rapida - versione Web e Tablet

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Compilatore risorse display grafico LCD serie IEC-line

Transcript:

MATLAB Note introduttive a cura di C. Sandi MATLAB: software per la trattazione di problemi tecnico-scientifici MATrix LABoratory: elaborazione dell informazione mediante matrici (o, più generalmente, insiemi multidimensionali) Disponibilità dei migliori modelli, metodi ed algoritmi Interfaccia utente al massimo livello di semplicità ed efficienza Integrazione con ambienti specializzati in elaborazioni particolari Dotato di estensioni (toolboxes) dedicate ad applicazioni sia tradizionali che avanzate (statistica, logica fuzzy, reti neurali, ecc) 1

Il software per PC Software Sistema Bios Hardware Operativo Applicativo Software per il PC Bios: per l avvio ed i controlli di base (flash Eprom) Sistema operativo: per interfaccia utente, filesystem, gestione delle procedure (Dos, Unix, Windows, ecc.) Software applicativo: per risolvere problemi ed eseguire procedure mediante il PC 2

Software applicativo Linguaggi di programmazione: poco interattivi e richiedono apprendimento, ma hanno possibilità e prestazioni flessibili Interpreti: relativamente immediati ed interattivi, ma concedono in prestazione per avere maggior facilità d uso Librerie di programmi: richiedono conoscenza informatica sulla modalità di utilizzo, ma sono consolidate ed ottimizzate Strumenti di produttività: immediati ed a menu, ma rigidi e predisposti solo per argomenti prefissati Software applicativo Basso livello: vicino al linguaggio macchina, priorità alle prestazioni rispetto alla facilità d uso Alto livello: vicino al linguaggio dei problemi, maggior priorità alla facilità d uso General purpose: completa padronanza su tutte le possibilità dell elaboratore Special purpose: finalizzato ad argomenti particolari 3

Software avanzato Integrazione delle caratteristiche del software applicativo tradizionale priorità assegnabili dinamicamente agli aspetti di maggior interesse Disponibilità di autoapprendimento on-line Possibilità di utilizzo ad ogni livello di conoscenza informatica portabilità fra ambienti diversi (dos,windows, unix, ) Software avanzato Per utenti in ordine crescente di esperienza Operazioni predisposte a menù Scelta di metodi ed opzioni Accesso sincrono ad un interprete/ambiente Utilizzo di software pre-esistente Creazione di procedure proprie Interfaccia con ambienti opportuni Controllo completo del sistema 4

MATLAB un supporto ideale per la trattazione di problemi tecnico-scientifici Motivazione istituzionale: minimizzare lo sforzo richiesto per la messa a punto e la convalida di applicazioni, mediante: interattività: ogni input riceve immediata risposta linguaggio: variabili e operatori funzionali librerie: altamente sofisticate e specializzate sessioni: edit e run intercambiabili ambiente di sviluppo: compromesso di facilità ed efficacia interfacce: da e per altri ambienti aiuto in linea: sincrono ad ogni elaborazione MATLAB: ambiente 5

Avvio di MATLAB In ambiente Windows: doppio click sull icona oppure avvio => programmi => Matlab => Matlab xx.x In ambiente unix: digitare matlab al prompt dei comandi Viene aperto il desktop di matlab secondo le modalità di default, o particolareggiate da una opportuna inizializzazione Chiusura di MATLAB selezionare exit dal menù file, oppure digitare quit al prompt dei comandi E possibile particolareggiare le modalità di chiusura, per salvare automaticamente quanto elaborato Ambiente MATLAB Active workspace: spazio di lavoro, reso disponibile all avvio, inizialmente vuoto e di dimensioni legate alla RAM di sistema Search path: determina quali directories del filesystem sono in linea, oltre alla directory corrente MAT-files: precedenti spazi di lavoro, memorizzati su disco fisso o altra periferica; disponibili solo se in linea M-files:funzioni a variabili locali o globali, memorizzate su disco fisso o altra periferica; disponibili solo se in linea Desktop tools: strumenti interattivi di lavoro: finestra dei comandi, aiuto in linea, editor/debugger di funzioni, editor di oggetti, visualizzatori di workspace, directory corrente, ecc. 6

Finestra dei comandi (Compare all avvio di MATLAB) Finestra di testo con indicata la linea ( prompt:») per digitare dati e comandi. Sono attivi i normali tasti di editor di linea: del, backspace, esc, recall, shift cursor, ecc. Controllo del formato e/o soppressione dell output Path browser (menù file => set path) Directory corrente Quali directories sono in linea Contenuto della directory selezionata Modifica del path 7

Workspace browser (menù file => show workspace) Elenco di nome, tipo e dimensione delle variabili Modifica di contenuti di variabili Cancellazione di variabili Array editor (doppio-click su variabile del workspace browser) Visualizza forma e contenuto di una variabile numerica Permette modifica di forma e contenuto Tratta anche variabili cella e testo (Ver.??) 8

Editor/Debugger (menù file => open => new o open M-file) Editor e controllo di sintassi per M-file Alternativo ad altri editor disponibili Permette inserimento di breakpoints per debug Altri caratteristiche dell ambiente MATLAB Esecuzione di programmi esterni con eventuale risultato disponibile nella finestra dei comandi Cover functions per import/export dati da e per altri ambienti Figure windows: per la gestione di grafici bi-tridimensionali Help system: per una completa navigazione nell help in linea Application Program Interface: Interfaccia per elaborazioni sincrone con altri ambienti (C, Fortran, Java, DDE, ecc.) 9

MATLAB Le basi del linguaggio Elementi lessicali Identificatori: nomi di variabili e funzioni literal: oggetti con nome = contenuto; es: a, 3.1415, Pisa operatori per matrici: + - * ^ / \. operatori per array: + -.*.^. /.\ operatori relazionali: < <= > >= == ~= & ~ caratteri speciali: = [ ] ( )., ; % :! Parole riservate: controlli di flusso: if, else, elseif, end, for, while, break, return,.. comandi: who, whos, which, lookfor, path, load, save, clear costanti globali: ans, eps, pi, inf, i, j, NaN, nargin,... Programmazione: pause, input, eval, function, Funzioni matematiche: sin, cos, log, sqrt, exp, abs, funzioni di grafica: plot, bar, hist, axis,... 10

La sintassi Istruzioni: variabile = espressione espressione terminate da invio oppure da ; possono estendersi a più righe mediante evidenziano il risultato purché non terminate da ; Espressioni: composte da operatori, funzioni e variabili risultato => matrice assegnata o memorizzata nella variabile ans gli identificatori sono case sensitive Informazioni elementari numeri: tutti in doppia precisione codifica floating point IEEE standard 8 byte, mantissa 52 bit, caratteristica 11 bit intervallo dei numeri rappresentabili: ~(10-308,10 +308 ) precisione: ~16 cifre decimali notazioni : interi (es: 3; -21) con punto decimale (es: 3.141; -.01; 0.6) in notazione scientifica (es:1.603e-20; 6.023e23) tutti comunque codificati internamente in doppia precisione. Caratteri: tutti in notazione estesa DBCS: 2 byte includenti la codifica ASCII standard notazione: carattere incluso fra apici (es: a ; A ; 3 ) 11

Gli oggetti del workspace Sono tutti insiemi (array) dotati di tipo e dimensione Array matrici: gli argomenti del calcolo matriciale, interpretabili come trasformazioni lineari. Comprendono, come casi particolari, gli scalari, i vettori riga ed i vettori colonna Array numerici: Dati tabellari, normalmente grandezze misurabili (colonne) ed osservazioni su tali grandezze (righe) Array di testo: insiemi di caratteri ad una (stringhe) o più righe Array celle: insiemi multidimensionali, i cui elementi sono copie di altri array Array strutture: insiemi i cui elementi (normalmente altri array) sono indirizzabili da identificatori di campo Matrici ed array Possono essere introdotti mediante i seguenti modi: Lista esplicita di argomenti, racchiusi in parentesi quadre, separati da spazi o virgole nell ambito delle righe punto e virgola per nuova riga esempio: A = [1 2 3; 4,5,6; 7 8 9] => matrice A (3x3) funzioni generatrici interne di matlab; esempio: A = rand(2,10) => matrice A (2x10) di numeri casuali in (0,1) esempio: 0: 0.1: 1 => vettore 0.0 0.1 0.2 1.0 Da file creato da un qualsiasi editore e letto da memoria esterna Come output di una applicazione esterna (database, foglio elettronico,..) 12

Trattamento di matrici ed array Generazione:» a = rand (3,5);» a a = 0.9501 0.4860 0.4565 0.4447 0.9218 0.2311 0.8913 0.0185 0.6154 0.7382 0.6068 0.7621 0.8214 0.7919 0.1763 indici:» a (2,3) ans = 0.0185 sottomatrici:» a (1,:) ans = 0.9501 0.4860 0.4565 0.4447 0.9218» a (:,1:2) ans = 0.9501 0.4860 0.2311 0.8913 0.6068 0.7621 Trattamento di matrici ed array Generazione:» a = rand (3,5);» a a = 0.9501 0.4860 0.4565 0.4447 0.9218 0.2311 0.8913 0.0185 0.6154 0.7382 0.6068 0.7621 0.8214 0.7919 0.1763 somma per colonne:» s = sum (a);» s s = 1.7881 2.1394 1.2964 1.8521 1.8363 estrazione di valori particolari» max(s), min(s) ans = 2.1394 ans = 1.2964 13

Riga di testo:» s = 'hallo';» h = [s, ' world'];» h h = hallo world Righe di testo» v = [s; 'world'];» v v = hallo world Array di testo Elenchi:» s = char('bianchi Mario','Rossi Sergio','Verdi Giuseppe');» s s = Bianchi Mario Rossi Sergio Verdi Giuseppe Linea di testo:» h h = hallo world Informazione numerica» a a = 0.9501 0.4860 0.4565 0.4447 0.9218 0.2311 0.8913 0.0185 0.6154 0.7382 0.6068 0.7621 0.8214 0.7919 0.1763 Elenco:» s s = Bianchi Mario Rossi Sergio Verdi Giuseppe Array cella Array cella» c={h,a,s} c = 'hallo world' [3x5 double] [3x14 char] 14

Strutture Primo blocco» T.nome = 'Mario Rossi';» T.matricola= 200111;» T.facolta= 'Ingegneria Gestionale';» T T = nome: 'Mario Rossi' matricola: 200111 facolta: 'Ingegneria Gestionale' Secondo blocco»» T(2).nome = 'Giuseppe Verdi';» T(2).matricola= 100000;» T(2).facolta= 'Musica Operistica';» T T = 1x2 struct array with fields: nome matricola facolta Contenuto del workspace Quali variabili:» who Your variables are: a c h s v T Dimensione e tipo delle variabili:» whos Name Size Bytes Class a 3x5 120 double array c 1x3 502 cell array h 1x11 22 char array s 3x14 84 char array v 1x10 20 char array T 1x2 790 struct array Grand total is 220 elements using 1538 bytes 15

Elementi di grafica» y = rand (1,100);» plot (y)» ys = sort (y);» figure (2) ;»plot(ys); Elementi di grafica» hist(rand(1,100));» hist(rand(1,10000),30); 16

MATLAB schemi riassuntivi e principali quadri di riferimento Gli strumenti Spazio di lavoro attivo nella RAM Librerie su hard disk o caricate in RAM Directory in linea nelleperiferiche Contiene i dati disponibili per elaborazione: scalari vettori matrici array numerici stringhe array di testo array cella array struttura tutti dotati di dimensione Contengono il sistema: interprete DLL built-in function browsers edit/debug help messages Contengono files importabili per elaborare od essere elaborati: funzioni script spazi di lavoro tabelle di dati elaborati di altri ambienti disponibili purché nel path 17

Helpwin: visualizzatore di aiuto in linea Help: matlab/general 18

Gestione comandi e funzioni Comando Significato help lista generale dell auito in linea help argomento aiuto in linea su argomento what ( dirname ) lista i matlab file della directory dirname type filename lista il contenuto del file filename what ( dirname ) lista i matlab file della directory dirname lookfor key lista la prima riga [o le righe] degli help con quella keyword which name collocazione e tipo dell oggetto name (funz, var, built-in,..) why (n) risposte personalizzabili a Frequent Answer Question Gestione variabili e workspace Comando who whose save [name] load [name] clear [nomi] size name length name disp (name) Significato lista i nomi delle variabili attive lista nomi tipo e dimensione delle variabili attive salva lo spazio di lavoro attivo (con name ) carica lo spazio di lavoro di default (o di name ) cancella tutto (o gli oggetti indicati) dimensione di una matrice lunghezza di un vettore evidenzia il contenuto di name 19

Gestione file e Sistema Operativo ambiente Comando Significato cd imposta la directory corrente pwd indica la directory corrente dir, ls contenuto della directory corrente delete name cancella il file name! command esegue un comando di sistema operativo ambiente diary [name] salva la sessione nel file diary (o name ) Gestione finestra dei comandi Comando clc format tipo echo [name] delete name more quit Significato cancella ogni contenuto della finestra tipo: long, short, long D, hex,... evidenzia i comandi di tutti gli script (o di name) cancella il file name output controllato pagina per pagina fine sessione 20

Operatori operatore Significato + - somma e sottraz sia di matrici che di array numerici * ^ / \ molt poten divis destra e sinistra per matrici.*.^./.\ molt poten divis destra e sinistra elemento per elemento. trasposta e coniugata trasposta < <= > >= operatori di relazione elemento per elemento == ~= operatori di relazione elemento per elemento & ~ xor operatori logici (true: 0; false: =0) elem per elem Caratteri speciali carattere Significato = assegnazione [ ] per formare array; per risultati multipli ( ) indici, argomenti di funzioni, precedenze. punto decimale non virgola!, separa: indici, argomenti, istruzioni ; fine riga, soppressione output % commenti, help di funzioni : gestione indici, generazione di vettori 21

Controllo di flusso tipo for for while if end break return error Sintassi for var=espressione, istruzioni, end for i=matrice, istruzioni, end while relazione, istruzioni, end if relazione, istruzioni, else(if), istruzioni, end necessario per terminare: for, while, if per terminare cicli for e while ritorno dalla chiamata di funzioni evidenzia messaggi e interrompe funzioni programmazione Strumento azione input per richiedere input dall utente keyboard per uno script in tempo reale menu per predisporre menu di scelta pause sospendi elaborazione function intestazione di funzioni: function nome(arg) eval eseguire contenuto di stringhe global dichiarazione di variabili globali nargin, nargchk su argomenti di input di funzioni 22

Creazione di funzioni e script funzioni editor intestazione istruzioni oggetti menu file => new => M-file; oppure altri editor function [ris1,ris2..] nome (arg1,arg2,..) in linguaggio matlab tutti locali alla funzione script editor intestazione istruzioni oggetti menu file => new => M-file; altri editor nessuna come se immesse da tastiera tutti globali nello spazio di lavoro attivo Grafica bi-dimensionale Funzioni usano opportune finestre (grafiche) dedicate plot fill bar hist hist axis axes hold figure plot(x1,y1, codici: colore,simbolo,linea,x2,y2, codici.. ) fill(x1,y1, cod: colore, x2,y2,..) (congiunge gli estremi) bar(x,y) diagramma a barre di y alle ascisse x hist(y,s) istogramma dei valori di y con intervallo s (scalare) hist(y,x) istogramma dei valori di y con intervalli x (vettore) axis ([xmin xmax ymin ymax]} scala e tipo di assi nessuna mantiene o meno i grafici esistenti figure (n) controlla le finestre grafiche 23

Premesse per una prima applicazione Teorema del limite centrale una variabile, combinazione lineare di n variabili casuali indipendenti, purché di media e varianza finita, tende, per n, ad assumere distribuzione normale. Ipotesi: - y = c 1 x 1 +c 2 x 2 +..+ c n x n - x i indipendente da x j i j - E[x i ] e Var[x i ] < i Tesi - f( y ) per n 1 2 ( x µ ) 2 2σ e 2πσ 0. 4 0.35 0. 3 0.25 0. 2 0.15 Normale standard µ = 0 σ 2 = 1 0. 1 0.05 0-3 -2-1 0 1 2 3 Teorema del limite centrale: somma di due variabili uniformi in [0,1] x 1 U (0,1) x 2 U (0,1) y = x 1 + x 2 24

Teorema del limite centrale: somma di due variabili uniformi in [0,1] 1 x2 0.75 0.5 C D E 0.25 0 B F x1-0.25-0.5 A H G -0.75-1 -1-0.75-0.5-0.25 0 0.25 0.5 0.75 1 Una spiegazione qualitativa della distribuzione di y = x 1 + x 2 x 1 + x 2 = -1 nel solo punto A x 1 + x 2 = -0.5 in tutti i punti del segmento BH x 1 + x 2 = 0 in tutti i punti del segmento CG x 1 + x 2 = 0.5 in tutti i punti del segmento DF x 1 + x 2 = 1 nel solo punto E Applicazione e primo esempio di funzione Teorema del limite centrale Simulazione utilizzando la somma di n variabili casuali indipendenti, distribuite in modo uniforme in [-0.5, 0.5], aventi quindi media µ = 0 e varianza σ 2 = 1/12 function limite(m,n,k) % limite(m,n,k) % Genera n osservazioni della somma di m variabili indipendenti % ognuna distribuita uniformemente nell'intervallo (-0.5, +0.5). % % Ne evidenzia quindi il rispettivo istogramma su k intervalli. % a=rand(m,n)-0.5; if(m~=1) a=sum(a); end f=hist(a,k); hist(a,k); axis([min(a),max(a),0,max(f)]); 25

MATLAB tecniche per il data mining (da statistics toolbox) Data mining (KDD) Data mining (Knowledge Discovery in Database) metodi e strumenti per scoprire informazione (implicita, nascosta e non conosciuta a priori) da grandi databese Riduzione: analisi dei componenti principali, analisi fattoriale,..per ridurre le dimensioni (numero degli attributi) Associazione: analisi di correlazioni, regressione,.. per scoprire dipendenze statistiche fra attributi Raggruppamento: analisi di cluster,..per trovare gruppi omogenei Classificazione: analisi discriminante,.. per inserire in contesti di pertinenza 26

Data mining e tecniche di clustering Clustering (uno dei principali strumenti per il data mining) suddividere gli item di un database in gruppi omogenei Metodi di clustering (tecniche matematico-statistiche) scelte in base a tipo di risultato: baricentri, centroidi, a densità uniforme,.. prestazioni: compromesso qualità/efficienza caratteristiche dei dati: numero e tipo degli attributi, outliers,.. Clustering: metodi di partizione dati n oggetti in uno spazio a d dimensioni suddividere gli oggetti in k gruppi in modo da rendere minima una misura della distanza di ogni oggetto dal centro del proprio gruppo di appartenenza Criteri geometrici Distanza: euclidea (normalizzata), manhattan, mahalanobis,.. Centro: baricentro, centroide, distribuzione Criteri probabilistici Distanza: probabilità di appartenenza. Centro: in termini di funzione di distribuzione 27

Clustering: metodi di partizione Metodi di partizione: K-means: basati su misure baricentrali µ i dei gruppi i = 1 k-medoids: basati sull oggetto k k i = 1 x C i x C i x µ più centrale del gruppo EM (Expectation Maximization): basati sulla probabilità di appartenenza alla distribuzione che rappresenta il gruppo x x~i log[ i x ~ x i P ( x )] 2 2 Clustering: metodi gerarchici Aggregazione (bottom-up) o suddivisione (top-down) degli oggetti del database in sottoinsiemi fino ad avere un gruppo unico (aggregazione) o oggetti singoli (suddivisione) oppure fino a soddisfare un criterio di terminazione Metodi irreversibili: ogni aggregazione/suddivisione è presa in modo definitivo Metodi iterativi: le aggregazioni/suddivisioni vengono dinamicamente aggiornate 28

Clustering: metodi gerarchici Visualizzazione del processo di clustering mediante diagrammi ad albero (dendrograms) Clustering: metodi gerarchici Esercitazione con utilizzo di strumenti Matlab Si considerino 30 punti nello spazio a due dimensioni, di coordinate generate come segue:» x=[rand(10,2);1+rand(10,2);2+rand(10,2)] x = 0.0579 0.0153 0.3529 0.7468.. 2.3412 2.6946 2.5341 2.6213 Trattandosi di numeri casuali, essi cambiano ad ogni generazione ma mantengono sempre una struttura a tre cluster (i primi 10 hanno coordinate in [0,1], i secondi 10 in [1,2] ed i terzi 10 in [2,3]), come mostra il garfico seguente» plot(x(:,1),x(:,2),'*') 3 2.5 2 1.5 1 0.5 0 0 0.5 1 1.5 2 2.5 3 29

Clustering: metodi gerarchici Esercitazione con utilizzo di strumenti Matlab Si desidera eseguire una aggregazione bottom-up dei 30 punti con strumenti Matlab. Si calcola il vettore y delle distanze (per default euclidee) per ogni copia di punti» y=pdist(x); La coppia di punti più vicini viene via via unita e considerata come un nuovo punto:» z=linkage(y); z è la matrice a tre colonne contenente i numero dei due (nuovi) punti riuniti e la loro distanza Si visualizza il processo di aggregazione mediante opportuno grafico» dendrogram (z); Si controlla la correttezza del risultato mediante coefficiente di correlazione fra le distanze originali e le distanze misurate sull albero delle aggregazioni» cophenet (z,y); Clustering: metodi gerarchici Esercitazione con utilizzo di strumenti Matlab 1.2 1 0.8 0.6 0.4 0.2 0 11 15 13 17 12 20 14 16 18 19 21 30 24 26 27 28 29 23 22 25 1 2 10 7 4 5 6 9 3 8 Sono stati effettivamente ottenuti tre cluster, contenenti i tre diversi tipi di coordinate 30

Data mining e tecniche di classificazione Training sets: Osservazioni classificate a priori in due o più gruppi Sample set: osservazioni da classificare in uno dei gruppi Mahalanobis d 2 : distanza, in probabilità, delle osservazioni da classificare dalle distribuzioni statistiche di ogni gruppo Funzioni discriminanti lineari: iperpiani che dividono lo spazio delle osservazioni in zone omogenee Funzioni discriminanti non-lineari: superfici che dividono lo spazio delle osservazioni in zone omogenee Probabilità di (mis)classificazione: attribuzione di una osservazione ad un gruppo (non) corretto Tecniche di classificazione Esercitazione con utilizzo di strumenti Matlab Training set x : i punti utilizzati nell esercitazione sul cluster gerarchico» x=[rand(10,2);1+rand(10,2);2+rand(10,2)]; Sample set s : un punto affine al primo gruppo, uno affine al secondo e due al terzo:» s=[rand(1,2);1+rand(1,2);2+rand(2,2)] s = 0.7948 0.9568 1.5226 1.8801 2.1730 2.2714 2.9797 2.2523 Vettore di appartenenza del training set: primi dieci al gruppo 1, secondi dieci al gruppo 2 e terzi 10 al gruppo 3» g=[ones(1,10),1+ones(1,10),2+ones(1,10)] ; Istruzione di classificazione: attribuisce gli elementi di s al gruppo di competenza» classify(s,x,g) ans = 1 2 3 3 31