Mahout Ida Mele 1.

Slides:



Advertisements
Presentazioni simili
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Advertisements

TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
II° Circolo Orta Nova (FG)
II° Circolo Orta Nova (FG)
/ fax
Consumare Web Service Andrea Saltarello
File System Cos’è un File System File e Directory
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Frontespizio Economia Monetaria Anno Accademico
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
1 Tavolo del Patto per la crescita intelligente, sostenibile e inclusiva Il ricorso agli ammortizzatori sociali nei territori colpiti dagli eventi sismici.
DISEGNO TECNICO INDUSTRIALE
Training On Line - Report. 2 Report storico Da menu: Reportistica -> Report storico Si accede alla pagina di selezione del report storico.
Cammini minimi con sorgente singola
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Dipartimento di Ricerca Sociale - Università del Piemonte Orientale 1 Castelli Aperti giugno 2005 Castello di Camino (AL) IL PUBBLICO DI CASTELLI.
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Hadoop: introduzione (1)
Waikato Environment for Knowledge Analysis
Un introduzione a Java Ant per lutilizzo con Swarm Marco Lamieri 13/04/2004.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
Reti di Scuole, competizioni di robotica, tecnologie e apprendimenti
Mercato mondiale dell’ICT ( )
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
Analisi di Immagini e Dati Biologici
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
Portale Capacità STOGIT
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
1° passo Aprire Internet Explorer Andare alla homepage di Ateneo Aprire il menu Ateneo Scorrere fino Servizi di Ateneo Cliccare su Servizi Informatici.
Melfi, 1 aprile 2011 – MediaShow 1 Social Network: possibilità di uso consapevole nella didattica Uso, consapevolezza, opportunità, proposte Caterina Policaro.
1ROL - Richieste On Line Ente pubblico 5ROL - Richieste On Line.
E. Sferlazza – Dati aperti e servizi web-cartografici dalle pubbliche amministrazioni: l'esperienza del SIT provinciale di Agrigento Dati aperti e servizi.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Torna alla prima pagina Inforscuola, 2/12/99 1 MINISTERO DELLA PUBBLICA ISTRUZIONE DIREZIONE GENERALE DELL' ISTRUZIONE SECONDARIA DI 1° GRADO Progetto:
Roberto Ariani Presidente Comm. Supporto e sviluppo informatico I Siti in cui dobbiamo navigare per crescere SINS - Seminario Istruzione Nuovi Soci - Arezzo,
Calcolo Parallelo e Distribuito
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Esercitazioni di Meteorologia da satellite
LE SAI LE TABELLINE? Mettiti alla prova!.
La versione 18 di Aleph500: le novità CATALOGAZIONE Rita Vanin Ottobre 2007.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
1 Questionario di soddisfazione Studenti - a. sc. 2008/09 Il questionario è stato somministrato dal mese di aprile al mese di maggio Sono stati restituiti.
1 Gea Bilancio Soluzione per Commercialisti e Aziende.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
14 marzo 2002 Avvisi:.
Documentazione Tecnica
I dati del questionario di autovalutazione dei docenti Prime rilevazioni.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Classificazione (aka Cluster Analysis)
Ant Che cos’è Come si utilizza Funzionalità principali
Progettare corsi con Moodle
Modulo 6 Test di verifica
Un’analisi dei dati del triennio
METODI DI RAPPRESENTAZIONE TECNICA
lun mar mer gio ven SAB DOM FEBBRAIO.
ROOT Tutorial.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Transcript della presentazione:

Mahout Ida Mele 1

Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Mahout 2

Introduzione Tecniche di data mining: Clustering – apprendimento non supervisionato Classificazione – apprendimento supervisionato Alberi di decisione Analisi delle associazioni Reti neurali Mahout 3

Clustering Raggruppamento di oggetti in cluster. Obiettivo: oggetti simili dovranno appartenere allo stesso cluster. Gli algoritmi di clustering raggruppano gli oggetti considerando la somiglianza tra essi. Tale somiglianza è tipicamente misurata come distanza reciproca tra oggetti. Mahout 4

Clustering Il clustering può essere condotto con: Metodi aggregativi Metodi divisivi Possibili clustering: esclusivo non esclusivo partitivo gerarchico Mahout 5

Classification È una forma di apprendimento supervisionato o apprendimento con rinforzo. Nella classificazione i dati sono divisi in Training set e Test set. Il Training set è utilizzato nella fase di addestramento per la costruzione del modello. In questa fase si assume che le istanze appartengono a classi e la classe di appartenenza è specificata dall’attributo di classe. Mahout 6

Classification Il Test set viene utilizzato per valutare l’accuratezza del modello. È importante che sia diverso dal training set in modo da evitare stime ottimistiche. Il modello realizzato è applicato per la classificazione delle istanze la cui classe è ignota. Mahout 7

Mahout: introduzione Apache Mahout: Librerie scalabili per il machine learning. Adatto a grandi data sets. Gli algoritmi sono implementati su Apache Hadoop utilizzando il paradigma map/reduce. Mahout 8

