mahout ida mele. introduzione machine learning data mining web mining: web content mining web...

29
Mahout Ida Mele

Upload: ambrogio-lorusso

Post on 01-May-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Mahout

Ida Mele

Page 2: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Introduzione

• Machine Learning

• Data Mining

• Web Mining:

• Web content mining

• Web structure mining

• Web usage mining

Pagina 2Mahout

Page 3: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Introduzione

• Tecniche di data mining:• Clustering – apprendimento non

supervisionato• Classificazione – apprendimento

supervisionato• Alberi di decisione• Analisi delle associazioni• Reti neurali

Pagina 3Mahout

Page 4: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.

Pagina 4Mahout

Page 5: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Clustering

• Il clustering può essere condotto con:• Metodi aggregativi • Metodi divisivi

• Possibili clustering:• esclusivo • non esclusivo• partitivo• gerarchico

Pagina 5Mahout

Page 6: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.

Pagina 6Mahout

Page 7: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.

Pagina 7Mahout

Page 8: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.

Pagina 8Mahout

Page 9: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Mahout: introduzione

• Link utili: – Homepage: http://mahout.apache.org/– Wiki:

https://cwiki.apache.org/confluence/display/MAHOUT/Mahout+Wiki

– Download: http://www.apache.org/dyn/closer.cgi/mahout/

Pagina 9Mahout

Page 10: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 10Mahout

Page 11: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.

Pagina 11Mahout

Page 12: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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 installVerrà 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.

Pagina 12Mahout

Page 13: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Clustering

Clustering of synthetic control data– Scaricare synthetic_control.data.txt da:

http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_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.

Pagina 13Mahout

Page 14: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Clustering

– Il job Example di Mahout non esiste ed è necessario crearlo:• cd $MAHOUT_HOME• mvn clean install // include tutti gli unit testsOppure• 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).

Pagina 14Mahout

Page 15: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.Job

– In Hadoop verrà creata la cartella output con il risultato del clustering. Per visualizzare i file di output utilizzare:• bin/hadoop fs -lsr output

Pagina 15Mahout

Page 16: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 16Mahout

Page 17: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 17Mahout

Page 18: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Creazione del dump

• Contenuto di clusteranalyze.txt– more examples/output/clusteranalyze.txtC-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, …

Pagina 18Mahout

Page 19: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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.DisplayClustering

Il risultato della visualizzazione è il dataset random originale con delle ellissi semi-illustrative.

Pagina 19Mahout

Page 20: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

DisplayClustering: risultato

Pagina 20Mahout

Page 21: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

DisplayCanopy: risultato

Pagina 21Mahout

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

Page 22: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

DisplayMeanShift: risultato

Pagina 22Mahout

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

Page 23: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

Classification

Pagina 23Mahout

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 --

Page 24: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 24Mahout

Page 25: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 25Mahout

Page 26: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 26Mahout

Page 27: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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>>

Pagina 27Mahout

Page 28: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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)}>"

Pagina 28Mahout

Page 29: Mahout Ida Mele. Introduzione Machine Learning Data Mining Web Mining: Web content mining Web structure mining Web usage mining Pagina 2 Mahout

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

Pagina 29Mahout