EPL451: Data Mining on the Web Lab 9

Σχετικά έγγραφα
ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Η μέθοδος PCA -Ανάλυση Κύριων Συνιστωσών

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

The Jordan Form of Complex Tridiagonal Matrices

Ανάκτηση Πληροφορίας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Στοιχειώδεις Δοµές Δεδοµένων Δοµικά Στοιχεία και Πίνακες Κεφάλαιο 3 (3.1 και 3.2) Ε. Μαρκάκης Επικ. Καθηγητής

Numerical Analysis FMN011

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

The ε-pseudospectrum of a Matrix

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

w o = R 1 p. (1) R = p =. = 1

Queensland University of Technology Transport Data Analysis and Modeling Methodologies

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ανάλυση Κυρίων Συνιστωσών (Principal-Component Analysis, PCA)

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis)

EPL451: Data Mining on the Web Lab 1

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Μαθηματικών Π.Μ.Σ. Θεωρητικής Πληροφορικής και Θεωρίας Συστημάτων και Ελέγχου

(C) 2010 Pearson Education, Inc. All rights reserved.

21 a 22 a 2n. a m1 a m2 a mn


ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

HY150a Φροντιστήριο 3 24/11/2017

HMY 795: Αναγνώριση Προτύπων

TMA4115 Matematikk 3

Σηµερινή ατζέντα µαθήµατος... Προηγούµενα αναφερθήκαµε. Σήµερα θα συνεχίσουµε µε τις δοµές τους

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 2008

Σηµερινή ατζέντα µαθήµατος... Προηγούµενα αναφερθήκαµε. Σήµερα θα συνεχίσουµε µε τις δοµές τους

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

EPL475:Εργαστήριο 4, openssl Assymmetric Encryption

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A

Εισαγωγή στον Προγραμματισμό

EPL451: Data Mining on the Web Lab 1

Τυπικές χρήσεις της Matlab

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

HY340, 2009 Α. Σαββίδης Slide 2 / 143. HY340, 2009 Α. Σαββίδης Slide 3 / 143. HY340, 2009 Α. Σαββίδης Slide 4 / 143

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διάλεξη 6: Δείκτες και Πίνακες

Web Data Mining ΕΡΓΑΣΤΗΡΙΟ 2 & 3. Prepared by Costantinos Costa Edited by George Nikolaides. EPL Data Mining on the Web

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

10. ΠΟΛΛΑΠΛΗ ΓΡΑΜΜΙΚΗ ΠΑΛΙΝΔΡΟΜΗΣΗ

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Εργαστήριο Σημασιολογικού Ιστού

C.S. 430 Assignment 6, Sample Solutions

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

Tridiagonal matrices. Gérard MEURANT. October, 2008

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Δοµές Δεδοµένων. 3η Διάλεξη Στοιχειώδεις Δοµές Δεδοµένων: Πίνακες. Ε. Μαρκάκης

Project 1: Principle Component Analysis

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Ανάκτηση Πληροφορίας

Στοίβες με Δυναμική Δέσμευση Μνήμης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

Διάλεξη 9η: Πίνακες (arrays)

Homework 3 Solutions

1 Πίνακες 1.1 Συνοπτική θεωρία

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011

( ) 2 and compare to M.

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

EE512: Error Control Coding

Εισαγωγή στη Fortran. Μάθημα 3 ο. Ελευθερία Λιούκα

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

Δομημένος Προγραμματισμός (ΤΛ1006)

Τεχνητή Νοημοσύνη. 15η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Προγραμματισμός Η/Υ (ΤΛ2007 )

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

Δομές Δεδομένων (Data Structures)

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Τοµέας Τηλεπικοινωνιών Αναπληρωτής Καθηγητής: Αλέξανδρος Ποταµιάνος

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Δομημένος Προγραμματισμός

Jordan Form of a Square Matrix

Εισαγωγή στην Αριθμητική Ανάλυση

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Transcript:

EPL451: Data Mining on the Web Lab 9 Παύλος Αντωνίου Γραφείο: B109, ΘΕΕ01 University of Cyprus Department of Computer Science

Μείωση διαστάσεων Dimensionality reduction Από λίστα χρηστών ηλ. ταχυδρομείου του Mahout μετρώντας εμφανίσεις λέξεων-κλειδιών στα emails φαίνεται ότι ο αλγόριθμος Singular Value Decomposition (SVD) είναι ο πιο ευρέως χρησιμοποιούμενος αλγόριθμος ακολουθεί ο k-means 2

