Tesina Intelligenza Artificiale Maria Serena Ciaburri s A.A

Documenti analoghi
Uso dell algoritmo di Quantizzazione Vettoriale per la determinazione del numero di nodi dello strato hidden in una rete neurale multilivello

QUANTIZZATORE VETTORIALE

Clustering con Weka. L interfaccia. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna. Algoritmo utilizzato per il clustering

Clustering con Weka Testo degli esercizi. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna

Introduzione all analisi di arrays: clustering.

POLITECNICO DI TORINO

K-means clustering con R

ICA per analisi di gruppo

Segmentazione di immagini in scala di grigio basata su clustering

Laboratorio di Bioimmagini A.A

Intelligenza Artificiale. Clustering. Francesco Uliana. 14 gennaio 2011

Riconoscimento e recupero dell informazione per bioinformatica

Prova scritta di ASM - Modulo Analisi Esplorativa del

Processamento delle immagini

Misura della performance di ciascun modello: tasso di errore sul test set

Istruzioni per l analisi in componenti principali con R

Le Tecniche di Data Mining

Riconoscimento e recupero dell informazione per bioinformatica

Prova scritta - versione B Si svolgano gli esercizi riportando il risultato dove indicato. Durata: 60 minuti

Clustering con Weka. L interfaccia. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna. Algoritmo utilizzato per il clustering

Weka Project. Weka. Weka Project. Formato.arff. Modalità di utilizzo di Weka. Formato.arff

13 Esercizi di Riepilogo

Riconoscimento e recupero dell informazione per bioinformatica

FONDAMENTI DI INFORMATICA

Fondamenti di Informatica

Matlab: Script e Funzioni

Statistica per l Impresa

Slides estratte dalla tesi: EMT: UNA LIBRERIA MATLAB PER METODI DI ESTRAPOLAZIONE ED APPLICAZIONI

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

WEKA Data Mining System

Data Journalism. Analisi dei dati. Angelica Lo Duca

Python. Loriano Storchi.

Introduzione al data mining. Sistemi di elaborazione delle informazioni 2 Anno Accademico Prof. Mauro Giacomini

Laboratorio di Calcolo Numerico Laboratorio 4: Grafici di convergenza e functions

Cluster Analysis. La Cluster Analysis è il processo attraverso il quale vengono individuati raggruppamenti dei dati. per modellare!

Esercitazione gennaio 2015

Preprocessing. Corso di AA, anno 2017/18, Padova. Fabio Aiolli. 27 Novembre Fabio Aiolli Preprocessing 27 Novembre / 14

Matematica e Consulenza: un connubio perfetto. Mirco Patriarca Università di Pavia, Marzo 2018

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili

Introduzione ai Laboratori di Fondamenti di Analisi dei Dati. Antonino Furnari

Ricerca di outlier. Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna

DIFFUSIONE SU GRAFO (rete) E RIPOSIZIONAMENTO DI FARMACI SULLA BASE DELLA SIMILARITA DI STRUTTURA MOLECOLARE

Esercitazioni di MatLab

A = Quindi > b=a(:) b =

Fondamenti di Informatica

(a) Si proponga una formulazione di programmazione nonlineare a variabili misto-intere per problema.

Classificazione di immagini aeree. Annalisa Franco

Università di Pisa A.A

Indice generale. Introduzione. Ringraziamenti dell autore...xxi. Capitolo 1 Dare ai computer la capacità di apprendere dai dati...

STATISTICA 1 ESERCITAZIONE 2

Tecniche di Clustering basate sul Machine Learning

Cenni sulla cluster analysis

Vivisezione di un algoritmo di machine learning. Francesco ESPOSITO Youbiquitous

Slide Set 2 Distribuzioni Univariate. Analisi e Visualizzazione dei Dati (Parte I) a.a. 2018/2019. Pietro Coretto

Università degli Studi di Napoli Federico II

SAGA: sequence alignment by genetic algorithm. ALESSANDRO PIETRELLI Soft Computing