Mahout: introduzione Link utili: Homepage: http://mahout.apache.org/ Wiki: https://cwiki.apache.org/confluence/display/MAH OUT/Mahout+Wiki Download: http://www.apache.org/dyn/closer.cgi/mahout/ Mahout 9

Mahout: introduzione Mahout possiede numerose funzionalità: Collaborative Filtering User and Item based recommenders K-Means, Fuzzy K-Means clustering Mean Shift clustering Dirichlet process clustering Latent Dirichlet Allocation Singular value decomposition Parallel Frequent Pattern mining Complementary Naive Bayes classifier Random forest decision tree based classifier Mahout 10

Installazione Scaricare l’ultima release di Mahout (esempio la 0.5). Prerequisiti: Java JDK 1.6 Maven 2.0.11 o superiore (http://maven.apache.org/). Solo se si desidera installare Mahout a partire dal source code. Mahout 11

Installazione Posizionarsi nella directory con il core di Mahout e digitare: mvn compile In alternativa si può fare direttamente l’installazione. Posizionarsi nella directory di Mahout e digitare: mvn install Verrà generato in core/target/ un file jar il cui nome conterrà la versione di Mahout. Ad esempio se si usa la release 0.5 il file sarà: mahout-core-0.5.jar. Mahout 12

Clustering Clustering of synthetic control data Scaricare synthetic_control.data.txt da: http://archive.ics.uci.edu/ml/databases/synthetic_control/sy nthetic_control.data Copiare l’input nell’HDFS: creare testdata all’interno di Hadoop e copiarvi i dati scaricati. cd $HADOOP_HOME bin/hadoop fs -mkdir testdata bin/hadoop fs –put $PATH_DATI/synthetic_control.data.txt testdata Nota: $HADOOP_HOME è la path della directory di Hadoop, mentre $PATH_DATI è la path della cartella con il file dati. Mahout 13

Clustering Il job Example di Mahout non esiste ed è necessario crearlo: cd $MAHOUT_HOME mvn clean install // include tutti gli unit tests Oppure mvn clean install -DskipTests=true // senza gli unit tests Nota: $MAHOUT_HOME è la root directory di Mahout. Se tutto è andato a buon fine comparirà: BUILD SUCCESSFUL, il job verrà generato nella directory examples/target di Mahout e si chiamerà: mahout- examples-0.5.job.jar (es. se si usa Mahout 0.5). Mahout 14

Clustering In Hadoop settare la JAVA_HOME: cd $HADOOP_HOME export JAVA_HOME=/Library/Java/Home Eseguire il clustering, ad esempio utilizziamo canopy: $MAHOUT_HOME/bin/mahout org.apache.mahout.clustering.syntheticcontrol.canopy.J ob In Hadoop verrà creata la cartella output con il risultato del clustering. Per visualizzare i file di output utilizzare: bin/hadoop fs -lsr output Mahout 15

Output Per analizzare l’output dobbiamo prima farne il dump. Utilizziamo il Cluster Dumper di Mahout. Il comando clusterdump riceve: La directory con il risultato del clustering; La directory con i clustered points; Il file dove dovrà essere creato il dump Mahout 16

Creazione del dump Copiare il risultato del clustering nella cartella examples di Mahout: - bin/hadoop fs -get output $MAHOUT_HOME/examples Spostarsi in Mahout e dopo aver settato la JAVA_HOME eseguire il dump con clusterdump: - cd $MAHOUT_HOME - export JAVA_HOME=/Library/Java/Home - bin/mahout clusterdump --seqFileDir examples/output/clusters-0 --pointsDir examples/output/clusteredPoints/ --output examples/output/clusteranalyze.txt Mahout 17

Creazione del dump Contenuto di clusteranalyze.txt more examples/output/clusteranalyze.txt C-0{n=21 c=[29.552, 33.073, 35.876, 36.375, 35.118, 32.761, 29.566, 26.983, 25.272, 24.967, 25.691, 28.252, 30.994, 33.088, 34.015, 34.349, 32.826, 31.053, 29.116, 27.975, 27.879, 28.103, 28.775, 30.585, 31.049, 31.652, 31.956, 31.278, 30.719, 29.901, 29.545, 30.207, 30.672, 31.366, 31.032, 31.567, 30.610, 30.204, 29.266, 29.753, 29.296, 29.930, 31.207, 31.191, 31.474, 32.154, 31.746, 30.771, 30.250, 29.807, 29.543, 29.397, 29.838, 30.489, 30.705, 31.503, 31.360, 30.827, 30.426, 30.399] r=[0.979, 3.352, 5.334, 5.851, 4.868, 3.000, 3.376, 4.812, 5.159, 5.596, 4.940, 4.793, 5.415, 5.014, 5.155, 4.262, 4.891, 5.475, 6.626, 5.691, 5.240, 4.385, 5.767, 7.035, 6.238, 6.349, 5.587, 6.006, 6.282, 7.483, 6.872, 6.952, 7.374, 8.077, 8.676, 8.636, 8.697, 9.066, 9.835, 10.148, 10.091, 10.175, 9.929, 10.241, 9.824, 10.128, 10.595, 9.799, 10.306, 10.036, 10.069, 10.058, 10.008, 10.335, 10.160, 10.249, 10.222, 10.081, 10.274, 10.145]} Weight: Point: 1.0: [28.781, 34.463, 31.338, 31.283, 28.921, 33.760, 25.397, 27.785, 35.248, 27.116, 32.872, 29.217, 36.025, 32.337, 34.525, 32.872, 34.117, 26.524, 27.662, 26.369, 25.774, 29.270, 30.733, 29.505, 33.029, 25.040, 28.917, … Mahout 18

Visualizzazione Visualizing Sample Clusters Spostarsi nella sottocartella examples di mahout: cd examples Eseguire il DisplayClustering: mvn -q exec:java - Dexec.mainClass=org.apache.mahout.clustering.display.Dis playClustering Il risultato della visualizzazione è il dataset random originale con delle ellissi semi-illustrative. Mahout 19

DisplayClustering: risultato Mahout 20

DisplayCanopy: risultato mvn -q exec:java - Dexec.mainClass=org.apache.mahout.clustering.display.DisplayCanopy Mahout 21

DisplayMeanShift: risultato mvn -q exec:java - Dexec.mainClass=org.apache.mahout.clustering.display.DisplayMeanShift Mahout 22

Classification Classificare un dump di dati da Wikipedia utilizzando Naive Bayes. Il Wikipedia dump è diviso in chunk e ognuno di essi è ulteriormente diviso per paese. A partire da queste suddivisioni si effettua il training del classificatore, il quale dovrà predire il paese di provenienza dei nuovi articoli (articoli mai visti, di cui non si conosce la provenienza). Scaricare e scompattare il dump di Wikipedia: http://download.wikimedia.org/enwiki/latest/enwiki- latest-pages-articles.xml.bz2 -- Attenzione: sono circa 8GB -- Mahout 23

Classification Creare in examples di Mahout la cartella temp e copiarvi il file enwiki-latest-pages-articles10.xml. Dividere i dati: bin/mahout wikipediaXMLSplitter –d examples/temp/enwiki-latest-pages-articles10.xml -o wikipedia/chunks -c 64 Il risultato verrà fatto nell’HDFS, la lista di file la si può visualizzare con il comando: hadoop fs -ls wikipedia/chunks Mahout 24

Classification Dividere i dati in base ai paesi: bin/mahout wikipediaDataSetCreator -i wikipedia/chunks -o wikipediainput –c /examples/src/test/resources/country.txt Training: bin/mahout trainclassifier -i wikipediainput -o wikipediamodel Test: bin/mahout testclassifier -m wikipediamodel -d wikipediainput Mahout 25

Formato Vector Clustering e classificazione dei propri dati. Per prima cosa è necessario convertire i prorpi dati nel formato Vector di Mahout. È possibile creare vettori da: Indice in formato Lucene, Directory contenente documenti, File in formato ARFF Mahout 26

Formato Vector Creare vettori da file di testo. Mahout mette a disposizione delle utilities per generare vettori da cartelle con file di testo. Prima di creare il vettore è necessario convertire i documenti nel formato SequenceFile. bin/mahout seqdirectory --input <PARENT DIR WHERE DOCS ARE LOCATED> --output <OUTPUT DIRECTORY> <-c <CHARSET NAME OF THE INPUT DOCUMENTS> {UTF-8|cp1252|ascii...}> <-chunk <MAX SIZE OF EACH CHUNK in Megabytes> 64> <-prefix <PREFIX TO ADD TO THE DOCUMENT ID>> Mahout 27

Formato Vector Creare vettori da file di testo. Una volta fatta la conversione si può creare il vettore: bin/mahout seq2sparse -i <PATH TO THE SEQUENCEFILES> -o <OUTPUT DIRECTORY WHERE VECTORS AND DICTIONARY IS GENERATED> <-wt <WEIGHTING METHOD USED> {tf|tfidf}><-chunk <MAX SIZE OF DICTIONARY CHUNK IN MB TO KEEP IN MEMORY> 100> <-a <NAME OF THE LUCENE ANALYZER TO TOKENIZE THE DOCUMENT> org.apache.lucene.analysis.standard.StandardAnalyzer> <--minSupport <MINIMUM SUPPORT> 2> <--minDF <MINIMUM DOCUMENT FREQUENCY> 1> <-- maxDFPercent <MAX PERCENTAGE OF DOCS FOR DF. VALUE BETWEEN 0-100> 99> <--norm <REFER TO L_2 NORM ABOVE>{INF|integer >= 0}>"<-seq <Create SequentialAccessVectors>{false|true required for running some algorithms(LDA,Lanczos)}>" Mahout 28

Formato Vector Creare vettori da file ARFF. Il formato ARFF di Weka può essere convertito utilizzando: org.apache.mahout.utils.arff.Driver Usage: [--input <input> --output <output> --max <max number of vectors> --help --dictOut <dictOut>--outputWriter <outputWriter> --delimiter <delimiter>] Esempio, creare la directory arff_data con un po’ di file .arff: bin/mahout arff.vector --input $PATH_ARFF/arff_data/ --dictOut examples/output/dict.txt --output examples/output/convert Mahout 29