SVD: 3 όψεις του ιδίου νομίσματος Μέθοδος μετασχηματισμού συσχετιζόμενων (correlated) μεταβλητών (π.χ. driver behavior features) σε ένα σύνολο ασυσχέτιστων (uncorrelated) που «αποκαλύπτουν» καλύτερα τις σχέσεις μεταξύ των αρχικών δεδομένων Αρχικά δεδομένα: π.χ. σύνολο από οδηγούς με πολλά χαρακτηριστικά που προσδιορίζουν τη συμπεριφορά του (π.χ. υπερβάσεις ορίου, απότομα φρεναρίσματα, μέση ταχύτητα οδήγησης, κτλ.) SVD => απορρίπτει περιττά χαρακτηριστικά, αποκαλύπτει κρυφές συσχετίσεις (χαρακτηριστικά που εμφανίζονται μαζί συχνά) που μπορούν να περιγράψουν καλύτερα τη συμπεριφορά ενός οδηγού, και επιτρέπει ευκολότερη αποθήκευση και επεξεργασία δεδομένων 3

SVD: 3 όψεις του ιδίου νομίσματος Μέθοδος προσδιορισμού και σειριοποίησης (ordering) των διαστάσεων (π.χ. driver behavior features) κατά μήκος των οποίων τα αρχικά δεδομένα παρουσιάζουν την πιο μεγάλη διακύμανση (variation) Σε ποια χαρακτηριστικά (ή συνδυασμούς) υπάρχει η πιο μεγάλη διακύμανση τιμών => πιο σημαντικά διότι πιο δύσκολο να προβλεφθούν οι τιμές τους Όταν προσδιορίσουμε που υπάρχει η μεγαλύτερη διακύμανση, είναι δυνατόν να βρούμε την καλύτερη προσέγγιση (approximation) των αρχικών δεδομένων χρησιμοποιώντας λιγότερες διαστάσεις (με άλλα λόγια, λιγότερα χαρακτηριστικά) 4

Παράδειγμα μείωσης διαστάσεων Έστω δεδομένα (σημεία) 2 διαστάσεων (2D) Η ευθεία (regression line) που τα διαπερνά είναι η καλύτερη προσέγγιση των αρχικών δεδομένων με ένα μονοδιάστατο 1D αντικείμενο (ευθεία) Αν ξέρουμε τη θέση ενός σημείου πάνω στην ευθεία μπορούμε προσεγγιστικά να «ανακαλύψουμε» το αρχικό σημείο 2 διαστάσεων 2 αρχικές διαστάσεις (x, y) 1 τελική διάσταση Καλύτερη ευθεία => η απόσταση μεταξύ των αρχικών σημείων και της ευθείας είναι η ελάχιστη δυνατή 5

m SVD και γραμμική άλγεβρα Ο SVD βασίζεται σε ένα θεώρημα της γραμμικής άλγεβρας το οποίο λέει ότι ένας ορθογώνιος πίνακας Α μπορεί να «προσεγγιστεί» από ένα γινόμενο 3 άλλων πινάκων A mn = U md Σ dd V T dn ορθογώνιος πίνακας U διαγώνιος πίνακας Σ (έχει στοιχεία μόνο στην κύρια διαγώνιο) ανάστροφος ενός πίνακα V n A m n V T d: αριθμός μη-γραμμικώς εξαρτημένων μεταβλητών (χαρακτηριστικών) concepts rank(σ) = rank(a) Οι τιμές (singular values) είναι θετικές & ταξινομημένες σε φθίνουσα σειρά. U Δείτε ανάλυση και παραδείγματα εδώ. 6

Οδηγοί Χαρακτηριστικά Υπερβάσεις ορίου Απότομα φρεναρίσματα Επιταχύνσεις Εμπρόθεσμη παράδοση Θετικά σχόλια Παράδειγμα 1 1 1 0 0 2 2 2 0 0 1 1 1 0 0 5 5 5 0 0 0 0 0 2 2 0 0 0 3 3 0 0 0 1 1 = Πίνακας ομοιότητας οδηγών-προς-concept 0.18 0 0.36 0 0.18 0 0.90 0 0 0.53 0 0.80 0 0.27 x Οι τιμές του πίνακα Σ ονομάζονται ιδιοτιμές (eigenvalues) ή singular values και οι γραμμές του πίνακα V ιδιοδιανύσματα (eigenvectors). Concepts 9.64 0 0 5.29 Κακοί Καλοί Πίνακας x ομοιότητας χαρακτηριστικών -προς-concept 0.58 0.58 0.58 0 0 0 0 0 0.71 0.71 Πίνακας A Πίνακας U Πίνακας V T 8