STATISTICA PSICOMETRICA a.a. 2004/2005 Corsi di laurea Scienze e tecniche neuropsicologiche. Modulo 1. Modulo 1 Statistica descrittiva Monovariata

Sistemi Informativi per le decisioni

Stima dei Redshift Fotometrici tramite il network SOM + K-NN

Relazione progetto Fondamenti di Analisi dati e Laboratorio

Laboratorio di INFORMATICA. 15 ottobre 2009

Dinamica e Controllo dei Processi Energetici. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

Disegnare nell intervallo [0, 1] con precisione 0.01 il grafico delle seguenti quattro funzioni

Fondamenti di Informatica T-1

C.da Di Dio - Villaggio S. Agata Messina Italy P.I c.f AMBIENTE STATISTICO. Release /03/2018.

Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A

Fondamenti di Informatica A.A. 2016/17

COGNOME E NOME MATR. ANALISI DEI DATI PER IL MARKETING novembre 2008.

Riconoscimento e recupero dell informazione per bioinformatica. Clustering: validazione. Manuele Bicego

RELAZIONE SULL ATTIVITA DI LABORATORIO. Corso di Metodi Numerici per il Controllo (Prof.ssa A. M. Perdon) a.a. 2007/2008

Lezione 3. Ing. Giuseppe Chiapparo - Università di Roma Tor Vergata Corso di ingegneria degli algoritmi (parte pratica) A.A.

Il numero di righe e colonne effettive, rispettivamente num_righe e num_colonne, verrà individuato dalla funzione di lettura del file.

Appello di Fondamenti di Informatica 12/09/2017

GLRT SIMPLE DETECTOR Manuale per un utilizzo immediato

Esercizi di introduzione alla programmazione

dt t z 1 exp( t). = π, Γ

Breve introduzione al linguaggio R

1 (7) 2 (6) 3 (6) 4 (7) 5 (6)

1. Calcolo dell indice di condizionamento di una matrice

Calcolare il massimo di una lista

Statistica descrittiva I. La frequenza

Fondamenti di Informatica

TESINA INTELLIGENZA ARTIFICIALE

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015

Matematica Esempio esame Unità 7

Calcolo Numerico - Prova Matlab 19 luglio 2013

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Indici di eterogeneità e di concentrazione

PROVA SCRITTA DEL MODULO DI NOME: COGNOME: MATRICOLA:

Laboratorio 1. 15/16 marzo 2018

RANKER: strumento software per il calcolo e la valutazione comparata di indici sintetici

Laboratorio 1 Strumenti quantitativi per la gestione

Clustering. Clustering

LABORATORIO DI FISICA I

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Linguistica Computazionale: esercitazioni

Transcript:

Tesina Intelligenza Artificiale Maria Serena Ciaburri s231745 A.A. 2016-2017 Lo scopo di questa tesina è quello di clusterizzare con l algoritmo K-Means i dati presenti nel dataset MNIST e di calcolare per ogni cluster formato l indice di eterogeneità di Gini. Per raggiungere questo obiettivo è stato realizzato uno script in Python. I dati utilizzati sono contenuti nel dataset MNIST, una raccolta di cifre numeriche scritte a mano e salvate come immagini in bianco e nero di 28x28 pixels. Nel nostro caso è stato utilizzato il training set (disponibile al link: http://yann.lecun.com/exdb/mnist/), contente 60,000 immagini. L algoritmo K-Means è un algoritmo di clusterizzazione in cui il numero (k) di centroidi viene scelto all inizio e in cui i centroidi di ogni cluster vengono calcolati come media (means) di tutti i dati presenti in un cluster. Inizialmente, quindi, si scelgono in modo casuale k centroidi. Successivamente, si assegna ogni dato disponibile a uno di questi cluster e si ricalcolano i centri di cluster come media di tutti i punti presenti in quel cluster. Questo processo viene ripetuto fino a quando non si ha convergenza (cioè fino a quando i centroidi non cambiano). L indice di eterogeneità Gini è una misura dell eterogeneità di un campione {a!, a!,, a! } in cui ogni elemento può assumere s valori distiniti {v!, v!,, v! }. Il calcolo dell eterogeneità è basato sul valore f! della frequenza relativa dell elemento v! per i = 1, 2, s secondo la formula:! I = 1 f!! L indice può assumere valori compresi tra 0 e 1. In caso di eterogeneità minima (quando si ha quindi omogeneità massima), tutti gli elementi del campione assumono lo stesso valore, quindi I = 0. In caso di eterogeneità massima (quindi omogeneità minima) tutte le osservazioni hanno la stessa frequenza (f! =!!!! ) quindi I =.!! L indice di eterogeneità di Gini normalizzato si ottiene dividendo la quantità trovata per l indice massimo: I!"#$%&'((%)" =!!! I s 1 s = s I s 1 Lo script Lo script Python realizzato per svolgere la tesina è diviso in due moduli: gini. py (il modulo principale) e functions. py (quello che contiene le definizioni delle funzioni chiamate). Per eseguire lo script, bisogna semplicemente digitare nella finestra del terminale il seguente comando: python gini. py < k > < flag > dove < k > è il numero di cluster che vogliamo formare con K-Means e < flag > è un flag che viene settato per avere una visualizzazione grafica dei centroidi finali e del contenuto dei cluster ottenuti.

Le librerie principali utilizzate da questo script sono: -matplotlib, necessaria per la visualizzazione grafica dei dati ottenuti -numphy, una libreria di supporto per vettori e matrici multidimensionali -scikit.learn, una libreria open source contenente algoritmi per data mining e data analysis. In particolare, è stato utilizzato il modulo sklearn. cluster (link: http://scikitlearn.org/stable/modules/generated/sklearn.cluster.kmeans.html). La prima operazione che viene effettuata è l acquisizione dei dati, grazie alla funzione load_mnist() contenuta nel modulo functions. py. Il formato dei dati MNIST è chiamato IDX ed è un formato per vettori e matrici multidimensionali di numeri. La funzione load_mnist() interpreta il formato dei file e ritorna due insiemi di dati: le immagini (un vettore 3D in cui ogni elemento è un vettore 28x28) e le labels corrispondenti alle immagini. Le immagini vengono poi trasformate in vettori di 784 elementi, grazie alla funzione reshape della libreria numphy, in modo da poter essere elaborate dall algorimto K-Means. A questo punto, viene creato un oggetto della classe sklearn. cluster. KMeans: KMeans(n_clusers=8, init= k-means++, n_init=10, max_iter=300, tol=0.0001,precompute_ distance= auto, verbose=0, random_state=none, copy_x=true, n_jobs=1, algorithm= auto ) e viene successivamente chiamato il metodo fit() per effettuare il clustering dei dati. Una volta formati tutti i cluster, da ognuno di questi vengono estratti i dati contenuti e vengono calcolate le frequenze relative di ogni label. Vengono poi calcolati, sempre per ogni cluster, l indice di eterogeneità di Gini e la sua normalizzazione secondo la formula mostrata in precedenza. Una volta calcolati tutti gli indici del cluster, viene presentato a video un grafico a barre che mostra per ogni cluster il valore dell indice di Gini e della sua normalizzazione. Se il flag per la visualizzazione dei centroidi e dei cluster finali è stato settato ad 1, a questo punto vengono mostrate a video anche le immagini (28x28 pixels) degli ultimi centroidi ottenuti e le immagini dei dati contenuti in ogni cluster. Un esempio di visualizzazione dei centroidi finali è il seguente:

Qui, invece, abbiamo un esempio della visualizzazione di alcuni cluster ottenuti:

Risultati Di seguito abbiamo i risultati ottenuti dallo script con diversi valori di k: k=10

k=15 k =20

k =25 k=30