Οπτική Επισκόπηση Ο 6-διάστατος χώρος των χαρακτηριστικών (1 άξονας ανά χαρακτηριστικό) γίνεται 2-διάστατος (περιγράφεται από τα 2 διανύσματα του πίνακα V) v1 v2 0.58 0.58 0.58 0 0 0 0 0 0.71 0.71 2D latent dimensions space Latent dimensions (κρυφές διαστάσεις) ή singular vectors ή ιδιοδιανύσματα. Οδηγοί που ανήκουν στο concept «καλοί» v2 v1 Οδηγοί που ανήκουν στο concept «κακοί» 9

Υλοποίηση SVD Υλοποίηση σε μεγάλους αραιούς (sparse) πίνακες: SVDPACK (σε Fortran/C) περιέχει διάφορους αλγόριθμους υλοποιημένους από τον Michael Berry SVDLIBC (σε C) http://tedlab.mit.edu/~dr/svdlibc/ Υπολογίζουν τα πρώτα m singular values και vectors SVD συνιστώσες U, Σ και V αποθηκεύονται σε ξεχωριστά αρχεία 10

SVD in Mahout (long command form) <MAHOUT_HOME>/bin/mahout svd command Job-Specific Options: --input (-i) input Path to job input directory. --output (-o) output The directory pathname for output. --numrows (-nr) numrows Number of rows of the input matrix --numcols (-nc) numcols Number of columns of the input matrix --rank (-r) rank Desired decomposition rank (note: only roughly 1/4 to 1/3 of these will have the top portion of the spectrum) --symmetric (-sym) symmetric Is the input matrix square and symmetric? --cleansvd (-cl) cleansvd Run the EigenVerificationJob to clean the eigenvectors after SVD --maxerror (-err) maxerror Maximum acceptable error --mineigenvalue (-mev) mineigenvalue Minimum eigenvalue to keep the vector for --inmemory (-mem) inmemory Buffer eigen matrix into memory (if you have enough!) --help (-h) Print out help --tempdir tempdir Intermediate output directory --startphase startphase First phase to run --endphase endphase Last phase to run 13

SVD in Mahout (short command form) <MAHOUT_HOME>/bin/mahout svd \ --input (-i) <Path to input matrix> \ --output (-o) <The directory pathname for output> \ --numrows (-nr) <Number of rows of the input matrix> \ --numcols (-nc) <Number of columns of the input matrix> \ --rank (-r) <Desired decomposition rank> \ --symmetric (-sym) <Is the input matrix square and symmetric> Μετά το όρισμα --input δίνεται η θέση του αρχείου (στο HDFS) που περιέχει τα διανύσματα (vectors) γράμμή-προςγραμμή του πίνακα εισόδου Α θα σε μορφή SequenceFile<Writable,VectorWritable> preferably SequentialAccessSparseVectors instances vector that only stores non-zero doubles as a pair of parallel arrays one int[] (position), one double[] (value) 14

SVD in Mahout Κάθε διάνυσμα περιέχει --numcols στοιχεία; --numrows είναι ο αριθμός των διανυσμάτων Οι τιμές αυτές χρησιμοποιούνται για την δέσμευση μνήμης των δομών στις οποίες θα αποθηκευτεί ο πίνακας. Μετά την εκτέλεση, ο κατάλογος --output θα περιέχει ένα αρχείο με το όνομα "raweigenvectors" το οποίο θα περιέχει τα ιδιοδιανύσματα (eigenvectors). Ο αλγόριθμος υπολογισμού του SVD στο Mahout (DistributedLanczosSolver) ενδέχεται να παράξει «επιπλέον» ιδιοδιανύσματα, των οποίων οι ιδιοτιμές δεν είναι έγκυρες, οπότε υπάρχει ακόμα ένα βήμα που ξεκαθαρίζει τα σωστά ζεύγη ιδιοτιμών/ιδιοδιανυσμάτων δες επόμενη διαφάνεια. 15

Cleaning the output Αυτό γίνεται με την εντολή «cleansvd» <MAHOUT_HOME>/bin/mahout cleansvd \ --eigeninput <path to raw eigenvectors> \ --corpusinput <path to corpus> \ --output <path to output directory> \ --maxerror <maximum allowed error. Default is 0.5> \ --mineigenvalue <minimum allowed eigenvalue. Default is 0.0> \ --inmemory <true if the eigenvectors can all fit into memory. Default false> 16

Cleaning the output --corpusinput είναι το μονοπάτι αρχείου εισόδου από το προηγούμενο βήμα, --eigeninput είναι το μονοπάτι καταλόγου εξόδου από το προηγούμενο βήμα (<output>/raweigenvectors), --output είναι το επιθυμητό μονοπάτι αρχείου εξόδου (το ίδιο με την svd εντολή). Οι 2 παράμετροι «καθαρίσματος» είναι οι --maxerror (το μέγιστο επιτρεπτό 1-cosAngle (v, A.timesSquared(v)), και --mineigenvalue. Τα ιδιοδιανύσματα που έχουν πολύ μεγάλο σφάλμα ή πολύ μικρή ιδιοτιμή απορρίπτονται. 17

Long command form Και τα 2 βήματα μπορούν να γίνουν με μια εντολή. <MAHOUT_HOME>/bin/mahout svd \ \ --cleansvd "true \ όπως φαίνεται εδώ. Μετά την εκτέλεση, ο κατάλογος εξόδου --output directory θα περιέχει 2 αρχεία: το "raweigenvectors" και το "cleaneigenvectors". 18

Cleaning the output Optional argument: --inmemory, if you have enough memory on your local machine (not on the hadoop cluster nodes!) to load all eigenvectors into memory at once (at least 8 bytes/double * rank * numcols), then you will see some speedups on this cleaning process. Μετά την εκτέλεση, ο κατάλογος --output θα έχει το όνομα "cleaneigenvectors" και θα περιέχει τα σωστά ιδιοδιανύσματα 19

Παράδειγμα 1 Μετατροπή CSV σε αρχείο εισόδου Mahout SVD SequenceFile<Writable,VectorWritable> Κατεβάστε το CSV2SVD.zip Ο πίνακας Α της διαφάνειας 13 βρίσκεται σε μορφή csv (comma separated) στο αρχείο data.csv <row>,<col>,<value>\n 1 1 1 0 0 2 2 2 0 0 1 1 1 0 0 5 5 5 0 0 0 0 0 2 2 0 0 0 3 3 0 0 0 1 1 Δημιουργείστε Maven project με το δοθέν pom.xml και το data.csv και βάλτε μέσα στον κατάλογο src/main/java/com/csdeptucy/app το αρχείο Convert2SVD.java 0,0,1 0,1,1 0,2,1 1,0,2 1,1,2 1,2,2 2,0,1 2,1,1 2,2,1 3,0,5 3,1,5 3,2,5 4,3,2 4,4,2 5,3,3 5,4,3 6,3,1 6,4,1 20

Παράδειγμα 1 Δημιουργείστε το jar file mvn clean install Τρέξτε το πρόγραμμα java -cp target/svd-1.0-snapshot-jarwith-dependencies.jar com.csdeptucy.app.convert2svd data.csv 5 data.seq args[0] input csv file args[1] cardinality, length of row vector (size of cols) args[2] output sequence file 21

Παράδειγμα 1 Αντιγράψτε το sequence file στο HDFS hadoop fs -copyfromlocal data.seq data.seq bin/mahout seqdumper -i data.seq Δείτε τα περιεχόμενα του binary αρχείου Τρέξτε Mahout SVD bin/mahout svd -i data.seq -o svd_output -nr 7 -nc 5 -r 10 -sym "false" -wd temp_svd --cleansvd "true" -mem "false" Δείτε αρχείο εξόδου (που είναι sequence file μορφή binary file) bin/mahout seqdumper -i svd_output/cleaneigenvectors 22

Παράδειγμα 2 Είσοδος: Last FM artist-tags vectors sequence file 41702 artists, 20863 tags Κατεβάστε το sequence file από εδώ http://www.cs.ucy.ac.cy/courses/epl451/labs/lab09/las tfmvectors.zip Αποσυμπιέστε το zip file και αντιγράψτε στο HDFS: hadoop fs -copyfromlocal lastfmvectors lastfmvectors Τρέξτε: bin/mahout svd -i lastfmvectors -o svd_output -nr 41702 -nc 20863 -r 10 -sym "false" -wd temp_svd --cleansvd "true" -mem "false" 23

Sources https://cwiki.apache.org/confluence/display/maho UT/Dimensional+Reduction https://cwiki.apache.org/confluence/display/maho UT/Stochastic+Singular+Value+Decomposition http://www.puffinwarellc.com/index.php/news-andarticles/articles/30-singular-value-decompositiontutorial.html http://bickson.blogspot.com/2011/06/what-aremost-widely-deployed-machine.html Mahout in Action - Book by Sean Owen and Robin Anil, published by Manning Publications, 2011. 24