ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ Η/Υ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASSIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (APACHE SPARK) Αλεξόπουλος Αθανάσιος ΑΜ: Επιβλέπων: Μακρής Χρήστος, Αναπληρωτής Καθηγητής Πάτρα, Φεβρουάριος 2018

2 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Πανεπιστήμιο Πατρών, Τμήμα Μηχανικών Η/Υ και Πληροφορικής Αλεξόπουλος Αθανάσιος 2018 Με την επιφύλαξη παντός δικαιώματος

3 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Πίνακας Περιεχομένων Ευχαριστίες...i Περίληψη... ii Abstract... iii Εισαγωγή... iv Δεδομένα Μεγάλης Κλίμακας (Big Data) Από πού προέρχονται τα δεδομένα Δομή των δεδομένων Χαρακτηριστικά των δεδομένων Εφαρμογές των δεδομένων μεγάλης κλίμακας (Big Data) Προβλήματα προς επίλυση στο χώρο των δεδομένων μεγάλης κλίμακας... 9 Κατανεμημένα συστήματα Αποθήκευση δεδομένων μεγάλης κλίμακας Επεξεργασία δεδομένων μεγάλης κλίμακας Apache Hadoop Apache Spark Τεχνικές και εργαλεία που χρησιμοποιήσαμε Δένδρα απόφασης (Decision Trees) Τυχαία δάση (Random Forests) Λογιστική παλινδρόμηση (Logistic regression) Πολυεπίπεδο Perceptron (Multilayer Perceptron MLP) Gradient Boosted Trees One-Vs-Rest Από τα RDD στα Dataframe Μεθοδολογία που ακολουθήσαμε στις αναλύσεις Ανάλυση κατηγοριοποίησης ενός βήματος Ανάλυση κατηγοριοποίησης δύο βημάτων Collaborative Filtering Higgs Σύνολο Δεδομένων Πρώτη σειρά αναλύσεων κατηγοριοποίησης... 57

4 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Πρώτο στάδιο ανάλυσης δύο βημάτων Δένδρα Απόφασης (Decision Trees) Τυχαία δάση (Random Forest) Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Gradient Boosted Trees Classifier Multilayer Perceptron Ανάλυση κατηγοριοποίησης στο πλήρες σύνολο δεδομένων Δένδρα απόφασης (Decision Trees) Τυχαία δάση (Random Forest) Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Gradient Boosted Trees Classifier Multilayer Perceptron Δεύτερη σειρά αναλύσεων κατηγοριοποίησης Πρώτο στάδιο ανάλυσης δύο βημάτων Δένδρα Απόφασης (Decision Trees) Τυχαία δάση (Random Forest) Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Gradient Boosted Trees Classifier Multilayer Perceptron Ανάλυση κατηγοριοποίησης στο πλήρες σύνολο δεδομένων Δένδρα απόφασης (Decision Trees) Τυχαία δάση (Random Forest) Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Gradient Boosted Trees Classifier Multilayer Perceptron PAMAP2 Σύνολο Δεδομένων Ανάλυση κατηγοριοποίησης Πρώτο στάδιο ανάλυσης δύο βημάτων Δένδρα απόφασης (Decision Trees) Τυχαία δάση (Random Forest)... 97

5 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Λογιστική παλινδρόμηση πολλαπλών κλάσεων (Multinomial Logistic Regression) One-Vs-Rest Multilayer Perceptron Ανάλυση κατηγοριοποίησης στο πλήρες σύνολο δεδομένων Δένδρα απόφασης (Decision Trees) Τυχαία δάση (Random Forest) Λογιστική παλινδρόμηση πολλαπλών κλάσεων (Multinomial Logistic Regression) One-Vs-Rest Multilayer Perceptron Γενικά συμπεράσματα Collaborative Filtering Ανάλυση εκτός του Collaborative Filtering Ανάλυση κατηγορίας Collaborative Filtering Επιπλέον αναλύσεις ως προς τις τιμές των συντελεστών Αναφορές

6 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Ευρετήριο Εικόνων Εικ. 1.1: Γράφημα Google Trends για τον όρο Big Data... 1 Εικ. 1.2: Πηγές δεδομένων μεγάλου όγκου... 2 Εικ. 1.3: Internet of Things... 3 Εικ. 1.4: Ανθρώπινη δραστηριότητα στο διαδίκτυο... 4 Εικ. 1.5: Τα 5 V των Big Data... 7 Εικ. 1.6: Βήματα της διαδικασίας εξόρυξης γνώσης... 9 Εικ. 2.1: Παράδειγμα βάσης δεδομένων τύπου ζευγών κλειδιών-τιμών Εικ. 2.2: Παράδειγμα βάσης δεδομένων τύπου αποθήκης εγγράφων Εικ. 2.3: Παράδειγμα βάσης δεδομένων τύπου στηλοκεντρικής Εικ. 2.4: Παράδειγμα βάσης δεδομένων τύπου γραφήματος Εικ. 2.5: ACID ιδιότητες Εικ. 2.6: Το CAP θεώρημα Εικ. 2.7: Το οικοσύστημα του Hadoop Εικ. 2.8: Αρχιτεκτονική του HDFS Εικ. 2.9: Τοποθέτηση αντιγράφων των block Εικ. 2.10: Σχηματική αναπαράσταση διαδικασίας MapReduce Εικ. 2.11: Το οικοσύστημα του Apache Spark Εικ. 2.12: Επίπεδα αποθήκευσης δεδομένων στη μνήμη Εικ. 3.1: Κατηγορίες μηχανικής μάθησης Εικ. 3.2: Παράδειγμα δένδρου απόφασης Εικ. 3.3: Παράδειγμα τυχαίου δάσους Εικ. 3.4: Σχηματική απεικόνιση πραγματικού και τεχνητού νευρώνα [44] Εικ. 3.5: Απεικόνιση τυπικού MLP με ένα κρυφό επίπεδο [44] Εικ. 3.6: Αναπαράσταση δισδιάστατου μητρώου Εικ. 3.7: Είσοδος Databricks community edition Εικ. 3.8: Αρχική σελίδα Databricks Community Edition Εικ. 3.9: Σελίδα δημιουργίας cluster Εικ. 3.10: Δημιουργία cluster Εικ. 3.11: Εισαγωγή δεδομένων μέσω Table Εικ. 3.12: Σύνολο δεδομένων που έχουμε ήδη ανεβάσει στο Databricks Εικ. 3.13: Δομή Notebook Εικ. 3.14: Συγκριτικό διάγραμμα εκτέλεσης RDD και Dataframe Εικ. 3.15: Παράδειγμα χρήσης VectorAssembler Εικ. 3.16: Παράδειγμα ορισμού συνόλων εκπαίδευσης και ελέγχου Εικ. 3.17: Αρχικοποίηση δένδρου απόφασης Εικ. 3.18: Αρχικοποίηση Pipeline Εικ. 3.19: Αρχικοποίηση ParamGridBuilder Εικ. 3.20: Μητρώο ενδεχόμενων αποτελεσμάτων (Confusion Matrix)... 51

7 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Εικ. 3.21: Πρώτο βήμα της διαδικασίας κατηγοριοποίησης 2 βημάτων Εικ. 3.22: Αρχικοποίηση Alternating Least Squares Εικ. 4.1: Υπολογισμός ελλιπών τιμών Εικ. 4.2: Μέρος του συνόλου δεδομένων Εικ. 4.3: Δομή του αρχικού συνόλου δεδομένων όπως χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης ενός βήματος (1-step classifier) Εικ. 4.4: Μέγεθος συνόλου δεδομένων Εικ. 4.5: Προσδιορισμός των επιμέρους τμημάτων του συνόλου δεδομένων Εικ. 4.6: Απαιτούμενος χρόνος για το αρχικό στάδιο Εικ. 4.7: Χαρακτηριστικά που θα αφαιρεθούν Εικ 4.8: Δομή του συνόλου δεδομένων για την ανάλυση κατηγοριοποίησης 2 βημάτων (2-step classifier) Εικ. 4.9: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.10: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.11: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.12: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.13: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.14: Μέρος του συνόλου δεδομένων Εικ. 4.15: Δομή του αρχικού συνόλου δεδομένων όπως χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης ενός βήματος (1-step classifier) Εικ. 4.16: Μέγεθος συνόλου δεδομένων Εικ. 4.17: Προσδιορισμός των επιμέρους τμημάτων του συνόλου δεδομένων Εικ. 4.18: Απαιτούμενος χρόνος για το αρχικό στάδιο Εικ. 4.19: Χαρακτηριστικά που θα αφαιρεθούν Εικ 4.20: Δομή του συνόλου δεδομένων για την ανάλυση κατηγοριοποίησης 2 βημάτων (2-step classifier) Εικ. 4.21: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.22: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.23: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 4.24: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων... 83

8 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Εικ. 4.25: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 5.1: Πίνακας δραστηριοτήτων Εικ. 5.2: Χαρακτηριστικά συμμετεχόντων Εικ. 5.3: Υπολογισμός ελλιπών τιμών Εικ. 5.4: Μέρος συνόλου δεδομένων Εικ. 5.5: Δομή του αρχικού συνόλου δεδομένων όπως χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης ενός βήματος (1-step classifier) Εικ. 5.6: α)μη κανονικοποιημένο αναγνωριστικό β)κανονικοποιημένο αναγνωριστικό δραστηριότητας Εικ. 5.7: Προσδιορισμός των επιμέρους τμημάτων του συνόλου δεδομένων Εικ. 5.8: Απαιτούμενος χρόνος για το αρχικό στάδιο Εικ. 5.9: Χαρακτηριστικά που θα αφαιρεθούν Εικ 5.10: Δομή του συνόλου δεδομένων για την ανάλυση κατηγοριοποίησης 2 βημάτων (2-step classifier) Εικ. 5.11: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 5.12: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 5.13: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 5.14: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 5.15: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Εικ. 6.1: Μέρος συνόλου δεδομένων Εικ. 6.2: Περιγραφή εγγραφής του συνόλου δεδομένων Εικ. 6.3: Μέγεθος συνόλου δεδομένων Εικ. 6.4: Εσφαλμένες εγγραφές του συνόλου δεδομένων Εικ. 6.5: Σύνολο δεδομένων με εσφαλμένες εγγραφές Εικ. 6.6: Δημιουργία καθαρού συνόλου δεδομένων Εικ. 6.7: Μέρος του καθαρού συνόλου δεδομένων Εικ. 6.8: Δομή του τελικού συνόλου δεδομένων Εικ. 6.9: Μέρος του τελικού συνόλου δεδομένων Εικ. 6.10: Μετατροπή τύπου δεδομένων σε ακεραίους Εικ. 6.11: Μέρος του συνόλου δεδομένων Εικ. 6.12: Σύγκριση dataframe που δημιουργήθηκε μέσω StringIndexer ως προς userid Εικ. 6.13: Σύγκριση dataframe που δημιουργήθηκε μέσω StringIndexer ως προς productid Εικ. 6.14: Επιβεβαίωση ότι η διαδικασία StringIndexer δεν μεταβάλει τα αποτελέσματα : Τελική μορφή dataframe όπως χρησιμοποιήθηκε στις αναλύσεις

9 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Εικ. 6.16: Αποτελέσματα ανάλυσης με βάση τον μέσο όρο βαθμολογιών Εικ. 6.18: Προσδιορισμός επιμέρους τμημάτων του συνόλου δεδομένων Εικ. 6.19: Μεταβολή RMSE Εικ. 6.20: Μεταβολή MSE Εικ. 6.21: Μεταβολή MΑE Εικ. 6.22: Μεταβολή συνολικού χρόνου Εικ. 6.23: Μεταβολή χρόνου υπολογισμού του μοντέλου Εικ. 6.24: Υπολογισμός μέγιστου useridindex Εικ. 6.25: Τυχαία βαθμολογία για το νέο χρήστη Εικ. 6.26: Προβλέψεις για τον νέο χρήστη Εικ. 6.27: Προβλέψεις για το νέο χρήστη με βάση ταινίες που έχουν συγκεντρώσει τουλάχιστον 150 βαθμολογήσεις Εικ. 6.28: Σύγκριση αποτελεσμάτων Εικ. 6.29: Μεταβολή μετρικών για maxiter= Εικ. 6.30: Μεταβολή συνολικά απαιτούμενου χρόνου για maxiter= Εικ. 6.31: Μεταβολή απαιτούμενου χρόνου για υπολογισμό του μοντέλου για maxiter= Εικ. 6.32: Μεταβολή μετρικών για rank= Εικ. 6.33: Μεταβολή συνολικά απαιτούμενου χρόνου για rank= Εικ. 6.34: Μεταβολή απαιτούμενου χρόνου για υπολογισμό του μοντέλου για rank=

10 ΠΑΡΑΜΕΤΡΙΚΗ ΑΝΑΛΥΣΗ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ (CLASIFICATION) ΚΑΙ COLLABORATIVE FILTERING ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΟ ΠΕΡΙΒΑΛΛΟΝ (SPARK) Ευρετήριο Πινάκων Πιν. 3.1: Αριθμός κρυφών επιπέδων κατηγοριοποιητή Multilayer Perceptron Πιν. 4.1: Αποτελέσματα ανάλυσης Decision Tree Πιν.4.2: Αποτελέσματα ανάλυσης Random Forest Πιν. 4.3: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης Πιν. 4.4: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier Πιν. 4.5: Αποτελέσματα ανάλυσης Multilayer Perceptron Πιν. 4.6: Αποτελέσματα ανάλυσης Decision Tree Πιν. 4.7: Αποτελέσματα ανάλυσης Random Forest Πιν. 4.8: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης Πιν. 4.9: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier Πιν. 4.10: Αποτελέσματα ανάλυσης Multilayer Perceptron Πιν. 4.11: Αποτελέσματα ανάλυσης Decision Tree Πιν.4.12: Αποτελέσματα ανάλυσης Random Forest Πιν. 4.13: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης Πιν. 4.14: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier Πιν. 4.15: Αποτελέσματα ανάλυσης Multilayer Perceptron Πιν. 4.16: Αποτελέσματα ανάλυσης Decision Tree Πιν. 4.17: Αποτελέσματα ανάλυσης Random Forest Πιν. 4.18: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης Πιν. 4.19: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier Πιν. 4.20: Αποτελέσματα ανάλυσης Multilayer Perceptron Πιν. 5.1: Δομή συνόλου δεδομένων Πιν. 5.2: Δεδομένα αισθητήρα IMU Πιν. 5.3: Υπολογισμός ποσοστών κάθε κλάσης Πιν. 5.4: Αποτελέσματα ανάλυσης Decision Tree Πιν.5.5: Αποτελέσματα ανάλυσης Random Forest Πιν. 5.6: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης Πιν. 5.7: Αποτελέσματα ανάλυσης One-Vs-Rest Πιν. 5.8: Αποτελέσματα ανάλυσης Multilayer Perceptron Πιν. 5.9: Αποτελέσματα ανάλυσης Decision Tree Πιν. 5.10: Αποτελέσματα ανάλυσης Random Forest Πιν. 5.11: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης Πιν. 5.12: Αποτελέσματα ανάλυσης One-Vs-Rest Πιν. 5.13: Αποτελέσματα ανάλυσης Multilayer Perceptron Πιν. 6.1: Αποτελέσματα ανάλυσης Collaborative Filtering Πιν. 6.2: Αποτελέσματα συνόλου ελέγχου Πιν. 6.3: Αποτελέσματα ανάλυσης για maxiter= Πιν. 6.4: Αποτελέσματα ανάλυσης για rank=

11 i Ευχαριστίες Η παρούσα διπλωματική εργασία εκπονήθηκε στο πλαίσιο του Μεταπτυχιακού Προγράμματος Σπουδών Επιστήμη και Τεχνολογία Υπολογιστών του Τμήματος Μηχανικών Η/Υ και Πληροφορικής του Πανεπιστημίου Πατρών. Πριν την παρουσίαση της διπλωματικής εργασίας νιώθω την ανάγκη να ευχαριστήσω κάποια άτομα, χωρίς την συνδρομή, αλλά και την υπομονή των οποίων, δεν θα είχε ολοκληρωθεί. Αρχικά, θα ήθελα να ευχαριστήσω τον επιβλέπων καθηγητή μου, Μακρή Χρήστο, καθώς επίσης και τον Ομότιμο καθηγητή Τσακαλίδη Αθανάσιο, για την εμπιστοσύνη που μου έδειξαν και για τις χρήσιμες και επίκαιρες συμβουλές τους. Θα ήταν σημαντική παράλειψη να μην συμπεριλάβω τον κο Καναβό Ανδρέα, του οποίου η υπομονή, επιμονή και καθοδήγηση συνέβαλε τα μέγιστα στην ολοκλήρωση της διπλωματικής εργασίας. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου και την Βίκυ, για την υποστήριξή τους σε όλη την πορεία μου προς την ολοκλήρωση του μεταπτυχιακού προγράμματος.

12 ii Περίληψη Ένα από τα κύρια χαρακτηριστικά της εποχής μας είναι τα δεδομένα μεγάλου όγκου. Πλέον είναι εφικτό να συλλέγουμε πληροφορίες από πληθώρα πηγών: τα έξυπνα κινητά, και γενικότερα οι έξυπνες συσκευές, τα κοινωνικά δίκτυα και το σύστημα υγείας αποτελούν ένα μικρό τμήμα των δυνητικών πηγών δεδομένων. Με την αύξηση των δεδομένων προέκυψαν δύο σημαντικά προβλήματα: η αποθήκευση και η επεξεργασία τους. Προκειμένου να ξεπεραστεί το πρώτο πρόβλημα αναπτύχθηκαν τεχνικές οι οποίες επιτρέπουν τόσο την γρήγορη όσο και την αξιόπιστη αποθήκευση και αναζήτηση της πληροφορίας. Για το δεύτερο πρόβλημα αναπτύχθηκαν καινούρια προγραμματιστικά πλαίσια (frameworks) τα οποία επιτρέπουν την επεξεργασία των δεδομένων χρησιμοποιώντας συστάδες (clusters) υπολογιστών. Στην παρούσα διπλωματική εργασία, χρησιμοποιείται το προγραμματιστικό πλαίσιο Apache Spark το οποίο επιτρέπει την παράλληλη επεξεργασία δεδομένων. Για την υλοποίηση επιλέχθηκε η δωρεάν έκδοση του Databricks (Databricks community edition) η οποία παρέχει χώρο αποθήκευσης δεδομένων και διαθέσιμους πόρους για την επεξεργασία τους. Πραγματοποιήθηκαν δύο τύποι αναλύσεων: ανάλυση κατηγοριοποίησης (classification) και συνεργατικού φιλτραρίσματος (collaborative filtering). Στην ανάλυση κατηγοριοποίησης χρησιμοποιήθηκαν δύο σύνολα δεδομένων, ένα δυαδικό και ένα πολλαπλών κλάσεων εξόδου, στα οποία εφαρμόστηκε μία σειρά τεχνικών κατηγοριοποίησης, με σκοπό να συγκρίνουμε τις διάφορες τεχνικές κατηγοριοποίησης, να εξεταστεί η επεκτασιμότητα κάθε αλγορίθμου αλλά και να εξαχθούν συμπεράσματα ως προς την επίδραση των παραμέτρων της εκάστοτε τεχνικής. Για τις αναλύσεις χρησιμοποιήθηκε η βιβλιοθήκη Spark MlLib, η οποία παρέχεται από το framework Apache Spark και περιλαμβάνει υλοποιήσεις τεχνικών μηχανικής μάθησης βελτιστοποιημένες για κατανεμημένο περιβάλλον. Εκτός της τυπικής μεθοδολογίας κατηγοριοποίησης, πραγματοποιήθηκε μία σειρά αναλύσεων κατηγοριοποίησης δύο βημάτων, όπου στο πρώτο βήμα χρησιμοποιήθηκε μία αυτόματη μέθοδος για την εύρεση ενός υποσυνόλου των χαρακτηριστικών εισόδου και στη συνέχεια, χρησιμοποιώντας αυτό το υποσύνολο, επαναλήφθηκε η διαδικασία κατηγοριοποίησης. Σκοπός αυτής της διαδικασίας ήταν να μελετηθεί η επίδραση του αριθμού των χαρακτηριστικών τόσο στην ποιότητα των αποτελεσμάτων όσο και στον χρόνο εκτέλεσης. Στην ανάλυση collaborative filtering χρησιμοποιήθηκε ένα πραγματικό σύνολο δεδομένων που περιλαμβάνει βαθμολογήσεις ταινιών από χρήστες. Με βάση αυτό εξετάστηκε η επίδραση διαφόρων παραμέτρων του αλγορίθμου στην ποιότητα των τελικών αποτελεσμάτων αλλά και του χρόνου εκτέλεσής του. Για την υλοποίηση της διαδικασίας χρησιμοποιήθηκε και πάλι η βιβλιοθήκη Spark MlLib, ενώ επιπλέον εξήχθησαν προβλέψεις και για ένα νέο χρήστη. Λέξεις κλειδιά: Μεγάλος όγκος δεδομένων, Apache Spark, Databricks community edition, Spark MlLib, ανάλυση κατηγοριοποίησης, collaborative filtering

13 iii Abstract One of the main characteristics of our time is the growth of the data collections, both regarding their complexity and their volume. We can collect data literally from everywhere: smart phones, smart devices, social media and health care systems define a small portion of the possible sources of big data. Such big growth poses two main difficulties: storing and processing them. In order to overcome those difficulties several techniques have been developed. For the former, there are certain new technologies that enable us not only to store, but also to retrieve the information in a fast and reliable manner. For the latter, new application frameworks have been developed that enable us to process big data using computer clusters. In the present thesis we used the Apache Spark framework, a state of the art framework for distributed data processing. As development environment we chose Databricks community edition, which provides the user with not only data storage but also computational resources to perform analysis. We performed two different types of analyses, classification analysis and collaborative filtering. In the former, we used two datasets, a binary and a multiclass. We performed a series of typical classification analysis at each one of them using the Spark MlLib, a machine learning library which is provided by Apache Spark and is optimized for distributer computing. Our main purpose was to examine the scalability of each algorithm and also to extract information regarding the impact of each technique s parameters values. Part from the typical classification, we performed a series of two step classification analyses, in which at the first step we extracted a subset of the dataset characteristics, and using this dataset, we re-performed the classification analysis. Our goal was to examine the impact of the number of the characteristics in the metric s value and time needed to complete the analysis. In the collaborative filtering analysis, we performed a realistic dataset containing movies ratings provided by a number of users. Using this dataset we examined the impact of the algorithm s parameters in the quality of the final results. Again, we used the Spark MlLib implementation of the algorithm. Finally, we used the model we created to provide prediction for a new user. keywords: Big Data, Apache Spark, Databricks community edition, Spark MlLib, classification analysis, collaborative filtering

14 1 Εισαγωγή Με την συνεχόμενη ανάπτυξη της τεχνολογίας όλη η υφήλιος έχει μετατραπεί σε ένα τεράστιο δίκτυο. Πλέον, έχει καταστεί εφικτό να μπορούμε να συγκεντρώσουμε δεδομένα κυριολεκτικά από παντού. Τα έξυπνα κινητά τηλέφωνα, τα ολοένα και πιο διαδεδομένα δίκτυα κοινωνικής δικτύωσης, το σύστημα υγείας αποτελούν ένα μικρό δείγμα των πηγών δεδομένων. Αυτό οδήγησε στην γέννηση ενός από τους πιο ευρέως χρησιμοποιούμενους όρους στην εποχή μας: «Δεδομένα μεγάλης κλίμακας» (Big Data). Η συνεχόμενη αύξηση των δεδομένων μεγάλης κλίμακας (Big Data), έφερε στο προσκήνιο ένα επιπλέον πρόβλημα που έπρεπε να λυθεί αποτελεσματικά. Οι ερευνητές έπρεπε να βρουν τρόπο (εργαλεία, τεχνικές και αλγορίθμους) προκειμένου να μπορέσουν να εξασφαλίσουν την αποτελεσματική αποθήκευση και επεξεργασία τους. Έτσι, η επιστημονική κοινότητα ξεκίνησε να ασχολείται με το πρόβλημα της κλιμάκωσης, όπου προέκυψε ένα δίλλημα, το οποίο μπορεί να συνοψιστεί ως εξής [10] : scale up or scale out (κατακόρυφη ή οριζόντια κλιμάκωση). Η κατακόρυφη κλιμάκωση, που αποτελεί και την πιο προφανή λύση, ορίζεται ως η αύξηση των δυνατοτήτων ενός συστήματος, αναβαθμίζοντας τα επιμέρους υποσυστήματά του. Η οριζόντια κλιμάκωση αποτελεί την πιο «σύγχρονη» λύση, όπου, αντί να προσθέτουμε ολοένα και πιο σύγχρονο υλικό για να καλύψουμε τις αυξημένες υπολογιστικές ανάγκες, προσθέτουμε μηχανήματα τα οποία συνδέονται μεταξύ τους μέσω δικτύου. Η διπλωματική εργασία μπορεί να χωριστεί σε δύο μέρη. Στο πρώτο πραγματοποιήθηκε η εκτέλεση μίας σειράς αναλύσεων κατηγοριοποίησης (classification), χρησιμοποιώντας και συγκρίνοντας διάφορες μεθόδους σε δύο σύνολα δεδομένων μεγάλου όγκου. Οι αναλύσεις κατηγοριοποίησης μπορούν να χωριστούν σε δύο επιμέρους κατηγορίες, σε κατηγοριοποίηση ενός βήματος (1-step classification) όπου πρακτικά εφαρμόσαμε ένα σύνολο από μεθόδους κατηγοριοποίησης σε υποσύνολα του συνόλου δεδομένων για να μελετήσουμε την επεκτασιμότητα των αλγορίθμων σε κατανεμημένο περιβάλλον και σε κατηγοριοποίηση δύο βημάτων (2-step classification), όπου στο πρώτο βήμα διαλέξαμε ένα σύνολο από τις κλάσεις εισόδου και χρησιμοποιώντας μόνο αυτές προχωρήσαμε στο δεύτερο βήμα όπου πραγματοποιήθηκε μία σειρά αναλύσεων κατηγοριοποίησης, όπως προηγουμένως. Στο δεύτερο μέρος της εργασίας πραγματοποιήθηκε ανάλυση τύπου collaborative filtering. Η εκτέλεση των αναλύσεων πραγματοποιήθηκε κάνοντας χρήση του προγραμματιστικού εργαλείου Apache Spark, χρησιμοποιώντας την community edition που παρέχεται από την Databricks. 1 Σ αυτό το πλαίσιο, ο σκοπός της διπλωματικής εργασίας είναι να συγκριθούν οι διάφορες τεχνικές κατηγοριοποίησης σε ένα συνθετικό και ένα πραγματικό σύνολο δεδομένων, να μελετηθεί η επεκτασιμότητα (scalability) που παρουσιάζει ο εκάστοτε αλγόριθμος, αλλά και η 1

15 2 επίδραση που έχει στην ποιότητα των τελικών αποτελεσμάτων η τιμή των παραμέτρων της εκάστοτε τεχνικής. H δομή της διπλωματικής εργασίας διαρθρώνεται ως εξής: στο πρώτο κεφάλαιο παρουσιάζονται τα δεδομένα μεγάλης κλίμακας και αναλύονται οι πηγές και τα χαρακτηριστικά τους. Στο δεύτερο κεφάλαιο αναλύονται τα κατανεμημένα συστήματα, που ανήκουν στην τεχνική οριζόντιας κλιμάκωσης, ως μέσο ανάλυσης των δεδομένων μεγάλης κλίμακας, ενώ στο τρίτο κεφάλαιο παρουσιάζονται οι τεχνικές και οι τεχνολογίες που χρησιμοποιήθηκαν για την υλοποίηση των αναλύσεων. Στα κεφάλαια 4 και 5 παρουσιάζονται τα δύο σύνολα δεδομένων που χρησιμοποιήθηκαν στις αναλύσεις κατηγοριοποίησης και σχολιάζονται τα αποτελέσματα που παρήχθησαν. Τέλος στο κεφάλαιο 6 παρουσιάζουμε το σύνολο δεδομένων που χρησιμοποιήθηκε.

16 1 1. Δεδομένα Μεγάλης Κλίμακας (Big Data) Με την συνεχόμενη ανάπτυξη της τεχνολογίας όλη η υφήλιος έχει μετατραπεί σε ένα τεράστιο δίκτυο. Πλέον, έχει καταστεί εφικτό να μπορούμε να συγκεντρώσουμε δεδομένα κυριολεκτικά από παντού. Τα έξυπνα κινητά τηλέφωνα, τα ολοένα και πιο διαδεδομένα δίκτυα κοινωνικής δικτύωσης, το σύστημα υγείας αποτελούν ένα μικρό δείγμα των πηγών δεδομένων. Αυτό οδήγησε στην γέννηση ενός από τους πιο ευρέως χρησιμοποιούμενους όρους στην εποχή μας: «Δεδομένα μεγάλης κλίμακας» (Big Data). Εικ. 1.1: Γράφημα Google Trends για τον όρο Big Data Χαρακτηριστική είναι η Εικόνα 1, η οποία δημιουργήθηκε μέσω του εργαλείου Google Trends, ενός δωρεάν εργαλείου που παρέχεται από την Google και παρουσιάζει τον αριθμό των αναζητήσεων μέσω της μηχανής αναζήτησης Google μίας φράσης. Παρατηρούμε ότι αν και μέχρι το 2011 ο όρος Big Data υπήρχε, από εκείνη την χρονική στιγμή και μετά γινόταν ολοένα και πιο δημοφιλής. Εν τούτοις, παρόλη την δημοτικότητα του όρου, ένας ακριβής ορισμός δεν είναι εύκολο, ίσως και εφικτό, να δοθεί. Θα μπορούσαμε, κάπως αφελώς, να ορίσουμε τα Big Data έχοντας ως αποκλειστικό κριτήριο το μέγεθός τους, με διάφορες πηγές στο διαδίκτυο να θέτουν ως κάτω όριο το petabyte (1015 bytes) ή το exabyte (1018 bytes). Από την άλλη, επισημαίνουν ειδικοί του χώρου[12], ότι αν και το μέγεθος των δεδομένων είναι όντως τεράστιο, δεν είναι το πιο σημαντικό χαρακτηριστικό των Big Data. Για το λόγο αυτό, οι περισσότεροι θεωρούν ότι η ακριβέστερη περιγραφή του όρου είναι σύνολα δεδομένων, το μέγεθος των οποίων είναι τόσο μεγάλο ώστε να μην είναι εύκολη, ή και μερικές φορές εφικτή, η αποθήκευση και η επεξεργασία τους με παραδοσιακές μεθόδους και εργαλεία [1]. Είναι εύκολα κατανοητό ότι όσο αυξάνεται ο όγκος δεδομένων, τόσο γεννιούνται νέες ευκαιρίες και δυνατότητες στην επιστήμη της πληροφορίας, με την προϋπόθεση φυσικά ότι μπορούμε να επεξεργαστούμε τα δεδομένα. Όσο πιο μεγάλο είναι το σύνολο δεδομένων, τόσο καλύτερα είναι τα διάφορα μοντέλα επεξεργασίας, με την έννοια ότι τα αποτελέσματα που μας επιστρέφουν είναι περισσότερο ακριβή. Και όπως έχει αναφερθεί[2], η επιστήμη της πληροφορίας είναι ο πρωταρχικός καταλύτης της οικονομικής ανάπτυξης.

17 Από πού προέρχονται τα δεδομένα Όπως αναφέρθηκε και προηγουμένως, ο συνολικός όγκος των δεδομένων που αποθηκεύονται σε παγκόσμιο επίπεδο, αυξάνεται με ραγδαίους ρυθμούς, ειδικά από την περίοδο που περάσαμε από την αναλογική στην ψηφιακή εποχή. Το πέρασμα αυτό έδωσε την δυνατότητα της οικονομικής και άμεσης αποθήκευσης των δεδομένων, πολλές φορές την στιγμή της δημιουργίας τους, καθώς και της εύκολης ανάκτησής τους για περαιτέρω επεξεργασία. Βέβαια, αυτό δεν θα ήταν αρκετό για να δημιουργήσει αυτό τον τεράστιο όγκο δεδομένων εάν το διαδίκτυο δε γινόταν προσιτό σε μεγάλο μέρος του παγκόσμιου πληθυσμού. Αυτή η ευρεία πρόσβαση στις υπηρεσίες που μπορεί να προσφέρει, άλλαξε τον τρόπο με τον οποίο οι άνθρωποι επικοινωνούν αλλά και καλύπτουν τις καθημερινές τους ανάγκες. Κάτω από μία πιο γενική σκοπιά, θα μπορούσαμε να πούμε ότι οι πηγές των δεδομένων είναι τρεις, δεδομένα που παράγονται από μηχανές, από ανθρώπους και από επιχειρήσεις[3]. Εικ. 1.2: Πηγές δεδομένων μεγάλου όγκου 1 Πλέον ολοένα και περισσότερες συσκευές εξοπλίζονται με πληθώρα αισθητήρων προκειμένου να παρέχουν στους χρήστες περισσότερες δυνατότητες. Ακόμα και απλές συσκευές, όπως είναι τα κινητά τηλέφωνα, προσφέρουν πολλά περισσότερα από μια στείρα επικοινωνία. Εκτός από τη δυνατότητα να συνδέονται στο διαδίκτυο από οποιοδήποτε σημείο, προσφέροντας 1

18 3 ενημέρωση, τα πλέον διαδεδομένα είναι εφοδιασμένα με πολλούς επιπλέον αισθητήρες, όπως για παράδειγμα με δέκτη GPS προσφέροντας στους χρήστες δυνατότητες πλοήγησης. Γενικά, οι «έξυπνες» συσκευές» έχουν την δυνατότητα να συνδέονται μεταξύ τους και σε δίκτυο ανταλλάσσοντας δεδομένα, να συλλέγουν, να αποθηκεύουν και να επεξεργάζονται πληροφορίες αυτόνομα και να μπορούν να παρέχουν πληροφορίες για το περιβάλλον στο οποίο βρίσκονται. Όλα αυτά έχουν οδηγήσει στο Internet of Things [13], βασική ιδέα του οποίου είναι η ύπαρξη διαφόρων μηχανημάτων τα οποία μπορούν να αλληλεπιδρούν μεταξύ τους. Εικ. 1.3: Internet of Things 1 Η δεύτερη πηγή δεδομένων είναι ο ίδιος άνθρωπος, ο οποίος με κάθε μορφή δραστηριότητάς του στο το διαδίκτυο μπορεί να παράξει τεράστιο όγκο δεδομένων. Παραδείγματα αυτής της δραστηριότητας αποτελούν η κριτική σε μία ταινία, ένα σχόλιο σε ένα μέσο κοινωνικής δικτύωσης, ένα video στο youtube, ή ακόμη και τα blog, που έδωσαν στον καθένα τη δυνατότητα είτε να εκφράσει την άποψή του, είτε να μοιραστεί γνώση. Τα δεδομένα αυτά είναι στην πλειοψηφία τους μη δομημένα, καθώς αποτελούν φυσικό λόγο. Χαρακτηριστικά έχουμε την Εικόνα 1.4, όπου παρουσιάζει την δραστηριότητα διαφόρων ιστότοπων ανά λεπτό. 1

19 4 Εικ. 1.4: Ανθρώπινη δραστηριότητα στο διαδίκτυο 1 Η τρίτη πηγή δεδομένων είναι τα δεδομένα από επιχειρήσεις. Τα δεδομένα που παράγονται από επιχειρήσεις είναι δομημένα, ενώ ο τρόπος που παράγονται ποικίλει ανά περίπτωση. Ο τύπος των δεδομένων διαφέρει ανάλογα με την περίπτωση που εξετάζουμε κάθε φορά, ενώ ένα βασικό χαρακτηριστικό τους είναι ότι, στην πλειονότητα τους, θεωρούνται αξιόπιστα. Παράδειγμα αυτής της κατηγορίας αποτελεί το πελατολόγιο της εταιρίας στο οποίο μπορεί να συμπεριλαμβάνονται οι αγορές τις οποίες έχει πραγματοποιήσει κάποιος πελάτης, καθώς και κριτικές ή/και προτιμήσεις του. 1

20 Δομή των δεδομένων Όπως αναφέρθηκε, τα δεδομένα που παράγονται από την ανθρώπινη δραστηριότητα είναι στην πλειοψηφία τους μη-δομημένα, ενώ τα δεδομένα από οργανισμούς είναι στην πλειονότητά τους δομημένα. Στην συνέχεια θα εξηγήσουμε τους όρους αυτούς, παρουσιάζοντας τις κατηγορίες των δεδομένων μεγάλης κλίμακας ανάλογα με την δομή που έχουν: 1. Δομημένα δεδομένα (structured data): Τα δεδομένα αυτής της κατηγορίας χαρακτηρίζονται από την οργάνωσή τους. Αποτελούν την κατηγορία δεδομένων πάνω στην οποία πραγματοποιείται η πλειονότητα των αναλύσεων, αν και πρακτικά καλύπτουν μικρό ποσοστό των συνολικών δεδομένων. Ουσιαστικά πρόκειται για δεδομένα τα οποία μπορούν να περιγραφούν με την τυπική δομή μίας σχεσιακής βάσης δεδομένων, τα χαρακτηριστικά τους ανήκουν σε δεδομένα πεδία και οι σχέσεις μεταξύ αυτών των πεδίων είναι γνωστές. Τα δεδομένα που ανήκουν σε αυτή την κατηγορία είναι εύκολο να αποθηκευτούν και να αναλυθούν. 2. Αδόμητα δεδομένα (unstructured data): Αποτελούν την πλειονότητα των διαθέσιμων δεδομένων. Πρόκειται για δεδομένα τα οποία δεν μπορούν να οργανωθούν με ένα προδιαγεγραμμένο τρόπο. Αυτό δεν σημαίνει ότι τα δεδομένα αυτής της κατηγορίας δεν έχουν δομή, απλά αυτή η δομή είναι αρκετά περίπλοκη και δεν μπορεί να οριστεί σαφώς, όπως στην περίπτωση των δομημένων, και να τα εισαγάγουμε σε μία σχεσιακή βάση δεδομένων. Τα παραδείγματα αυτής της κατηγορίας υπάρχουν πρακτικά παντού, ενώ χαρακτηριστικά μπορούμε να αναφέρουμε το γραπτό κείμενο, είτε είναι κάποια δημοσίευση σε μέσο κοινωνικής δικτύωσης, είτε κείμενο μίας ιστοσελίδας, καθώς και τα αρχεία ήχου και εικόνας. 3. Ημι-δομημένα δεδομένα (semi-structured data): Αποτελούν, κατά μία έννοια, την ενδιάμεση κατηγορία. Τα δεδομένα δεν έχουν την αυστηρή δομή μίας σχεσιακής βάσης δεδομένων, αλλά από την άλλη έχουν κάποια οργάνωση μέσω της οποίας δίνεται η δυνατότητα επεξεργασίας τους. Παραδείγματα αυτής της κατηγορίας δεδομένων είναι οι διάφοροι τύποι αρχείων που διαχωρίζουν τα δεδομένα με ετικέτες, όπως τα XML ή JSON αρχεία όπως και τα .

21 Χαρακτηριστικά των δεδομένων Ανάλογα με την οπτική του κάθε ερευνητή, ο όρος Big Data μπορεί να σημαίνει και κάτι διαφορετικό. Για παράδειγμα για ένα γιατρό θα μπορούσε να θεωρηθεί μία βάση δεδομένων που περιλαμβάνει μετρήσεις από ασθενείς που πάσχουν από την ασθένεια που μελετά, ενώ για έναν οικονομολόγο θα μπορούσε να είναι το ιστορικό τραπεζικών συναλλαγών μίας γεωγραφικής περιοχής. Προκειμένου να μπορέσουν και ποιοτικά να ορίσουν χαρακτηριστικά των δεδομένων μεγάλης κλίμακας, οι ερευνητές κάνουν χρήση των V. Αρχικά ήταν τρία [4], Volume (όγκος), Velocity (ταχύτητα) και Variety (ποικιλία), αλλά επειδή το φαινόμενο των Big Data είναι δυναμικό και εξελίσσεται, στην συνέχεια έχουν προστεθεί και επιπλέον χωρίς όμως η επιστημονική κοινότητα να έχει ξεκαθαρίσει ποια θα δεχτεί τελικά. Βέβαια, θα πρέπει να τονίσουμε ότι η πρώτη αναφορά στα 3 V έγινε το 2001 [5] αν και στη δεδομένη δημοσίευση δεν γίνεται και σαφής αναφορά στον όρο Big Data. Στην συνέχεια θα αναλύσουμε τα 3 V που ήδη αναφέραμε, καθώς και τα Veracity [6] (ορθότητα) και Value [7] (αξία). 1. Volume (Όγκος): Αποτελεί το πλέον προφανές χαρακτηριστικό που σχετίζεται με τα δεδομένα μεγάλης κλίμακας, και δηλώνει την τεράστια ποσότητα πληροφορίας που παράγεται ανά μονάδα χρόνου. Αν και δεν υπάρχει σαφές όριο για την τιμή πάνω από την οποία μπορούμε να θεωρήσουμε ότι δεδομένα ανήκουν στην κατηγορία των Big Data, καθώς διαφέρει ανά επιστημονικό πεδίο και γεωγραφική περιοχή, είναι κοινώς παραδεχτό ότι συνεχώς αυξάνεται. Ότι θεωρείται σήμερα ότι αποτελεί μεγάλο όγκο, αύριο θα έχει ξεπεραστεί. 2. Velocity (Ταχύτητα): Δεν υπάρχει μία στάσιμη αποθήκη δεδομένων, τα δεδομένα συνεχώς παράγονται, επεξεργάζονται και αναλύονται με όλο και πιο γοργούς ρυθμούς. Χαρακτηριστικό παράδειγμα γι αυτή την περίπτωση είναι τα κοινωνικά δίκτυα, αν αναλογιστούμε τον χρόνο που χρειάζεται μία νέα τάση να γίνει viral. Ένας επιπλέον, και κατά μερικούς ερευνητές, πιο ουσιαστικός λόγος που η ταχύτητα είναι σημαντικό χαρακτηριστικό είναι ότι, σε δεδομένες περιπτώσεις, όπως για παράδειγμα τον realtime εντοπισμό απάτης, είναι πολλές φορές αδύνατο για τα παραδοσιακά συστήματα να αποθηκεύσουν και να επεξεργαστούν την πληροφορία. 3. Variety (Ποικιλία): Δεν υπάρχει ένας και μοναδικός τύπος δεδομένων και πηγών δεδομένων. Αυτό το χαρακτηριστικό αναφέρεται στην διαχείριση της πολυπλοκότητας των διαφόρων τύπων δεδομένων, που προκύπτει από την ανάγκη να ενσωματώσουμε δεδομένα που προέρχονται από διαφορετικές πηγές. Στο παρελθόν, η πλειονότητα των δεδομένων πρόκυπτε από μία σαφώς ορισμένη σχεσιακή βάση δεδομένων, ενώ πλέον οι πηγές των δεδομένων ποικίλουν, με την πλειονότητα των δεδομένων να ανήκουν στα αδόμητα, που δεν μπορούν να εισαχθούν σε μία βάση. Χαρακτηριστικό παράδειγμα αποτελεί ο φυσικός λόγος ή τα διάφορα αρχεία εικόνας ή ήχου. 4. Veracity (Ορθότητα): Το ότι πλέον υπάρχει μία τεράστια αποθήκη δεδομένων, δεν σημαίνει ότι τα δεδομένα αυτά είναι και αξιόπιστα. Λόγω τόσο των διαφορετικών πηγών δεδομένων, η ακρίβειά τους είναι ένα θέμα που πρέπει να ληφθεί υπόψιν. Για παράδειγμα, οι διάφοροι αισθητήρες που χρησιμοποιούνται για τις εκάστοτε

22 7 μετρήσεις δεν έχουν όλοι την ίδια ακρίβεια, ή στην περίπτωση του φυσικού λόγου, οι διάφορες συντομογραφίες μπορεί να οδηγήσουν σε λάθος αποτελέσματα. Αξίζει να σημειωθεί ότι μερικές φορές ο μεγάλος όγκος δεδομένων αντισταθμίζει την όποια έλλειψη ορθότητας. 5. Value (Αξία): Ποιο το νόημα της ανάλυσης δεδομένων μεγάλης κλίμακας, αν δεν μπορούμε να μετατρέψουμε το αποτέλεσμα της ανάλυσης σε κέρδος; Συνήθως υπάρχει πληθώρα πληροφορίας και το δύσκολο κομμάτι είναι να την εξαγάγουμε και να την μετατρέψουμε σε χρήσιμη πληροφορία. Εικ. 1.5: Τα 5 V των Big Data 1 1

23 Εφαρμογές των δεδομένων μεγάλης κλίμακας (Big Data) Εφόσον οι πηγές των Big Data προέρχονται από τις καθημερινές δραστηριότητες, είναι λογικό να τις επηρεάζουν κιόλας. Η εκμαίευση της κρυμμένης σε αυτά πληροφορίας μπορεί να δώσει ανάπτυξη στην παγκόσμια οικονομία αυξάνοντας την παραγωγικότητα και την ανταγωνιστικότητα των εταιριών και δημοσίων οργανισμών [14]. Ένας τομέας στον οποίο τα δεδομένα αυτά έχουν βρει ισχυρή ανταπόκριση, είναι στον τομέα των επιχειρήσεων και του εμπορίου. Σύμφωνα με εκτιμήσεις ο όγκος των δεδομένων των επιχειρήσεων διπλασιάζεται κάθε 1,2 χρόνια [15]. Επιπλέον, ο τρόπος προώθησης των προϊόντων των εταιριών έχει αλλάξει, με χαρακτηριστικό παράδειγμα να αποτελεί η δημιουργία στοχευμένων προτάσεων, οι οποίες ανταποκρίνονται στις προσωπικές απαιτήσεις και ανάγκες του κάθε ατόμου. Πλέον δεν χρησιμοποιείται ο συνολικός αριθμός πωλήσεων ενός προϊόντος ως κριτήριο για την προώθησή του, αλλά μπορούν να συνυπολογιστούν και επιπλέον δεδομένα, διαφορετικά για κάθε χρήστη, όπως το ιστορικό των αγορών του ή/και γεωγραφικές καταγραφές του, ώστε να προταθούν προϊόντα που είναι πιο κοντά στις ανάγκες του εκάστοτε καταναλωτή. Ένας άλλος τομέας όπου τα δεδομένα μεγάλης κλίμακας μπορούν να προσφέρουν, είναι στη δημόσια διοίκηση. Αφενός ο αριθμός των πολιτών μίας χώρας είναι μεγάλος, αφετέρου οι ανάγκες του δεν είναι κοινές και συχνά εξαρτώνται από ένα σύνολο παραγόντων όπως ηλικία και γεωγραφική περιοχή. Σύμφωνα με [15],η χρήση των δεδομένων μεγάλης κλίμακας μπορεί να δώσει στον δημόσιο τομέα την ευκαιρία να βελτιώσει την παραγωγικότητα και την αποδοτικότητά του. Είναι επίσης προφανές ότι πολλά επιστημονικά πεδία χρειάζεται να διαχειριστούν δεδομένα μεγάλου όγκου. Χαρακτηριστικά παραδείγματα αυτών αποτελούν η αστρονομία, η μετεωρολογία, η ανάλυση κοινωνικών δικτύων [17] και η βιο-πληροφορική [18]. Προκειμένου να αποκτήσουμε μία εικόνα του όγκου των δεδομένων που μπορεί να παραχθούν σε ένα πείραμα, αναφέρουμε το Large Hadron Collider (LHC), τον επιταχυντή σωματιδίων στο Cern, ο οποίος παράγει 60 terabyte δεδομένων κάθε μέρα 1, μέσω των οποίων οι επιστήμονες προσπαθούν να βρουν μοτίβα για την κατανόηση του σύμπαντος. 1

24 Προβλήματα προς επίλυση στο χώρο των δεδομένων μεγάλης κλίμακας Αν και οι δυνατότητες που μπορεί να παρέχει η σωστή χρήση των δεδομένων μεγάλης κλίμακας είναι μεγάλες, εντούτοις η ανάλυση αυτών των δεδομένων βρίσκεται αντιμέτωπη και με προκλήσεις[19] που κυρίως εντοπίζονται στην συλλογή των δεδομένων, την αποθήκευση, την αναζήτηση, τη διαμοίραση, την ανάλυση και την οπτικοποίηση. Μία πρόκληση είναι η υπάρχουσα αρχιτεκτονική που στηρίζεται κυρίως στην επεξεργαστική ισχύ, ενώ η εγγραφή/ανάγνωση από τον δίσκο είναι σχετικά αργή. Αν και με βάση τον νόμο του Moore, η επεξεργαστική ισχύς διπλασιάζεται1, η απόδοση των δίσκων αποθήκευσης δεν ακολουθεί αντίστοιχη βελτίωση. Αυτό έχει ως αποτέλεσμα τη δημιουργία περιορισμών στην επεξεργασία των δεδομένων μεγάλης κλίμακας. Η διαδικασία της ανακάλυψης γνώσης είναι δομημένη σε διάφορα βήματα[21], με την ακόλουθη σειρά: επιλογή δεδομένων, προεπεξεργασία τους, μετασχηματισμός των δεδομένων σε κατάλληλη μορφή και τέλος εξόρυξη της κρυμμένης γνώσης, με βάση ένα κατάλληλο αλγόριθμο (ή τεχνική γενικότερα)[20]. Εικ. 1.6: Βήματα της διαδικασίας εξόρυξης γνώσης 2 Οι προκλήσεις στον τομέα της ανάλυσης δεδομένων μεγάλης κλίμακας προκύπτουν κυρίως από μη συμβατά ή/και ελλιπή δεδομένα, την επεκτασιμότητα (scalability), την επικαιρότητα και την ασφάλεια των δεδομένων[22]. Προκειμένου να πραγματοποιηθεί η διαδικασία εξόρυξης γνώσης, τα δεδομένα πρέπει να είναι σωστά δομημένα. Όμως, αποτελεί ακόμα πρόβλημα η σωστή αναπαράσταση αδόμητων και ημι-δομημένων δεδομένων. Μία επιπλέον δυσκολία αποτελεί ο συνδυασμός δεδομένων από ετερογενείς πηγές, μιας και οι βάσεις πολλές φορές έχουν μη συμβατά ή και ελλιπή δεδομένα, όπως και δεδομένα με θόρυβο. Έτσι, επιβάλλεται η χρήση διαφόρων μεθόδων προεπεξεργασίας, όπως ο καθαρισμός δεδομένων, η ενοποίηση τους, ο μετασχηματισμός τους καθώς και data reduction ώστε να αφαιρεθεί ο θόρυβος και να διορθωθούν οι ασυμβατότητες[23]

25 10 2. Κατανεμημένα συστήματα Η συνεχόμενη αύξηση των δεδομένων μεγάλης κλίμακας (Big Data), έφερε στο προσκήνιο ένα επιπλέον πρόβλημα που έπρεπε να λυθεί αποτελεσματικά, και το οποίο αναφέρεται στον ορισμό που αναφέραμε στην αρχή του προηγούμενου κεφαλαίου. Οι ερευνητές έπρεπε να βρουν τρόπο (εργαλεία, τεχνικές και αλγορίθμους) προκειμένου να μπορέσουν να εξασφαλίσουν την αποτελεσματική αποθήκευση και επεξεργασία τους. Έτσι, η επιστημονική κοινότητα ξεκίνησε να ασχολείται με το πρόβλημα της κλιμάκωσης. Η κλιμάκωση [9] είναι μία επιθυμητή ιδιότητα ενός δικτύου, συστήματος ή διεργασίας. Με την έννοια αυτή υποδηλώνεται η ικανότητά του να ανταπεξέρχεται στην αύξηση της εισόδου του, ή την δυνατότητα του να επεκταθεί ώστε να μπορεί να καλύψει τις απαιτήσεις της αύξησης της εισόδου. Στην προσπάθεια των ερευνητών να μπορέσουν να κλιμακώσουν τα υπάρχοντα συστήματα, προέκυψε ένα δίλλημα, το οποίο μπορεί να συνοψιστεί ως εξής [10] : scale up or scale out (κατακόρυφη ή οριζόντια κλιμάκωση). Η κατακόρυφη κλιμάκωση, που αποτελεί και την πιο προφανή λύση, ορίζεται ως η αύξηση των δυνατοτήτων ενός συστήματος, αναβαθμίζοντας τα επιμέρους υποσυστήματά του. Η λύση αυτή οδηγεί, μακροπρόθεσμα, στη δημιουργία υπερυπολογιστών. Το πρόβλημα με αυτή την λύση είναι ότι πολλές φορές τα τελικά συστήματα μπορούν να χρησιμοποιηθούν για την επίλυση ενός τύπου προβλήματος, ενώ η χρήση ολοένα και πιο εξεζητημένου υλικού, τα καθιστά και πιο ακριβά. Από την άλλη, σχεδόν πάντα θα υπάρχει ένα άνω όριο στο μέγεθος των δεδομένων εισόδου που θα μπορεί ένα μηχάνημα να διαχειριστεί, καθώς το μέγεθος των δεδομένων μεγάλης κλίμακας τείνει να αυξάνεται συνεχώς. Η οριζόντια κλιμάκωση αποτελεί την πιο «σύγχρονη» λύση. Στην περίπτωση αυτή, αντί να προσθέτουμε ολοένα και πιο σύγχρονο υλικό για να καλύψουμε τις αυξημένες υπολογιστικές ανάγκες, προσθέτουμε μηχανήματα. Τα μηχανήματα αυτά δεν είναι ανάγκη να είναι στην ίδια γεωγραφική περιοχή αλλά να συνδέονται μεταξύ τους μέσω δικτύου. Η λύση αυτή είναι πιο οικονομική καθώς η επιπλέον υπολογιστική ισχύς προκύπτει από τυπικούς υπολογιστές, είναι πιο εύκολα αναβαθμίσιμη, ενώ το γεγονός ότι δεν υπάρχει γεωγραφικός περιορισμός ως προς την θέση των διασυνδεδεμένων υπολογιστών, την καθιστά και πιο ανεκτική σε αστοχίες. Ένα σημαντικό χαρακτηριστικό αυτών των συστημάτων είναι ότι παρέχουν ένα επίπεδο αφαίρεσης από τον χρήστη, ο οποίος θεωρεί ότι είναι ένα ενιαίο σύστημα, χωρίς να τον ενδιαφέρει ο τρόπος που επικοινωνούν τα επιμέρους τμήματα από τα οποία αποτελείται η εσωτερική οργάνωση του συστήματος.

26 Αποθήκευση δεδομένων μεγάλης κλίμακας Από τα τέλη της δεκαετίας του 1980, οι σχεσιακές βάσεις δεδομένων κυριαρχούσαν ως αποδοτικός τρόπος διαχείρισης και ανάλυσης δεδομένων. Σε αυτό το μοντέλο, τα δεδομένα αποθηκεύονται σε σαφώς ορισμένους πίνακες, που περιέχουν στήλες που περιγράφουν τα γνωρίσματα και τους εκάστοτε περιορισμούς του κάθε στιγμιότυπου που αποθηκεύεται στη βάση δεδομένων, ενώ κάθε γραμμή του πίνακα περιγράφει την τιμή κάθε στήλης για το εκάστοτε στιγμιότυπο. Οι πίνακες δύναται να συσχετίζονται μεταξύ τους, με τη χρησιμοποίηση ενός κοινού πεδίου μεταξύ των πινάκων. Σκοπός αυτού του σχεσιακού μοντέλου είναι η οργανωμένη και αποδοτική αποθήκευση, ενημέρωση και ανάκτηση της πληροφορίας, ενώ για τις ερωτήσεις προς την βάση δεδομένων έχει επικρατήσει η SQL (Structured Query Language). Έχουν προταθεί διάφορες υλοποιήσεις συστημάτων διαχείρισης σχεσιακών βάσεων δεδομένων όπως η MySql, Oracle, PostgreSQL. Από την άλλη [11], αφενός ο τεράστιος όγκος δεδομένων που δημιουργείται από διάφορες πηγές (όπως συζητήσαμε στο προηγούμενο κεφάλαιο), και αφετέρου η συνεχώς αυξανόμενη ανεξαρτησία και πολυπλοκότητα των δεδομένων, έχουν οδηγήσει στην δημιουργία ενός νέου μοντέλου αποθήκευσης δεδομένων, με την ονομασία NoSQL (Not Only SQL) Βάσεις Δεδομένων. Βασικό στοιχείο που διαφοροποιεί αυτού του είδους τις βάσεις δεδομένων από τις σχεσιακές, είναι ότι δεν βασίζονται στην αυστηρή δομή του πίνακα, ενώ είναι κατανεμημένες και σχεδιασμένες για αποθήκευση δεδομένων μεγάλης κλίμακας και επεξεργασία δεδομένων που βρίσκονται διαμοιρασμένα σε διάφορους εξυπηρετητές (servers). Ουσιαστικά, οι NoSQL βάσεις δεδομένων επικεντρώνονται στην επεξεργασία δεδομένων μεγάλης κλίμακας, προσφέροντας υψηλή επεκτασιμότητα και επιδόσεις. Οι βάσεις δεδομένων αυτού του τύπου στηρίζονται στην αρχή της οριζόντιας κλιμάκωσης, ενώ μπορούν να κατηγοριοποιηθούν σε τέσσερις βασικές κατηγορίες: 1. Ζευγών κλειδιών-τιμών (Key-value stores): Αποτελούν το πιο απλό μοντέλο διαχείρισης βάσεων δεδομένων και αποθηκεύουν τα αντικείμενα ως ζεύγη αλφαριθμητικών αναγνωριστικών (κλειδί) και των τιμών που αντιστοιχούν σε αυτά σε μορφή πινάκων. Συνήθως δεν περιλαμβάνουν πεδία ενημερώσεων και ολόκληρο το πεδίο τιμής, που αντιστοιχεί σε ένα κλειδί, αντικαθίσταται σε κάθε ενημέρωση, ενώ οι αναζητήσεις πραγματοποιούνται σε σχέση με τα κλειδιά και είναι τύπου πλήρους ισότητας (exact match), που λόγω της απλότητας του μοντέλου πραγματοποιείται γρήγορα και το καθιστά ιδανικό στις περιπτώσεις διαχείρισης προφίλ χρηστών ή ανάκτησης ονομασίας προϊόντων. Παραδείγματα συστημάτων που εμπίπτουν σε αυτή την κατηγορία είναι το Dynamo της Amazon και το Voldemort του LinkedIn.

27 12 Εικ. 2.1: Παράδειγμα βάσης δεδομένων τύπου ζευγών κλειδιών-τιμών 1 2. Αποθήκες εγγράφων (Document stores): Όπως είναι προφανές από το όνομά τους, αυτού του είδους οι βάσεις δεδομένων έχουν σχεδιαστεί με σκοπό να διαχειρίζονται και να αποθηκεύουν έγγραφα, όπου ως έγγραφο ορίζεται ένα σύνολο από ζεύγη κλειδιών-τιμών. Σε αντίθεση με τις βάσεις τύπου κλειδιού-τιμής, η δομή του πεδίου τιμής είναι ημι-δομημένη, υπάρχει η δυνατότητα οι τιμές να έχουν διαφορετικό μήκος σε κάθε καταχώρηση, ενώ το πεδίο κλειδί είναι τύπου αλφαρηθμιτικού (string). Η κωδικοποίηση πραγματοποιείται σε μία τυπική μορφή εξαγωγής δεδομένων (XML, JSON Javascript Option Notation-, BSON Binary JSON-). Αυτή η κατηγορία βάσεων δεδομένων είναι ιδανική για την αποθήκευση συλλογών εγγράφων, όπως έγγραφα κειμένου, XML ή s. Παραδείγματα βάσεων δεδομένων που εμπίπτουν σε αυτή την κατηγορία είναι Apache CouchDB, MongoDB, Lotus Notes. Εικ. 2.2: Παράδειγμα βάσης δεδομένων τύπου αποθήκης εγγράφων

28 13 3. Στηλοκεντρικές (column-family or wide-column stores): Αντίστοιχα με την περίπτωση εγγράφων, οι στηλοκεντρικές υποστηρίζουν μία κατανεμημένη δομή στην οποία μπορούν να υπάρχουν πολλές ιδιότητες ανά κλειδί. Οι βάσεις δεδομένων αυτού του τύπου αποθηκεύουν τα δεδομένα στο δίσκο ομαδοποιώντας τα ανά στήλη, σε αντίθεση με τις σχεσιακές βάσεις δεδομένων που τα αποθηκεύουν ανά γραμμή. Με αυτό τον τρόπο είναι εφικτή η γρήγορη ανάκτηση μεγάλου μέρους πληροφορίας που αφορά ένα δεδομένο χαρακτηριστικό, με αποτέλεσμα οι βάσεις δεδομένων αυτού του τύπου να είναι αποδοτικές σε περιπτώσεις επεξεργασίας ενός υποσυνόλου των πεδίων της βάσης δεδομένων. Παραδείγματα αυτού του τύπου βάσεων δεδομένων είναι Cassandra (Facebook), Google Bigtable, Apache HBase, Amazon SimpleDB. Εικ. 2.3: Παράδειγμα βάσης δεδομένων τύπου στηλοκεντρικής 1 4. Γραφημάτων (Graph Databases): Αποτελούν την μοναδική περίπτωση μη-σχεσιακής βάσης δεδομένων, η οποία περιλαμβάνει σχέσεις μεταξύ των οντοτήτων. Όπως είναι προφανές χρησιμοποιούνται για την αναπαράσταση γραφημάτων, αλλά και γενικότερα δεδομένων που διασυνδέονται. Το γράφημα απεικονίζεται ως ένα δίκτυο κόμβων, ενώσεων (ακμών) μεταξύ κόμβων, ενώ χαρακτηριστικό του είναι, ότι τόσο οι κόμβοι όσο και οι ακμές, μπορούν να αποθηκεύουν επιπλέον πληροφορίες, ως ζεύγη κλειδιώντιμών, ενώ επιπλέον παρέχουν την δυνατότητα να υπάρχουν πολλαπλές συνδέσεις ανάμεσα σε δύο κόμβους. Χρησιμοποιούνται κυρίως όταν μας ενδιαφέρουν οι σχέσεις μεταξύ των δεδομένων, όπως για παράδειγμα στην περίπτωση που θέλουμε να διασχίσουμε το γράφημα που αναπαριστά ένα μέσο κοινωνικής δικτύωσης. Παραδείγματα αυτού του τύπου βάσεων είναι οι Neo4j, InfoGrid, InfiniteGraph. 1

29 14 Εικ. 2.4: Παράδειγμα βάσης δεδομένων τύπου γραφήματος 1 Αφού αναλύσαμε τους διαφόρους τύπους NoSQL βάσεων δεδομένων, στην συνέχεια θα αναφερθούμε στα χαρακτηριστικά τους. Τα παραδοσιακά συστήματα διαχείρισης βάσεων δεδομένων βασίζονται στις συναλλαγές (transactions), μέσω των οποίων διασφαλίζεται η ακεραιότητα των δεδομένων και η αξιόπιστη λειτουργία της βάσης δεδομένων. Τα χαρακτηριστικά αυτά είναι ευρέως γνωστά με το αρκτικόλεξο ACID (Atomicity-ατομικότητα, Consistency-συνέπεια, Isolation-απομόνωση, Durability-μονιμότητα). Εικ. 2.5: ACID ιδιότητες 2 Γενικά, το να διατηρηθούν τα ACID χαρακτηριστικά σε ένα μονολιθικό σύστημα μπορεί να είναι επίπονο αλλά είναι και εφικτό. Στην περίπτωση όμως των κατανεμημένων βάσεων δεδομένων, στα οποία γενικά υπάρχουν διάφορα αντίγραφα των δεδομένων στους κόμβους, αποδείχθηκε προβληματικό. Γι αυτή την περίπτωση οι ερευνητές πρότειναν το CAP (Strong-Consistency- Ισχυρή συνέπεια-συνοχή, High-Availability-Υψηλή διαθεσιμότητα, Partition tolerance-ανοχή

30 15 στην κατάτμηση) θεώρημα, όπου το 2000 ο Brewer 1 υποστήριξε ότι κάθε κατανεμημένο σύστημα μπορεί να έχει μόνο δύο από τις τρεις αυτές ιδιότητες. Στην συνέχεια θα παρουσιάσουμε μία συνοπτική ανάλυση των ιδιοτήτων: 1. (Strong) Consistency (Ισχυρή συνέπεια-συνοχή): Όλοι οι χρήστες βλέπουν την ίδια έκδοση των δεδομένων, ακόμα και κατά την διάρκεια ενημερώσεων της βάσης. 2. (High) Availability (Υψηλή διαθεσιμότητα): Ανεξάρτητα από την λειτουργική κατάσταση του cluster (αν υπάρχουν μηχανήματα εκτός λειτουργίας), όλοι οι χρήστες μπορούν να βρουν τουλάχιστον ένα αντίγραφο των δεδομένων. 3. Partition tolerance (Ανοχή στην κατάτμηση): Το σύστημα πρέπει να συνεχίσει να λειτουργεί, ανεξάρτητα από την απώλεια μηνυμάτων που αποστέλλονται μεταξύ των κόμβων ή αστοχία μέρους του συστήματος. Εικ. 2.6: Το CAP θεώρημα 2 Πολλά από τα συστήματα διαχείρισης NoSQL βάσεων δεδομένων έχουν επιλέξει πρωτίστως να χαλαρώσουν τις απαιτήσεις αναφορικά με την Ανοχή (Consistency), με σκοπό να βελτιώσουν την Διαθεσιμότητα (Availability) και την Ανοχή στην κατάτμηση (Partition tolerance). Αυτό είχε ως αποτέλεσμα την δημιουργία των BASE (Basically Available-Βασικά διαθέσιμα, Soft-state, Eventually Consistent-Τελικώς συνεπή) συστημάτων. Η ονομασία αυτή δόθηκε με σκοπό να δείξει την αντίθεση αυτού του μοντέλου με το ACID Basically Available (Βασικά Διαθέσιμα): Αυτή η παράμετρος ουσιαστικά δηλώνει ότι το σύστημα εγγυάται την διαθεσιμότητα των δεδομένων, με βάση το CAP θεώρημα. 2. Soft-state: Η κατάσταση του συστήματος μπορεί να μεταβάλλεται, ακόμα και αν δεν υπάρχει κάποια είσοδος από τον χρήστη nosqltips.blogspot.com 3

31 3. Eventually Consistent (Τελικώς συνεπή): Δεδομένου ότι το σύστημα δεν λαμβάνει κάποια είσοδο (μεταβολή των δεδομένων), με την πάροδο του χρόνου το σύστημα θα γίνει συνεπές. Ο βασικότερος λόγος που επικράτησαν οι NoSQL βάσεις δεδομένων, στην περίπτωση των δεδομένων μεγάλης κλίμακας, είναι η ικανότητα τους να προσφέρουν αυξημένη επεκτασιμότητα και υψηλές επιδόσεις [24]. Έτσι, σε αντίθεση με τα παραδοσιακά RDBMS συστήματα, όπου για να αυξηθεί η απόδοσή τους έπρεπε να βελτιώσουμε το υλικό (προσθήκη RAM, αλλαγή CPU με πιο σύγχρονη), πράγμα συνήθως ασύμφορο οικονομικά, στα NoSQL απλά προσθέτουμε επιπλέον κόμβους, που σε πολλές περιπτώσεις είναι, είτε έτοιμες λύσεις σε υποδομές cloud, είτε απλά τυπικά μηχανήματα. Επίσης, ενώ στα RDBMS συστήματα η συντήρησή τους συνήθως απαιτεί εξειδικευμένο προσωπικό (Database Administrator), τα NoSQL απαιτούν ελάχιστη παρέμβαση από ανθρώπινο παράγοντα καθώς συμπεριλαμβάνουν αυτοματοποιημένες μεθόδους όπως automatic repair και data distribution καθώς και απλές δομές δεδομένων. Επίσης στην περίπτωση που χρειαστεί να πραγματοποιηθούν αλλαγές στο μοντέλο δεδομένων, τυπικά στα RDBMS συστήματα, θα χρειαζόταν για κάποιο χρονικό διάστημα η βάση να μην είναι διαθέσιμη, σε αντίθεση με τα NoSQL συστήματα που θέτουν λιγότερους περιορισμούς. Από την άλλη μεριά, το βασικό τους μειονέκτημα είναι ότι δεν μπορούν να εγγυηθούν τις ACID ιδιότητες των σχεσιακών βάσεων δεδομένων. Έχουν πραγματοποιήσει την μεταλλαγή της συνοχής (consistency), σε τελικώς συνεπή (eventual consistent), που γενικά είναι ασύγχρονη. Μπορεί να πραγματοποιηθεί μία δοσοληψία, ακόμα και αν δεν έχουν ενημερωθεί όλα τα αντίγραφα των δεδομένων, με αποτέλεσμα να υπάρχει η (ακραία) περίπτωση της ύπαρξης πολλών εκδόσεων του ίδιου αντικειμένου, μη συμβατών μεταξύ τους. Επίσης, ακριβώς επειδή γενικά είναι νέα και αναπτυσσόμενη ιδέα, με τις υλοποιήσεις να είναι ως επί το πλείστον ανοιχτού κώδικα, δεν διαθέτουν την ασφάλεια υποστήριξης και την αξιοπιστία των RDBMS συστημάτων, που είναι στο προσκήνιο τα τελευταία 25 χρόνια. 16

32 Επεξεργασία δεδομένων μεγάλης κλίμακας Το επόμενο βήμα από την αποθήκευση των δεδομένων, είναι η επεξεργασία τους. Και σε αυτή την περίπτωση οι ερευνητές ακολούθησαν αντίστοιχη διαδικασία, όσον αφορά την επεκτασιμότητα. Τα πρώτα μοντέλα που προτάθηκαν ήταν κάπως εξειδικευμένα, και για νέους τύπους αναλύσεων, διαφορετικά μοντέλα αναπτύσσονταν [25]. Χαρακτηριστικά παραδείγματα αποτελούν το MapReduce [26], το οποίο αναπτύχθηκε αρχικά από την Google και είναι κατάλληλο για batch processing ενώ μία ανοιχτού κώδικα ανταγωνιστική υλοποίησή του αποτελεί τμήμα του Apache Hadoop που θα αναλύσουμε στην συνέχεια. Η Google επίσης ανέπτυξε το Dremel [27] για ερωτήματα τύπου SQL και το Pregel [28] για ανάλυση γραφημάτων. Στην συνέχεια θα μελετήσουμε δύο υλοποιήσεις ανοιχτού κώδικα, το Apache Hadoop, που χρονολογικά παρουσιάστηκε πρώτο και το Apache Spark, το οποίο αναπτύχθηκε στην συνέχεια Apache Hadoop Πατέρας του Hadoop είναι ο Doug Cutting, ο οποίος το 2002 ξεκίνησε την υλοποίηση του Apache Nutch, μίας μηχανής αναζήτησης διαδικτύου ανοιχτού κώδικα. Μία από τις πιο βασικές δυσκολίες του εγχειρήματος ήταν η διαχείριση και η επεξεργασία του τεράστιου αριθμού των ιστοσελίδων του διαδικτύου. Η λύση σε αυτό το πρόβλημα ήρθε από το φαινομενικά αντίπαλο του ανοιχτού κώδικα, την Google, η οποία το 2003 παρουσιάζει σε μία δημοσίευση το Google File System (GFS) [29], όπου περιέγραφε και την αρχιτεκτονική του κατανεμημένου συστήματος αρχείων της. Πάνω σε αυτή την δημοσίευση ξεκίνησε η ανάπτυξη ενός ανοιχτού κώδικα συστήματος διαχείρισης αρχείων, το Nutch Distributed File System (NDFS), το οποίο αργότερα μετονομάστηκε σε Hadoop Distributed File System (HDFS) [31]. Ένα χρόνο αργότερα, το 2004, η Google σε μία δημοσίευσή της παρουσιάζει το MapReduce, ένα προγραμματιστικό πλαίσιο (framework) το οποίο είναι κατάλληλο για την επεξεργασία και ανάλυση μεγάλων συνόλων δεδομένων (dataset) σε συστάδες υπολογιστών (clusters). Στις αρχές του 2005 είχε πραγματοποιηθεί η, ανοιχτού κώδικα, υλοποίηση του MapReduce, ενώ στη συνέχεια υλοποιήθηκαν σε αυτό το πλαίσιο οι αλγόριθμοι του Nutch. Το Nutch, με την προσθήκη του MapReduce, είχε απομακρυνθεί από το αρχικό πλαίσιο του προγράμματος που ήταν η δημιουργία μίας μηχανής αναζήτησης, και έτσι το 2006 μετατράπηκε σε ανεξάρτητο project και μετονομάστηκε σε Hadoop. Το 2008 θεωρείται toplevel project της Apache Software Foundation, η οποία έχει αναλάβει και την εξέλιξή του. Μολονότι το HDFS και το MapReduce έχουν συγκεντρώσει το μεγαλύτερο μέρος της ανάλυσής μας, πρέπει να σημειωθεί ότι αποτελούν δύο από τα υποσυστήματα του οικοσυστήματος που ορίζεται ως Hadoop, όπως χαρακτηριστικά παρουσιάζεται στην Εικ. 2.7.

33 18 Εικ. 2.7: Το οικοσύστημα του Hadoop Hadoop Distributed File System (HDFS) Όπως είναι προφανές από την ονομασία του, το Hadoop Distributed File System (HDFS) είναι η υλοποίηση του κατανεμημένου συστήματος αρχείων του Hadoop. Το HDFS παρέχει στο χρήστη την δυνατότητα διαμοίρασης μεγάλου όγκου αρχείων δεδομένων στο σύνολο των κόμβων που απαρτίζουν το cluster, ενώ μέσω μίας προγραμματιστικής διεπαφής (API) δίνει στον χρήστη την εντύπωση ενός ενιαίου συνόλου αρχείων. Το HDFS στηρίζεται στο μοντέλο αρχιτεκτονικής του master-slave. Σε ένα HDFS cluster θα συναντήσουμε δύο ειδών κόμβων (nodes), ένας κόμβος θα αποτελεί τον NameNode (master), ενώ οι υπόλοιποι κόμβοι του cluster αποτελούν τους DataNodes (slave). Ο κόμβος που ορίζεται ως NameNode πρακτικά αποτελεί τον επόπτη του συστήματος, καθώς διαχειρίζεται τον χώρο ονομάτων (namespace) του συστήματος αρχείων. Σε αυτόν τον κόμβο δεν αποθηκεύεται η πληροφορία (δεδομένα), αλλά διατηρείται το δένδρο του συστήματος αρχείων όπως επίσης και μεταδεδομένα (metadata) για όλα τα αρχεία και τους φακέλους. Ουσιαστικά σε αυτό τον κόμβο αποθηκεύεται η πληροφορία για το που είναι αποθηκευμένο κάθε block αρχείων, καθώς και ο τρόπος με τον οποίο το αρχείο έχει κατανεμηθεί σε επιμέρους τμήματα, ώστε να μπορεί να ανακατασκευαστεί. Μία επιπλέον λειτουργία του NameNode είναι η εποπτεία της διαθεσιμότητας των δεδομένων καθώς και της ύπαρξης αντιγράφων (replicas) των αρχείων. Τα DataNodes παρέχουν τον κατανεμημένο χώρο αποθήκευσης, ο οποίος είναι 1

34 19 ανεξάρτητος του τοπικού συστήματος αρχείων του εκάστοτε κόμβου. Αυτοί είναι υπεύθυνοι για την δημιουργία, ανάκληση και αντιγραφή block δεδομένων όταν τους ζητηθεί από το NameNode. Επίσης, περιοδικά, στέλνουν σήματα (heartbeat) στον NameNode μέσω των οποίων του δηλώνουν την λειτουργικότητά τους, καθώς και μία αναφορά για το σύνολο των block δεδομένων που διατηρούν στον δίσκο τους. Εικ. 2.8: Αρχιτεκτονική του HDFS 1 Από την ανάλυση καθίσταται σαφές ότι ο NameNode αποτελεί νευραλγικό στοιχείο του συστήματος HDFS. Αποτελεί το μοναδικό αδύναμο σημείο του κατανεμημένου συστήματος (single point of failure), καθώς σε περίπτωση αστοχίας δεν είναι δυνατόν για το σύστημα να γνωρίζει τον τρόπο ανακατασκευής των αρχείων από τα DataNodes. Προκειμένου να αρθεί αυτή η αδυναμία, υπάρχει και ένας επιπλέον κόμβος, ο Secondary NameNode, στον οποίο διατηρούνται περιοδικά ορόσημα (checkpoints) του δένδρου του filesystem (που κανονικά διαχειρίζεται ο NameNode) στα οποία έχουν συγχωνευτεί οι όποιες αλλαγές έχουν πραγματοποιηθεί στα αρχεία του συστήματος, και με αυτό τον τρόπο μπορεί, σε περίπτωση που αστοχήσει ο NameNode, να επανεκκινηθεί με βάση αυτά τα στοιχεία. Στην ανάλυση αναφέρθηκε ο όρος block δεδομένων. Ως block ορίζεται η μικρότερη μονάδα αποθήκευσης δεδομένων στο HDFS. Κάθε αρχείο στο HDFS αποτελείται από ένα σύνολο blocks τα οποία είναι αποθηκευμένα στους κόμβους του cluster. Αν και αυτός ο όρος είναι δανεικός από τα παραδοσιακά συστήματα αρχείων και δίσκων, υπάρχουν κάποιες διαφοροποιήσεις. 1

35 20 Αρχικά, επειδή έχει σχεδιαστεί με βάση τα δεδομένα μεγάλης κλίμακας, η αρχική τιμή του μεγέθους του block είναι 64MB στο Hadoop1 και 128MB στο Hadoop2, ενώ παρέχεται η δυνατότητα στον χρήστη να αλλάξει την τιμή αυτή. Ως μέτρο σύγκρισης, το ext3 filesystem σε ένα Linux σύστημα έχει μέγεθος block 4kB. Μία επιπλέον σημαντική διαφοροποίηση είναι ότι, σε επίπεδο φυσικού σκληρού δίσκου, σε περίπτωση που ένα αρχείο που έχει μέγεθος μικρότερο από το μέγεθος του block, ο επιπλέον χώρος δεν δεσμεύεται από το σύστημα αρχείων, αλλά, καλύπτει μία εγγραφή στη μνήμη του NameNode (ως μεταδεδομένα στο δένδρο του filesystem). Στην ιδέα του block στηρίζονται δύο επιπλέον χαρακτηριστικά του HDFS. Το πρώτο αφορά την ανοχή σε σφάλματα. Ένα πολύ πιθανό σενάριο στην περίπτωση όπου ασχολούμαστε με τα κατανεμημένα συστήματα, είναι η αστοχία κάποιου υπολογιστή. Προκειμένου να μην χαθούν τα δεδομένα που υπήρχαν σε αυτό τον κόμβο, χρησιμοποιούνται αντίγραφα (replicas) των αρχείων και σε άλλους κόμβους. Ο αριθμός των αντιγράφων έχει ως αρχική τιμή το 3, αλλά ο χρήστης έχει την δυνατότητα να το αλλάξει. Προκειμένου να γίνει αξιόπιστα η διαδικασία αυτή, χρησιμοποιείται η έννοια του rack awareness. Κάθε rack του cluster δεικτοδοτείται με ένα μοναδικό αναγνωριστικό (rack id) και με βάση αυτό είναι δυνατός ο έλεγχος της θέσης των αντιγράφων. Μία απλή, αλλά όχι βέλτιστη, επιλογή είναι να τοποθετηθούν τα αντίγραφα σε κόμβους που ανήκουν σε τρία διαφορετικά rack. Με αυτή την λύση αποτρέπεται η απώλεια δεδομένων σε περίπτωση όπου κάποιο rack αστοχήσει, επιτρέπει την αξιοποίηση του δικτύου όταν θέλουμε να διαβάσουμε κάποιο αρχείο καθώς μπορούμε να διαβάζουμε από πολλά rack ταυτόχρονα, αλλά απαιτεί να υπάρχει μία εγγραφή σε κάθε rack. Μία κοινή πρακτική που ακολουθείται όταν ο αριθμός των αντιγράφων είναι τρία, είναι να χρησιμοποιούνται δύο rack, όπου δύο αντίγραφα αποθηκεύονται σε διαφορετικούς κόμβους ενός rack ενώ το τρίτο σε ένα διαφορετικό rack. Η ιδέα αυτή στηρίζεται στο ότι η πιθανότητα αστοχίας ενός rack είναι πολύ μικρότερη από την πιθανότητα αστοχίας ενός κόμβου. Εικ. 2.9: Τοποθέτηση αντιγράφων των block 1 1

36 21 Το δεύτερο χαρακτηριστικό που βασίζεται στην ιδέα του block είναι η ακεραιότητα των δεδομένων. Είναι πιθανό να υπάρξει αλλοίωση των δεδομένων για διάφορους λόγους (σφάλμα μετάδοσης στο δίκτυο, σφάλμα στην αποθήκευση στο σκληρό δίσκο). Για να διατηρηθεί η ακεραιότητα των δεδομένων χρησιμοποιείται το checksum. Σε κάθε αποθηκευμένο block σε ένα DataNode αντιστοιχίζεται και ένα checksum, το οποίο είναι αποθηκευμένο σε ένα κρυφό αρχείο. Πριν πραγματοποιηθεί η ανάγνωση από αυτό το αρχείο, ελέγχεται το checksum, και αν ο έλεγχος αποτύχει τότε χρησιμοποιείται ένα άλλο αντίγραφο του αρχείου, από διαφορετικό DataNode. Σε γενικές γραμμές, τα βασικά χαρακτηριστικά του HDFS μπορούν να συνοψιστούν στα εξής: Ανθεκτικότητα σε αστοχίες υλικού: Όπως αναφέραμε και προηγουμένως, οι αστοχίες υλικού είναι ένα σύνηθες φαινόμενο στα κατανεμημένα συστήματα, με αποτέλεσμα την απώλεια δεδομένων. Το HDFS έχει σχεδιαστεί λαμβάνοντας υπόψιν αυτή την παράμετρο και υποστηρίζει αυτοματοποιημένες διαδικασίες, τόσο εντοπισμού των κόμβων που έχουν αστοχήσει, όσο και διατήρησης αντιγράφων των δεδομένων. Πρόσβαση ροής δεδομένων (Streaming data access): Το HDFS έχει δημιουργηθεί με βάση την επεξεργασία δεδομένων μεγάλης κλίμακας. Βασικό χαρακτηριστικό αυτής της κατηγορίας δεδομένων είναι ότι τα δεδομένα εγγράφονται μία φορά και διαβάζονται πολλές (write-once, read-many-times). Το HDFS σχεδιάστηκε κυρίως για εφαρμογές που απαιτούν συνεχή ροή δεδομένων μεγάλου μεγέθους, έχοντας δώσει κυρίως έμφαση στην υψηλή διεκπαιρεωτική ικανότητα (throughput) μεταφοράς δεδομένων. Μεγάλα αρχεία δεδομένων: Το μέγεθος των δεδομένων που καλείται να διαχειριστεί το HDFS μπορεί να κυμαίνεται από αρκετά gigabytes, έως και terabytes. Η σχεδίασή του, του επιτρέπει την αποδοτική αποθήκευση και διαχείριση μεγάλου αριθμού αρχείων. Απλό μοντέλο συνοχής (Simple coherency model): Όπως αναφέραμε, το HDFS έχει σχεδιαστεί λαμβάνοντας υπόψιν το μοντέλο μονής εγγραφής, πολλαπλών αναγνώσεων, με τις όποιες εγγραφές να έχουν την μορφή της απλής εναπόθεσης των νέων δεδομένων (append) στο τέλος του αρχείου. Έτσι απλοποιείται το μοντέλο συνοχής του συστήματος. Μετακίνηση υπολογισμών και όχι δεδομένων: Οι υπολογισμοί που απαιτούνται από τις εφαρμογές, είναι πιο αποδοτικοί όταν πραγματοποιούνται κοντά στην πηγή των δεδομένων, ιδιαίτερα στην περίπτωση των δεδομένων μεγάλης κλίμακας. Με αυτό τον τρόπο αποσυμφορίζεται το δίκτυο και αυξάνεται η αποδοτικότητα του συστήματος. Το HDFS παρέχει τη δυνατότητα να μπορούν οι εφαρμογές να μετακινηθούν κοντά στα δεδομένα. Συμβατότητα μεταξύ ετερογενών συστημάτων (υλικό και λογισμικό): Το HDFS έχει σχεδιαστεί με την λογική να μπορεί να εκτελείται ανεξαρτήτως υλικού ή λογισμικού του μηχανήματος. Με αυτό τον τρόπο παρέχεται η δυνατότητα δημιουργίας cluster με μηχανήματα που διαφέρουν μεταξύ τους.

37 MapReduce Το MapReduce είναι ένα προγραμματιστικό πλαίσιο (framework), το οποίο ενσωματώθηκε στο Hadoop και αφορά την κατανεμημένη επεξεργασία μεγάλου πλήθους δεδομένων. Αποτελεί την ανοιχτού κώδικα υλοποίηση του αντίστοιχου framework που παρουσίασε η Google το 2004[26]. Το Hadoop υποστηρίζει την υλοποίηση προγραμμάτων MapReduce σε διάφορες γλώσσες προγραμματισμού, όπως Java, Python, Ruby και C++. Από το framework παρέχεται στον χρήστη μία προγραμματιστική διεπαφή (API) για την συγγραφή των εφαρμογών, όπως επίσης και υπηρεσίες οι οποίες αναλαμβάνουν τόσο την παραλληλοποίηση των υπολογισμών, όσο και την επίβλεψη της εκτέλεσης του προγράμματος, ώστε να διασφαλιστεί η αντοχή σε αστοχίες. Η φιλοσοφία στην οποία στηρίζεται το MapReduce είναι η τεχνική Διαίρει και Βασίλευε. Κάθε εφαρμογή που είναι υλοποιημένη με βάση αυτό το framework, χωρίζεται σε δυο επιμέρους φάσεις, την map και την reduce, από τις οποίες πήρε και το όνομά του. Οι φάσεις αυτές ορίζονται κατά την συγγραφή του κώδικα, και σε κάθε φάση, τόσο η είσοδος όσο και η έξοδος, είναι ζεύγη κλειδιού-τιμής (key-value pair). Μέθοδος Map: Σε αυτή την μέθοδο περιγράφεται το είδος της επεξεργασίας που θα εκτελεστεί σε κάθε ζεύγος κλειδιού-τιμής που αποτελεί την είσοδο του προγράμματος MapReduce (στην γενική περίπτωση η είσοδος είναι το σύνολο δεδομένων που θέλουμε να επεξεργαστούμε). Η έξοδος αυτής της μεθόδου είναι ένα ή περισσότερα ζεύγη κλειδιού-τιμής. Μέθοδος Reduce: Η μέθοδος αυτή λαμβάνει ως είσοδο ένα από τα κλειδιά που δημιουργήθηκαν από την Map μέθοδο, και μία λίστα με όλες τις τιμές που αντιστοιχούν σε αυτό το κλειδί. (Κάθε κλειδί αντιστοιχίζεται με ένα reducer.) Ύστερα από την επεξεργασία την οποία θα εκτελέσουμε, η έξοδος είναι, και σε αυτή την περίπτωση, ένα ή περισσότερα ζεύγη κλειδιού-τιμής. Η έξοδος αυτή μπορεί να είναι η τελική έξοδος του προγράμματος MapReduce, ή μπορεί να αποτελεί την είσοδο που θα ανατροφοδοτήσει ένα επόμενο πρόγραμμα MapReduce. 1 Εικ. 2.10: Σχηματική αναπαράσταση διαδικασίας MapReduce 1

38 23 Όπως στην περίπτωση του HDFS, και το MapReduce έχει υλοποιηθεί έχοντας υπόψιν την φιλοσοφία master-slave. Υπάρχουν δύο ειδών κόμβοι, ο JobTracker, που εκτελεί χρέη master και οι TaskTracker, που εκτελούν χρέη slave. Σε κάθε MapReduce job υπάρχει ένας JobTracker, ο οποίος καθορίζει σε ποια αρχεία θα πραγματοποιηθεί η εκτέλεση του προγράμματος και είναι υπεύθυνος για την ανάθεση στους TaskTracker του είδους της επεξεργασίας που πρέπει να εκτελέσουν. Επίσης, στο τέλος της μεθόδου map, ο JobTracker ενημερώνεται για την θέση των ενδιάμεσων αποτελεσμάτων, ώστε να μπορέσει να πραγματοποιηθεί η ομαδοποίησή τους με βάση το κλειδί (shuffe), ενώ στο τέλος της μεθόδου reduce ενημερώνεται για την θέση των τελικών αποτελεσμάτων. Συνοπτικά, τα βήματα μίας μεθόδου MapReduce παρουσιάζονται στην συνέχεια: 1. Ορίζεται από τον χρήστη ο κώδικας των μεθόδων map και reduce, καθώς και τα δεδομένα πάνω στα οποία θα πραγματοποιηθεί η επεξεργασία. 2. Τα δεδομένα εισόδου διαιρούνται σε ένα αριθμό τμημάτων (chunks) και κάθε ένα από αυτά ανατίθεται σε κάποιο mapper που εκτελεί την map μέθοδο. Τα ζεύγη κλειδιού-τιμής της ανάλυσης αποθηκεύονται στο τοπικό δίσκο του κόμβου. 3. Όταν ολοκληρωθούν όλα τα map tasks, τα ζεύγη κλειδιού-τιμής ομαδοποιούνται με βάση το κλειδί τους, και τροφοδοτούνται, υπό την μορφή ζεύγους κλειδί-λίστα τιμών, στους reducers, όπου εκτελείται η μέθοδος reduce. 4. Οι reducers επεξεργάζονται τα δεδομένα και παράγουν αποτελέσματα τα οποία είναι είτε τα τελικά, είτε ανατροφοδοτούν ένα επόμενο βήμα MapReduce. Προφανώς, το MapReduce μοντέλο έχει υλοποιηθεί με βάση την αξιοπιστία και την αντοχή σε σφάλματα. Ο JobTracker, που εποπτεύει την όλη διαδικασία, είναι υπεύθυνος να ελέγχει ότι κάθε επιμέρους τμήμα του συνόλου δεδομένων θα αναλυθεί μία μόνο φορά, ενώ αν εντοπίσει αστοχία σε κάποιο κόμβο, ορίζει έναν άλλο κόμβο να αναλάβει την εκτέλεση αυτών των δεδομένων. Αντίστοιχα, σε περίπτωση που κάποιος κόμβος καθυστερεί πολύ την ανάλυση τότε αναθέτει τα ίδια δεδομένα και σε άλλο κόμβο.

39 Το οικοσύστημα του Hadoop Όπως είδαμε στην Εικ 2.7 το Hadoop δεν είναι απλά το HDFS και το MapReduce. Αποτελείται από ένα σύνολο project τα οποία σχετίζονται με την επεξεργασία δεδομένων μεγάλης κλίμακας σε κατανεμημένο περιβάλλον. Το σύνολο αυτών των project απαρτίζει το οικοσύστημα του Hadoop. Μερικά από τα πιο ευρέως χρησιμοποιούμενα είναι: Ambari: Ένα web-based εργαλείο για την διαχείριση και έλεγχο των cluster του Hadoop, μέσω του οποίου ελέγχεται η κατάσταση των cluster και μπορούν να διαγνωστούν προβλήματα απόδοσης. HBase: Ένα σύστημα διαχείρισης κατανεμημένης βάσης δεδομένων για αποθήκευση δομημένων δεδομένων Pig: Ένα υψηλού επιπέδου εργαλείο για την συγγραφή προγραμμάτων, που χρησιμοποιείται για την ανάλυση μεγάλων συνόλων δεδομένων τα οποία αναπαριστά με ροές δεδομένων. Χρησιμοποιεί ως γλώσσα προγραμματισμού την Pig Latin. Zookeeper: Ένα εργαλείο για την διαχείριση και συντονισμό μεγάλων cluster. Sqoop: Ένα εργαλείο για την μεταφορά δεδομένων από σχεσιακές βάσεις δεδομένων στο Hadoop. Oozie: Ένα εργαλείο χρονοπρογραμματισμού για την διαχείριση εκτέλεσης εργασιών στο Hadoop. Hive: Ένα σύνολο εργαλείων για την εκτέλεση ερωτημάτων και διαχείρισης (σε μορφή που μοιάζει με SQL) σε μεγάλα σύνολα δεδομένων σε κατανεμημένο περιβάλλον Apache Spark Αν και η χρήση του MapReduce έδωσε ισχυρή ώθηση στην επεξεργασία δεδομένων μεγάλης κλίμακας, δεν μπορεί να καλύψει κάθε περίπτωση ανάλυσης. Χαρακτηριστικό παράδειγμα αποτελούν τα Streaming δεδομένα, καθώς η ανάλυση μέσω MapReduce είναι κατάλληλη όταν τα δεδομένα βρίσκονται αποθηκευμένα στο δίσκο. Από την άλλη, πολλές εφαρμογές σε δεδομένα μεγάλης κλίμακας δεν είναι εξειδικευμένες. Η ίδια η φύση των δεδομένων μεγάλης κλίμακας είναι ποικιλόμορφη και η ανάλυση τους απαιτεί την χρησιμοποίηση διαφόρων εργαλείων και τεχνικών, με αποτέλεσμα τα εξειδικευμένα εργαλεία να προσθέτουν επιπλέον δυσκολία στην διαδικασία εξόρυξης γνώσης. Αυτό το κενό ήρθε να καλύψει το Apache Spark. To Apache Spark είναι μία ισχυρή, ανοιχτού κώδικα μηχανή επεξεργασίας δεδομένων, που έχει σχεδιαστεί για ανάλυση δεδομένων σε cluster υπολογιστών. Αναπτύχθηκε στο AMPLab του UC Berkeley το 2009, υλοποιήθηκε στη γλώσσα προγραμματισμού Scala και είναι κατασκευασμένο με σκοπό την επεξεργασία μεγάλου όγκου δεδομένων, την υποστήριξη εφαρμογών γενικού σκοπού και το υψηλό βαθμό αποδοτικότητας. Παρέχει υπολογιστικές διεπαφές (APIs) που υποστηρίζουν γλώσσες προγραμματισμού Java, Scala, Python και R, όπως επίσης παρέχει και υποστήριξη για ανάλυση γραφημάτων.

40 25 Εικ. 2.11: Το οικοσύστημα του Apache Spark Το οικοσύστημα του Apache Spark Το Apache Spark αποτελείται από ένα σύνολο εργαλείων, τα οποία μπορούν και συνεργάζονται μεταξύ τους, και έτσι παρέχεται η δυνατότητα να αναπτυχθούν εφαρμογές που να συνδυάζουν ένα ή περισσότερα από αυτά, ώστε να καλύπτουν ένα ευρύ φάσμα αναλύσεων. Συνοπτικά τα επιμέρους τμήματα του Apache Spark περιγράφονται στην συνέχεια: Spark Core: Αποτελεί τον πυρήνα του Apache Spark και περιλαμβάνει τις βασικές του λειτουργίες, όπως εργαλεία για τον χρονοπρογραμματισμό, διαμοιρασμό και επίβλεψη των εργασιών, διαχείρισης μνήμης, αλληλεπίδραση με άλλα συστήματα και διαχείριση αστοχιών. Αποτελεί την βάση πάνω στην οποία στηρίζονται τα επιπλέον υποσυστήματα που θα αναλύσουμε στην συνέχεια. Spark SQL: Προσφέρει υποστήριξη ερωτημάτων σε δομημένα δεδομένα, με χρήση είτε SQL είτε χρησιμοποιώντας μία παραλλαγή της που προσφέρει το Apache Hive, την Hive Query Language (HQL). Spark Streaming: Παρέχει δυνατότητα αποθήκευσης και επεξεργασίας ροών (stream) δεδομένων σε πραγματικό χρόνο. MLlib[33]: Βιβλιοθήκη που παρέχει συλλογή αλγορίθμων μηχανικής μάθησης (machine learning), υλοποιημένους με βάση την λειτουργία σε κατανεμημένο περιβάλλον. GraphX: Βιβλιοθήκη που προστέθηκε σε μεταγενέστερη έκδοση του Spark v0.9 (2014), σχεδιασμένη για υποστήριξη σε ανάλυση γραφημάτων Resilient Distributed Dataset (RDD) Το Apache Spark εισήγαγε και μία καινούρια έννοια, το Resilient Distributed Dataset ή RDD[32] για συντομία. Το RDD είναι μία αμετάβλητη (immutable) κατανεμημένη συλλογή αντικειμένων, μία δομή που καλύπτει με ένα επίπεδο αφαιρετικότητας (abstraction) τα δεδομένα που θέλουμε να επεξεργαστούμε, μέσω της οποίας παρέχεται ανοχή σε σφάλματα και δυνατότητα παράλληλης επεξεργασίας. Τα RDD μπορούν να οριστούν χρησιμοποιώντας οποιοδήποτε τύπο δεδομένων, υποστηρίζουν τις γλώσσες προγραμματισμού Python, Scala και Java, αλλά επιπλέον επιτρέπουν στον χρήστη να ορίσει δικές του κλάσεις ανάλογα με την περίπτωση. 1

41 Κάθε εργασία που εκτελείται στο Apache Spark έχει ως αφετηρία ένα RDD. Τα RDD μπορούν να δημιουργηθούν, είτε με παραλληλισμό μίας υπάρχουσας πηγής δεδομένων, είτε από ένα άλλο RDD. Αυτό το οποίο επιτυγχάνεται με την δημιουργία του RDD είναι να υπάρχει μία απεικόνιση των πραγματικών δεδομένων και διαμερισμός αυτής σε επιμέρους τμήματα, τα οποία μπορούν να επεξεργαστούν παράλληλα στους κόμβους του cluster. Όπως αναφέρθηκε προηγουμένως, τα RDD χαρακτηρίζονται ως αμετάβλητα, δηλαδή από την στιγμή της δημιουργίας ενός RDD, αυτό μπορεί να μετασχηματιστεί σε νέο RDD. Οι μόνες ενέργειες που επιτρέπονται στα RDD είναι οι μετασχηματισμοί (transformations) και οι υπολογισμοί (actions). Οι μετασχηματισμοί ουσιαστικά είναι ένα σύνολο ενεργειών που πραγματοποιούνται πάνω σε ένα RDD, και έχουν ως αποτέλεσμα τη δημιουργία ενός νέου RDD. Ένα χαρακτηριστικό που έχουν οι μετασχηματισμοί στα RDDs είναι ο οκνηρός υπολογισμός (lazy evaluation). Η έννοια αυτού του όρου είναι ότι οποιοσδήποτε μετασχηματισμός δεν θα υπολογιστεί εκείνη την στιγμή που θα οριστεί από τον χρήστη, αλλά αντίθετα οι αλλαγές οι οποίες ζητήθηκαν από τον χρήστη αποθηκεύονται σε ένα κατευθυνόμενο ακυκλικό γράφο (Directed Acyclic Graph DAG) και υπολογίζονται όταν ζητηθεί η εκτέλεση κάποιου υπολογισμού (action). Με αυτό τον τρόπο το Apache Spark λειτουργεί αποτελεσματικά, καθώς επιτρέπει την αποδοτικότερη παραγωγή αποτελέσματος από απλή σειριακή εκτέλεση. Από την άλλη, οι υπολογισμοί (actions) είναι όλες οι ενέργειες που εκτελούνται σε ένα RDD και τελικά παράγουν ένα αποτέλεσμα. Προκειμένου να πραγματοποιηθεί ο υπολογισμός του αποτελέσματος, ενεργοποιούνται οι μετασχηματισμοί που είχαν ζητηθεί από τον χρήστη και είχαν καταγραφεί από το Apache Spark και το ζητούμενο αποτέλεσμα επιστρέφεται. Η χρήση του DAG έχει επίσης μία άλλη χρησιμότητα. Σε περίπτωση που κάποιος κόμβος του cluster αστοχήσει, τότε υπάρχει η συνταγή για τον επαναϋπολογισμό του από κάποιο άλλο κόμβο. Αφού για κάθε RDD αποθηκεύεται η σειρά των μετασχηματισμών που ζητήθηκαν να πραγματοποιηθούν σε αυτό, τότε αν κάποιος κόμβος αστοχήσει είναι δυνατόν το partition του RDD που ήταν αποθηκευμένο σε εκείνο τον κόμβο, να ανατεθεί σε κάποιο άλλο και εν συνεχεία να πραγματοποιηθεί εκ νέου ο υπολογισμός. 26

42 Αποθήκευση δεδομένων στη μνήμη Παραδοσιακά μοντέλα ανάλυσης δεδομένων, όπως το MapReduce, μπορούν να διατηρήσουν στην μνήμη δεδομένα, στα πλαίσια όμως αυτών που επεξεργάζονται εκείνη την χρονική στιγμή. Σε περίπτωση που κάποια από αυτά τα δεδομένα τα χρειαστούμε για κάποιο επόμενο υπολογισμό, τότε θα πρέπει να τα ανακτήσουμε εκ νέου από τον δίσκο, χαρακτηριστικό που επιφέρει επιπλέον καθυστέρηση. Μία σημαντική ιδιότητα που παρέχει το Apache Spark είναι η ικανότητα της αποθήκευσης των ενδιάμεσων αποτελεσμάτων, κατά την διάρκεια εκτέλεσης ενός job στη κύρια μνήμη των κόμβων του cluster, μία διαδικασία που ονομάζεται caching. Ένα RDD μπορεί να διατηρηθεί στην μνήμη με τις μεθόδους persist() ή cache(). Η διαφορά τους είναι ότι η δεύτερη χρησιμοποιεί την αρχική (default) τιμή όσον αφορά την μνήμη αποθήκευσης, που είναι η κύρια μνήμη, ενώ με την persist() μπορεί ο χρήστης να ορίσει το μέσο αποθήκευσης. Τα διάφορα επίπεδα αποθήκευσης παρουσιάζονται στην Εικ Επειδή η μνήμη έχει πεπερασμένο μέγεθος, δεν σημαίνει ότι όλα τα δεδομένα που επιθυμούμε να διατηρήσουμε σε αυτήν θα μπορούν να αποθηκευτούν. Το Apache Spark χρησιμοποιεί την πολιτική Least Recently Used (LRU), προκειμένου να επιλέξει ποια partitions θα μεταφέρει από την κύρια μνήμη στο σκληρό δίσκο. Επιπλέον, παρέχεται και η δυνατότητα στον χρήστη να αφαιρέσει κάποιο RDD από την μνήμη, χωρίς να περιμένει από το Apache Spark να το αφαιρέσει αυτόματα, χρησιμοποιώντας την unpersist() μέθοδο. Εικ. 2.12: Επίπεδα αποθήκευσης δεδομένων στη μνήμη 1 1

43 28 3. Τεχνικές και εργαλεία που χρησιμοποιήσαμε Στο κεφάλαιο που ακολουθεί θα αναλύσουμε τις τεχνικές καθώς και τα εργαλεία τα οποία χρησιμοποιήσαμε για την εκπόνηση της παρούσας διπλωματικής εργασίας. Η εργασία μπορεί να χωριστεί σε δύο μέρη. Στο πρώτο πραγματοποιήθηκε η εκτέλεση μίας σειράς αναλύσεων κατηγοριοποίησης (classification), χρησιμοποιώντας και συγκρίνοντας διάφορες μεθόδους σε δύο σύνολα δεδομένων μεγάλου όγκου. Οι αναλύσεις κατηγοριοποίησης μπορούν να χωριστούν σε δύο κατηγορίες, σε κατηγοριοποίηση ενός βήματος (1-step classification) όπου πρακτικά εφαρμόσαμε ένα σύνολο από μεθόδους κατηγοριοποίησης σε υποσύνολα του συνόλου δεδομένων για να μελετήσουμε την επεκτασιμότητα των αλγορίθμων σε κατανεμημένο περιβάλλον και σε κατηγοριοποίηση δύο βημάτων (2-step classification), όπου στο πρώτο βήμα διαλέξαμε ένα σύνολο από τις κλάσεις εισόδου και χρησιμοποιώντας μόνο αυτές προχωρήσαμε στο δεύτερο βήμα όπου πραγματοποιήθηκε μία σειρά αναλύσεων κατηγοριοποίησης, όπως προηγουμένως. Στο δεύτερο μέρος της εργασίας πραγματοποιήθηκε ανάλυση τύπου collaborative filtering. Η εκτέλεση των αναλύσεων πραγματοποιήθηκε κάνοντας χρήση του προγραμματιστικού εργαλείου Apache Spark, χρησιμοποιώντας την community edition που παρέχεται από την Databricks Κατηγοριοποίηση Η κατηγοριοποίηση είναι μία κατηγορία μηχανικής μάθησης (machine learning) και ανήκει στην κατηγορία επιβλεπόμενης μάθησης (supervised learning). Η μηχανική μάθηση είναι μία κατηγορία της επιστήμης των υπολογιστών, με τον όρο μηχανική μάθηση να μην είναι νέος, καθώς το 1959, ο Arthur Samuel[36] δήλωσε ότι δίνει την δυνατότητα στους υπολογιστές να σκέφτονται χωρίς να έχουν ρητά προγραμματιστεί. Ο Tom M. Mitchell[35] έδωσε έναν πιο επίσημο ορισμό αναφορικά με τους αλγορίθμους που εξετάζονται στον τομέα της μηχανικής μάθησης: Ένα πρόγραμμα υπολογιστή λέγεται ότι μαθαίνει από εμπειρία E ως προς μια κλάση εργασιών T και ένα μέτρο επίδοσης P, αν η επίδοσή του σε εργασίες της κλάσης Τ, όπως αποτιμάται από το μέτρο Ρ, βελτιώνεται με την εμπειρία Ε. Γενικά, θα μπορούσαμε να πούμε ότι ως μηχανική μάθηση θεωρείται η περιοχή της τεχνητής νοημοσύνης που περιλαμβάνει την εκπαίδευση ενός υπολογιστικού συστήματος, με βάση ένα γνωστό σύνολο δεδομένων (σύνολο εκπαίδευσης), ώστε να είναι σε θέση να μπορεί να πάρει αποφάσεις και για τιμές που είναι εκτός αυτού του συνόλου εκπαίδευσης. Έχουν αναπτυχθεί διάφορες τεχνικές μηχανικής μάθησης, οι οποίες όμως εμπίπτουν, γενικά, σε τέσσερις κατηγορίες : Επιβλεπόμενη μάθηση (Supervised Learning): Το σύστημα προσπαθεί να κατασκευάσει ένα κανόνα ώστε να αντιστοιχεί τις γνωστές κλάσεις εισόδου (σύνολο εκπαίδευσης) σε ένα σύνολο, επίσης γνωστών εκ των προτέρων, κλάσεων εξόδου. Στόχος αυτής της 1

44 29 διαδικασίας είναι η γενίκευση του κανόνα και σε τιμές εισόδου για τις οποίες δεν έχουμε εκ των προτέρων γνωστή τιμή κλάσης εξόδου. Μη επιβλεπόμενη μάθηση (Unsupervised Learning): Το σύστημα, γνωρίζοντας μόνο την είσοδο, καλείται να ανακαλύψει (πιθανές) κρυμμένες δομές ανάμεσά στα δεδομένα της εισόδου, ώστε να δημιουργήσει ομάδες δεδομένων που παρουσιάζουν ομοιότητες. Μάθηση με σχετική επίβλεψη (Semi-Supervised Learning): Αποτελεί συνδυασμό των δύο προηγούμενων περιπτώσεων, καθώς η είσοδος του συστήματος εκπαίδευσης αποτελείται από ένα μικρό σύνολο ταξινομημένων παρατηρήσεων και ένα μεγαλύτερο μη ταξινομημένων. Ενισχυτική μάθηση (Reinforcement Learning): Σε αυτή την περίπτωση το σύστημα βελτιώνεται συνεχώς μέσω της αλληλεπίδρασής του με το περιβάλλον, αλλά και με τα αποτελέσματα αυτής της αλληλεπίδρασης. Εικ. 3.1: Κατηγορίες μηχανικής μάθησης 1 Η κατηγοριοποίηση (classification) είναι μία κατηγορία επιβλεπόμενης μηχανικής μάθησης. Αφορά τη δημιουργία αλγορίθμων, βασιζόμενων σε κάποια γνωστά δεδομένα (είσοδο), μέσω των οποίων θα είναι δυνατόν να πραγματοποιηθεί πρόβλεψη για μία μελλοντική τιμή εισόδου. Με άλλα λόγια, ο σκοπός είναι η δημιουργία ενός συνεπούς μοντέλου (classifier), που θα βασίζεται σε γνωστές τιμές (κλάση εισόδου) και αντίστοιχης τιμής της κλάσης εξόδου, και μέσω του οποίου θα μπορούμε να προβλέψουμε την (άγνωστη) κλάση εξόδου για δεδομένες τιμές κλάσης εισόδου [34]. Όπως φαίνεται και στην Εικ. 3.1 υπάρχουν εν γένει δύο κατηγορίες στην επιβλεπόμενη μηχανική μάθηση, η κατηγοριοποίηση (classification) και η παλινδρόμηση (regression). Οι δύο αυτές κατηγορίες διαφοροποιούνται ως προς τον τύπο της κλάσης εξόδου. Στην περίπτωση της κατηγοριοποίησης η κλάση εξόδου λαμβάνει διακριτές τιμές, ενώ στην περίπτωση της παλινδρόμησης συνεχείς. Για παράδειγμα, το να μπορούμε, με βάση κάποια δεδομένα, να προβλέψουμε αν θα επιτύχει στην εξέταση του μαθήματος ένας φοιτητής, ανήκει στον τομέα 1

45 30 της κατηγοριοποίησης, ενώ αν θέλουμε να προβλέψουμε και το βαθμό του, ανήκει στον τομέα της παλινδρόμησης[37]. Στην παρούσα διπλωματική ασχοληθήκαμε με το πρόβλημα της κατηγοριοποίησης. Για την επίλυση του προβλήματος χρησιμοποιήσαμε διάφορες τεχνικές, οι οποίες αναλύονται παρακάτω Δένδρα απόφασης (Decision Trees) Τα δένδρα απόφασης είναι μία αρκετά δημοφιλής μέθοδος ταξινόμησης. Όπως είναι προφανές από το όνομά τους, αποτελούνται από μία ιεραρχική δομή δένδρου, μέσω της οποίας μπορεί να πραγματοποιηθεί ταξινόμηση της κλάσης εξόδου, μέσω των χαρακτηριστικών των κλάσεων εισόδου. Η βασική ιδέα που κρύβεται πίσω από την κατασκευή ενός δένδρου απόφασης, είναι η συνεχής διάσπαση των δεδομένων (κλάσεων) εισόδου σε υποσύνολα, έως ότου σε κάποιο υποσύνολο να υπάρχουν δεδομένα μόνο μίας κλάσης εξόδου. Το κριτήριο που χρησιμοποιείται για την διάσπαση των κόμβων είναι η τιμή της εκάστοτε μεταβλητής. Στο ανώτερο επίπεδο είναι ο κόμβος-ρίζα του δένδρου, ο οποίος συνδέεται με άλλους κόμβους σε κατώτερα επίπεδα. Σε κάθε κόμβο πραγματοποιείται έλεγχος της τιμής της εκάστοτε τιμής του χαρακτηριστικού, και ανάλογα με την τιμή της συνδέεται με κόμβο επόμενου επιπέδου. Στο τελευταίο επίπεδο υπάρχουν τα φύλλα, τα οποία έχουν μόνο εισερχόμενες ακμές, και αποτελούν την κλάση εξόδου, που αποτελεί και την τελική απόφαση του κατηγοριοποιητή. Έχοντας δημιουργήσει το δένδρο απόφασης από το σύνολο δεδομένων, είναι σχετικά απλή η διαδικασία με την οποία μπορούμε να πραγματοποιήσουμε κατηγοριοποίηση και σε κάποια άγνωστη τιμή. Ξεκινώντας από την ρίζα, εξετάζουμε τις τιμές των μεταβλητών της νέας τιμής, ακολουθώντας την δομή του δένδρου, έως ότου καταλήξουμε σε ένα φύλλο, δηλαδή στην τιμή της κλάσης εξόδου που υπολόγισε ο κατηγοριοποιητής για την νέα εγγραφή. Εικ. 3.2: Παράδειγμα δένδρου απόφασης 1 1

46 31 Στην Εικ.3.2 παρουσιάζεται μία τυπική (και απλή) δομή ενός δένδρου απόφασης, με σκοπό να αποφασίσουμε, ανάλογα με τις καιρικές συνθήκες, αν μπορούμε να παίξουμε τένις ή όχι. Από την εικόνα καθίσταται προφανές ότι οι κατηγοριοποιητές αυτού του τύπου είναι απλοί στην χρήση τους, ενώ παράλληλα είναι εύκολη η εξαγωγή των κανόνων Τυχαία δάση (Random Forests) Τα τυχαία δάση (Random Forests)[38] ανήκουν στην κατηγορία των συνδυαστικών μεθόδων ταξινόμησης, στην οποία χρησιμοποιούνται για ταξινομητές δένδρα απόφασης. Η μέθοδος αυτή σχετίζεται με τα δένδρα απόφασης, καθώς ουσιαστικά είναι μία συλλογή από δένδρα απόφασης, τα οποία από κοινού ψηφίζουν για τον προσδιορισμό της κλάσης εξόδου. Για την εκπαίδευση κάθε δένδρου χρησιμοποιείται η αρχή του bagging[39]. Για κάθε δένδρο επιλέγουμε ένα υποσύνολο τυχαίων περιπτώσεων με εναπόθεση (sampling with replacement), με βάση το οποίο εκπαιδεύουμε το δένδρο απόφασης. Στη συνέχεια, αυτό που διαφοροποιεί την διαδικασία αυτή από τα τυπικά δένδρα απόφασης, είναι ότι σε κάθε ενδιάμεσο διαχωρισμό, επιλέγεται ένα υποσύνολο των χαρακτηριστικών των δειγμάτων εκπαίδευσης. Επιλέγονται τυχαία m χαρακτηριστικά, με την τιμή της μεταβλητής m να παραμένει σταθερή καθ όλη την εκτέλεση του αλγορίθμου, και χρησιμοποιώντας αυτά τα χαρακτηριστικά πραγματοποιείται ο διαχωρισμός, με βάση κάποια κατάλληλη μετρική όπως Gini index, information gain, misclassification error. Η διαδικασία αυτή επαναλαμβάνεται μέχρι το δέντρο να αναπτυχτεί πλήρως, χωρίς να πραγματοποιείται κλάδεμα. Προκειμένου να κατηγοριοποιήσουμε μία νέα, άγνωστη, εγγραφή τότε διασχίζουμε όλα τα δένδρα του δάσους και στην συνέχεια συνδυάζουμε τα επιμέρους αποτελέσματα με βάση ένα πλειοψηφικό σύστημα ψηφοφορίας (majority voting scheme), όπου ως τελική τιμή θεωρείται αυτή που εμφανίζει την μεγαλύτερη συχνότητα. Εικ. 3.3: Παράδειγμα τυχαίου δάσους 1 1

47 32 Έχει αποδειχθεί[40] ότι το σφάλμα της μεθόδου τυχαίων δασών, όσον αφορά την ταξινόμηση και την πρόβλεψη νέων τιμών (classification and prediction error rate), εξαρτάται κυρίως από δύο παράγοντες, τη συσχέτιση (correlation) μεταξύ δύο δένδρων και τη δύναμη (strength) του κάθε δένδρου. Η συσχέτιση είναι μία μετρική του πόσο ίδια είναι δύο δένδρα μεταξύ τους, και όσο πιο υψηλή είναι η συσχέτιση, τόσο μεγαλύτερο είναι το σφάλμα του δάσους. Επειδή όμως τα δένδρα εκπαιδεύονται με τη μεθοδολογία που περιγράψαμε (bagging), προκύπτει ότι η περίπτωση δύο δένδρα να εκπαιδευτούν με ίδιο σύνολο δεδομένων είναι σπάνια. Έτσι η συσχέτιση που εμφανίζεται είναι χαμηλή και άρα μικρό σφάλμα. Η δύναμη του δένδρου σχετίζεται με την ποιότητα του ταξινομητή στο εκάστοτε δένδρο. Ένα δένδρο με μικρό σφάλμα, είναι καλός ταξινομητής. Έτσι όσο καλύτερος ταξινομητής είναι το κάθε δένδρου του δάσους, τόσο πιο μικρό είναι σφάλμα του δάσους. Τα πλεονεκτήματα των τυχαίων δασών είναι ότι λόγω της ανάπτυξης ενός μεγάλου αριθμού δένδρων, το σφάλμα γενίκευσης είναι περιορισμένο, και έτσι δεν παρουσιάζεται το πρόβλημα της υπερεκπαίδευσης (over fitting). Επίσης, χάρη στην τυχαία επιλογή των χαρακτηριστικών σε κάθε δένδρο, τα τυχαία δάση είναι κατάλληλα για εκπαίδευση συνόλων δεδομένων μεγάλων διαστάσεων. Στα αρνητικά περιλαμβάνονται το υψηλό υπολογιστικό κόστος καθώς και το ότι, σε αντίθεση με τα δένδρα απόφασης, δεν είναι εύκολη η εξαγωγή κανόνων ταξινόμησης, εξαιτίας του μεγάλου αριθμού δένδρων στο δάσος Λογιστική παλινδρόμηση (Logistic regression) Η λογιστική παλινδρόμηση[41][42] είναι μία ειδική περίπτωση των γενικευμένων γραμμικών μοντέλων. Αποτελεί μία τεχνική που αφορά την πρόβλεψη, μέσω της θεωρίας των πιθανοτήτων, της τιμής μίας κατηγορηματικής εξαρτημένης μεταβλητής, μέσω κάποιων ανεξάρτητων μεταβλητών. Διακρίνονται τρεις τύποι λογιστικής παλινδρόμησης, αναλόγως του τύπου της εξαρτημένης μεταβλητής: 1. Δίτιμη ή δυαδική (binomial): Η εξαρτημένη μεταβλητή μπορεί να λάβει δύο τιμές όπως ναι/όχι, επιτυχία/αποτυχία. 2. Τακτική (ordinal): Η εξαρτημένη μεταβλητή μπορεί να λάβει τρεις ή περισσότερες τιμές, μεταξύ των οποίων υπάρχει μία διαβάθμιση, πχ καθόλου, λίγο, πολύ. 3. Πολυωνυμική (multinomial): Και σε αυτή την περίπτωση η εξαρτημένη μεταβλητή μπορεί να λάβει τρεις ή και περισσότερες τιμές, στις οποίες όμως δεν υπάρχει διαβάθμιση. Αποτέλεσμα της λογιστικής παλινδρόμησης είναι η ανάπτυξη μίας μη-γραμμικής συνάρτησης μέσω της οποίας υπολογίζεται η πιθανότητα η εξαρτημένη μεταβλητή να ανήκει σε κάποια από τις κατηγορίες. Η συνάρτηση αυτή έχει την εξής μορφή:

48 33 Όπου το z είναι εξάρτηση όλων των ανεξάρτητων μεταβλητών που συμμετέχουν στο μοντέλο Οι συντελεστές παλινδρόμησης β i εκφράζουν το βαθμό συνεισφοράς της μεταβλητής στην οποία αντιστοιχούν, και μπορούν να υπολογιστούν προσπαθώντας να μεγιστοποιήσουμε την εκτίμηση της μέγιστης πιθανοφάνειας (Maximun Likelihood Estimate MLE) Όπου θ είναι μία παράμετρος της μεταβλητής που μπορεί να μεταβάλλεται ελεύθερα. Η προβλεπόμενη τιμή της εκάστοτε παρατήρησης δίνεται από την εξής σχέση: Χαρακτηριστικό της μεθόδου λογιστικής παλινδρόμησης είναι το γεγονός ότι η αξιοπιστία των αποτελεσμάτων είναι εξάρτηση του μεγέθους του συνόλου δεδομένων. Επίσης, οι ανεξάρτητες μεταβλητές δεν θα πρέπει να παρουσιάζουν συσχέτιση μεταξύ τους, αλλά για να λειτουργήσει σωστά το μοντέλο, θα πρέπει να έχουν συσχέτιση με την ανεξάρτητη μεταβλητή. Αξίζει να σημειωθεί ότι μέσω της μεθόδου αυτής, είναι δυνατόν να εκτιμηθεί η σημαντικότητα της εκάστοτε ανεξάρτητης μεταβλητής στο τελικό αποτέλεσμα. Πολλοί ερευνητές χρησιμοποιούν αυτή την μέθοδο προκειμένου να επιλέξουν τα πιο σημαντικά χαρακτηριστικά, με βάση τα οποία θα πραγματοποιήσουν περαιτέρω ελέγχους.

49 Πολυεπίπεδο Perceptron (Multilayer Perceptron MLP) Το Multilayer Perceptron (MLP)[43][45] είναι ένα τεχνητό νευρωνικό δίκτυο (artificial neural network) πολλαπλών επιπέδων εμπρόσθιας τροφοδότησης. Τα τεχνητά νευρωνικά δίκτυα είναι εμπνευσμένα από τον ανθρώπινο εγκέφαλο και έχουν την ικανότητα να ανταποκρίνονται δυναμικά σε εξωτερικά ερεθίσματα (είσοδοι). Κάθε νευρώνας του δικτύου αποτελείται από μία έξοδο και ένα σύνολο εισόδων, κάθε μία από τις οποίες ζυγίζεται και με ένα βάρος. Η τιμή της εκάστοτε εισόδου πολλαπλασιάζεται με το αντίστοιχο βάρος και αν το αποτέλεσμα ξεπερνά μία προκαθορισμένη τιμή (συνάρτηση εξόδου), τότε ο νευρώνας αυτός δίνει ένα αποτέλεσμα στην έξοδο. Ένα από τα πιο απλά τεχνητά νευρωνικά δίκτυα είναι ο στοιχειώδης Perceptron, το οποίο αποτελείται από ένα και μόνο νευρώνα. Η έξοδος σε αυτό το δίκτυο είναι η εφαρμογή της συνάρτησης ενεργοποίησης (activation function) στην συνολική τιμή της εισόδου. Υπάρχουν διάφορες κατηγορίες συναρτήσεων ενεργοποίησης όπως βηματική, συνάρτηση προσήμου, σιγμοειδής, γραμμική. Εικ. 3.4: Σχηματική απεικόνιση πραγματικού και τεχνητού νευρώνα[44]

50 35 Όπως αναφέραμε και στον ορισμό, το MLP είναι ένα τεχνητό νευρωνικό δίκτυο πολλαπλών επιπέδων. Οι διάφοροι νευρώνες οργανώνονται σε επίπεδα (layers), και πιο τυπικά μπορούμε να ορίσουμε τα επίπεδο εισόδου, το ένα ή περισσότερα ενδιάμεσα επίπεδα που ονομάζονται κρυφά επίπεδα (hidden layers) και τέλος το επίπεδο εξόδου. Οι νευρώνες στο επίπεδο εισόδου είναι παθητικοί, υπάρχει ένας νευρώνας για κάθε ανεξάρτητη μεταβλητή, απλά μεταφέρουν την είσοδο στους νευρώνες του πρώτου (κρυφού) επιπέδου. Ένα άλλο χαρακτηριστικό των MLP είναι ότι ανήκουν στην κατηγορία της εμπρόσθιας τροφοδότησης (feedforward). Ο χαρακτηρισμός αυτός αφορά τον τρόπο με τον οποίο είναι συνδεδεμένοι οι νευρώνες του εκάστοτε επιπέδου στο τεχνητό νευρωνικό δίκτυο. Ως πρόσθιας τροφοδότησης ορίζονται τα δίκτυα στα οποία υπάρχουν συνδέσεις μόνο σε νευρώνες του επόμενου επιπέδου, έως σταδιακά να φτάσουμε το επίπεδο εξόδου. Σε περίπτωση που υπάρχει σύνδεση νευρώνων ενός επιπέδου με νευρώνες προηγούμενου επιπέδου, έχουμε την περίπτωση των δικτύων με ανατροφοδότηση (feedback ή recurrent). Τα δίκτυα που ανήκουν σε αυτή την κατηγορία έχουν το χαρακτηριστικό ότι η έξοδος ενός νευρώνα μπορεί να επηρεάσει την είσοδο του συγκεκριμένου νευρώνα. Εικ. 3.5: Απεικόνιση τυπικού MLP με ένα κρυφό επίπεδο [44]

51 Η διαδικασία της επιβλεπόμενης μάθησης στα τεχνητά νευρωνικά δίκτυα πραγματοποιείται με την κατάλληλη διόρθωση της τιμής του βάρους στις συνδέσεις μεταξύ των νευρώνων. Για την διαδικασία αυτή ο πιο διαδεδομένος αλγόριθμος που χρησιμοποιείται, είναι ο αλγόριθμος αντίστροφης μετάδοσης σφάλματος (Back propagation) [46][47]. Προκειμένου να πραγματοποιηθεί η εκπαίδευση του MLP, εφαρμόζεται μία επαναληπτική διαδικασία η οποία αποτελείται από δύο περάσματα υπολογισμών. Στο πρώτο πέρασμα, το πέρασμα προς τα εμπρός, υπολογίζουμε την τελική έξοδο του συστήματος με βάση το σύνολο δεδομένων, ενώ στο δεύτερο βήμα υπολογίζουμε το σφάλμα της πρόβλεψης του δικτύου και με βάση το σφάλμα διορθώνουμε, κινούμενοι αντίθετα από τις συνδέσεις του δικτύου, τα βάρη σύνδεσης των νευρώνων. Χαρακτηριστικό αυτής της διαδικασίας είναι ότι κατά το πρώτο πέρασμα, τα βάρη σύνδεσης των νευρώνων παραμένουν σταθερά. Προκειμένου να ξεκινήσει η διαδικασία εκπαίδευσης, αρχικά εκχωρούνται τυχαίες τιμές στα βάρη. Η διαδικασία αυτή επαναλαμβάνεται έως ότου ικανοποιηθεί κάποια συνθήκη εξόδου. Η συνθήκη εξόδου μπορεί να είναι, είτε ότι η τιμή των εσφαλμένων προβλέψεων είναι κάτω από ένα όριο, είτε οι μεταβολές των βαρών σύνδεσης των νευρώνων είναι κάτω από ένα όριο, είτε έχει συμπληρωθεί ο προκαθορισμένος αριθμός των εποχών. Ως εποχή ορίζεται η διαδικασία για ολόκληρο το σύνολο εκπαίδευσης. Τέλος, αξίζει να τονίσουμε ότι υπάρχουν δύο μεθοδολογίες αναφορικά με την διόρθωση των βαρών σύνδεσης των νευρώνων. Η διαδικασία αυτή μπορεί να πραγματοποιείται, είτε για κάθε εγγραφή του συνόλου εκπαίδευσης, είτε μαζικά, όταν ολοκληρωθεί η εκάστοτε εποχή. Υπάρχουν διάφορες μέθοδοι βελτιστοποίησης με τις οποίες πραγματοποιείται αυτή η διόρθωση των βαρών σύνδεσης, όπως η μέθοδος κατιούσας κλίσης (gradient descent), η μέθοδος Newton, η μέθοδος μέγιστης κλίσης (Steepest Descent) και ο κανόνας Polak-Ribiere. 36

52 Gradient Boosted Trees Η μέθοδος αυτή στηρίζεται στην ιδέα του boosting [48], η οποία είναι μία συνδυαστική μέθοδος, με την οποία δημιουργείται ένα σύνολο από απλούς ταξινομητές, με την λεπτομέρεια ότι κάθε νέος ταξινομητής που προστίθεται στο σύνολο δίνει περισσότερη έμφαση στο τμήμα εκείνο του συνόλου δεδομένων στο οποίο οι προηγούμενοι ταξινομητές δεν πραγματοποίησαν σωστή πρόβλεψη του αποτελέσματος. Αυτές οι περιοχές του συνόλου δεδομένων αποτελούν και τα δύσκολα τμήματά του. Πρακτικά, αυτή η μεθοδολογία στηρίζεται στην αρχή ότι μπορούμε να δημιουργήσουμε έναν καλό ταξινομητή, αν στηριχτούμε σε ένα σύνολο από μέτριους (weak), κάθε ένας από τους οποίους αντιστοιχίζεται με μία τιμή βάρους. Αρχικά παρουσιάστηκαν τα Gradient Boosted Regression Trees [49] τα οποία, όπως και τα τυχαία δάση, είναι μία τεχνική μηχανικής μάθησης η οποία στηρίζεται στον συνδυασμό πολλών δένδρων. Η διαφορά της με τα τυχαία δάση είναι ότι αντί να χρησιμοποιεί ένα σύνολο πλήρως ανεπτυγμένων δένδρων, χρησιμοποιεί ένα σύνολο από δένδρα μικρού ύψους. Σε κάθε επανάληψη του αλγορίθμου το επιπλέον δένδρο που προστίθεται εστιάζει στις εγγραφές που είναι υπεύθυνες για το τρέχον σφάλμα παλινδρόμησης. Στην συνέχεια, μέσω χρήσης δένδρων παλινδρόμησης, τα οποία ελαχιστοποιούν το τετραγωνικό σφάλμα [50], μπόρεσε να επιλυθεί και το πρόβλημα της ταξινόμησης One-Vs-Rest Ο κατηγοριοποιητής αυτής της κατηγορίας χρησιμοποιείται στην περίπτωση την οποία θέλουμε να εκτελέσουμε ανάλυση κατηγοριοποίησης πολλαπλών κλάσεων (multiclass classification). Ένας από τους πιο απλούς κατηγοριοποιητές αυτής της περίπτωσης είναι ο One-Vs-Rest [66], αν και υπάρχουν και άλλες ονομασίες που έχουν δοθεί όπως One-Vs-All ή One-Against-All. Η βασική ιδέα που κρύβεται πίσω από αυτόν τον κατηγοριοποιητή, είναι η χρησιμοποίηση ενός δυαδικού κατηγοριοποιητή, ο οποίος μπορεί να επιλύσει αποδοτικά το πρόβλημα δυαδικής ταξινόμησης, και στην συνέχεια με βάση αυτόν να εκπαιδεύσουμε τόσους δυαδικούς κατηγοριοποιητές όσες και οι κλάσεις εξόδου του προβλήματος. Ο κάθε ένας από αυτούς τους επιμέρους κατηγοριοποιητές χρησιμοποιείται για να διαχωρίσει περιπτώσεις που ανήκουν σε μία κλάση, από περιπτώσεις που ανήκουν σε όλες τις υπόλοιπες. Με πιο απλά λόγια, θεωρεί ως ορθό (positive) το τμήμα των εγγραφών που ανήκουν σε μία κλάση και ως λανθασμένο (negative) τις υπόλοιπες περιπτώσεις (κλάσεις εξόδου). Ο τρόπος λειτουργίας αυτού του κατηγοριοποιητή είναι απλός. Προκειμένου να ταξινομήσουμε ένα νέο αντικείμενο εισόδου, εκτελούνται και οι Ν (θεωρώντας Ν κλάσεις εξόδου) ταξινομητές που έχουν δημιουργηθεί και ως τελικό αποτέλεσμα επιστρέφεται αυτός ο κατηγοριοποιητής με το μέγιστο αποτέλεσμα (μέγιστη εμπιστοσύνη). Στις αναλύσεις που πραγματοποιήθηκαν, χρησιμοποιήθηκε η υλοποίηση της Ml του κατηγοριοποιητή One-Vs-All, και ως κατηγοριοποιητής βάσης επιλέχθηκε ο κατηγοριοποιητής τύπου Λογιστικής Παλινδρόμησης (Logistic Regression), που αναλύσαμε προηγουμένως.

53 Collaborative Filtering (Συνεργατικό Φιλτράρισμα) Η μεγάλη αύξηση του όγκου της παρεχόμενης πληροφορίας από το διαδίκτυο έχει οδηγήσει στην δημιουργία της πρόκλησης της υπερπληθώρας πληροφορίας, η οποία παρεμποδίζει την έγκαιρη πρόσβαση της απαιτούμενης πληροφορίας[52]. Παραδοσιακά συστήματα αναζήτησης πληροφορίας, όπως η Google, κατάφεραν να λύσουν μερικώς το πρόβλημα, αλλά χωρίς να παρέχουν ιεραρχημένα ή προσωποποιημένα, με την έννοια να μπορούν να λάβουν υπόψιν τους τις ιδιαίτερες προτιμήσεις του εκάστοτε χρήστη, αποτελέσματα. Αυτό το χαρακτηριστικό οδήγησε στην ανάπτυξη των συστημάτων παροχής συστάσεων, τα οποία αποτελούνται από συστήματα τα οποία επιλύουν το πρόβλημα της υπερπληθώρας πληροφορίας φιλτράροντας το σημαντικό τμήμα της αρχικής πληροφορίας, βασιζόμενα στις προσωπικές του προτιμήσεις ή την ήδη παρατηρηθείσα συμπεριφορά του. Στον τομέα των συστημάτων παροχής συστάσεων, η μέθοδος Συνεργατικού Φιλτραρίσματος (Collaborative Filtering) αποτελεί την πλέον δημοφιλή λύση[53]. Άλλες μέθοδοι παροχής συστάσεων αποτελούν τα συστήματα φιλτραρίσματος με βάση το περιεχόμενο (content-based filtering), στα οποία η παροχή σύστασης βασίζεται στην περιγραφή (χαρακτηριστικά) του αντικειμένου και το προφίλ των προτιμήσεων του χρήστη. Επίσης υπάρχουν και υβριδικά συστήματα τα οποία συνδυάζουν χαρακτηριστικά των δύο αυτών συστημάτων. Χαρακτηριστικό παράδειγμα αυτής της κατηγορίας αποτελεί το Netflix, το οποίο παρέχει συστάσεις βάσει των προτιμήσεων χρηστών με παρόμοια ενδιαφέροντα, αλλά επίσης προτείνει και ταινίες που έχουν κοινά χαρακτηριστικά με αυτές στις οποίες ο χρήστης έχει δώσει υψηλή βαθμολογία. Η βασική ιδέα της μεθόδου Collaborative Filtering βασίζεται στην εύρεση χρηστών, οι οποίοι μοιράζονται κοινά χαρακτηριστικά με τον υπό εξέταση χρήστη[53],[54],[55]. Η αποθηκευμένη πληροφορία αναπαρίσταται ως ένα δισδιάστατο μητρώο χρηστών και προτιμήσεών τους. Στη συνέχεια, προσδιορίζονται υποσύνολα χρηστών, έχοντας ως κριτήριο ότι οι χρήστες του εκάστοτε υποσυνόλου μοιράζονται κοινά χαρακτηριστικά, με το κάθε υποσύνολο των χρηστών να ονομάζεται γειτονιά (neighborhood) του χρήστη. Έτσι ο κάθε χρήστης μπορεί να λάβει προτάσεις αναφορικά με υπηρεσίες (προϊόντα) στα οποία δεν έχει εκφράσει κάποια προτίμηση, με βάση τις προτιμήσεις των γειτόνων του. Εικ. 3.6: Αναπαράσταση δισδιάστατου μητρώου 1 1

54 39 Τα συστήματα Collaborative Filtering διακρίνονται σε δύο κατηγορίες, ανάλογα με τον τρόπο με τον οποίο προσδιορίζεται η γειτονιά του εκάστοτε χρήστη. Η πρώτη κατηγορία βασίζεται στη μνήμη και η δεύτερη στο μοντέλο. Η πρώτη τεχνική (memory based) στηρίζεται στην άμεση χρήση του μητρώου που αποτελεί το σύνολο δεδομένων. Τα αντικείμενα τα οποία έχει ήδη βαθμολογήσει ο χρήστης, αποτελούν το στοιχείο κλειδί για την εύρεση των γειτόνων του. Για την παροχή συστάσεων αυτού του τύπου έχουν αναπτυχθεί δύο μεθοδολογίες, η τεχνική που βασίζεται στον χρήστη (user based) και η τεχνική που βασίζεται στο αντικείμενο (item based). Στην πρώτη τεχνική, η ομοιότητα μεταξύ των χρηστών προσδιορίζεται από την σύγκριση της βαθμολογίας αναφορικά με ένα συγκεκριμένο αντικείμενο. Χρησιμοποιώντας μία συνάρτηση ομοιότητας, μέσω της οποίας υπολογίζεται η ομοιότητα ενός χρήστη με τον εκάστοτε γείτονά του, προσδιορίζεται η προβλεπόμενη βαθμολογία ως ο σταθμισμένος μέσος όρος της γειτονιάς του χρήστη. Η ομοιότητα δύο χρηστών προσδιορίζεται από τις βαθμολογίες που έχουν δώσει οι χρήστες σε ένα σύνολο αντικειμένων. Αντίστοιχα, η τεχνική που βασίζεται στο αντικείμενο (item based) προσδιορίζει ομοιότητα μεταξύ των αντικειμένων και όχι των χρηστών. Η άγνωστη τιμή προσδιορίζεται με βάση αξιολογήσεις που έχει δώσει ο χρήστης σε παρόμοια αντικείμενα. Σε αυτή την περίπτωση η συνάρτηση ομοιότητας υπολογίζεται με βάση τα αντικείμενα, ενώ και πάλι η τελική τιμή προκύπτει χρησιμοποιώντας ένα σύνολο από k αντικείμενα, και η τιμή της ισούται με τον σταθμισμένο μέσο όρο της ομοιότητας και της βαθμολογίας του χρήστη στο εκάστοτε αντικείμενο. Προκειμένου να προσδιορίσουμε την συνάρτηση ομοιότητας, έχουν προταθεί διάφορες τεχνικές. Οι δύο πιο ευρέως χρησιμοποιούμενες είναι ο συντελεστής συσχέτισης Pearson [56][57] (Rearson s Correlation Coefficient) και η ομοιότητα συνημιτόνου [57] (Cosine Similarity). Ο συντελεστής συσχέτισης Pearson είναι η δημοφιλέστερη τεχνική και χρησιμοποιείται για τον προσδιορισμό της γραμμικής συσχέτισης δύο μεταβλητών. Το εύρος τιμών του συντελεστή κυμαίνεται από -1 έως 1, με το 0 να σημαίνει ότι δεν υπάρχει γραμμική συσχέτιση, το -1 ότι υπάρχει αρνητική συσχέτιση και το +1 θετική. Ο συντελεστής προκύπτει από τον ακόλουθο τύπο. όπου είναι η τιμή του συντελεστή ομοιότητας μεταξύ δύο χρηστών a και u, η τιμή της βαθμολογίας του αντικειμένου i από τον χρήστη a, είναι ο μέσος όρος της βαθμολογίας του χρήστη a και n ο συνολικός αριθμός των επιλεγμένων αντικειμένων. Στην ομοιότητα συνημιτόνου ο χρήστης και το αντικείμενο αναπαρίστανται ως διανύσματα σε ένα χώρο n-διαστάσεων ενώ η ομοιότητα μεταξύ τους ορίζεται με βάση την γωνία που σχηματίζεται μεταξύ τους. Και σε αυτή την περίπτωση το εύρος τιμών κυμαίνεται από -1 έως +1, με το -1 να ορίζει ότι τα διανύσματα αποκλίνουν, το +1 ότι ταυτίζονται και το 0 ότι είναι κάθετα μεταξύ τους. Για τον υπολογισμό χρησιμοποιείται η ακόλουθη εξίσωση Όπου στον αριθμητή περιλαμβάνονται τα αντικείμενα τα οποία έχουν και οι δύο χρήστες αξιολογήσει και στον παρονομαστή η τετραγωνική ρίζα του αθροίσματος του τετραγώνου των βαθμολογιών του εκάστοτε χρήστη. Επίσης υπάρχει και παραλλαγή της μεθόδου αυτής, η

55 40 προσαρμοσμένη ομοιότητα συνημιτόνου (adjusted cosine similarity) όπου λαμβάνει υπόψιν της και τον μέσο όρο των τιμών της καθεμίας συνιστώσας του διανύσματος. Η εξίσωση με την οποία υπολογίζεται είναι η Πέρα από αυτές τις μετρικές ομοιότητας υπάρχουν και άλλες π.χ. η Ευκλείδεια απόσταση, όπως επίσης έχουν αναπτυχθεί και συνδυαστικές τεχνικές των μετρικών αυτών, όπως [58] όπου συνδυάζεται η συντελεστής Pearson και η προσαρμοσμένη ομοιότητα συνημιτόνου. Από την άλλη μεριά έχουμε και την προσέγγιση με βάση το μοντέλο (model based). Σε αυτή την περίπτωση οι αξιολογήσεις των χρηστών χρησιμοποιούνται για την εκπαίδευση ενός μοντέλου μηχανικής μάθησης, μέσω του οποίου προσδιορίζονται οι προβλέψεις των ελλιπών τιμών. Οι ερευνητές έχουν αναπτύξει διάφορους τρόπους προκειμένου να προσδιορίσουν το ζητούμενο μοντέλο. Χαρακτηριστικό παράδειγμα αποτελεί η χρήση της τεχνικής της συσταδοποίησης [59] (clustering), μέσω της οποίας το σύνολο των χρηστών χωρίζεται σε συστάδες που μοιράζονται κοινά χαρακτηριστικά, και στη συνέχεια χρησιμοποιείται ο μέσος όρος των αξιολογήσεων των χρηστών της συστάδας για την παραγωγή προτάσεων. Επίσης σε αυτή την κατηγορία έχουν χρησιμοποιηθεί και τεχνικές ολοκλήρωσης μητρώων (matrix completion techniques). Η βασική ιδέα αυτής της τεχνικής είναι η πρόβλεψη των άγνωστων τιμών στα μητρώα χρηστών και αξιολογήσεων. Η συσχέτιση με βάση τους k-κοντινότερους γείτονες είναι μία από τις πιο συχνά χρησιμοποιούμενες τεχνικές στα collaborative filtering συστήματα [60]. Στην πλειονότητα των περιπτώσεων το μητρών χρηστών και προτιμήσεων είναι μεγάλο και αραιό, επειδή συνήθως οι χρήστες δεν αξιολογούν τα περισσότερα από τα αντικείμενα που υπάρχουν στο μητρώο. Αυτό το γεγονός δημιουργεί πρόβλημα στην ικανότητα των συστημάτων να παρέχουν αξιόπιστες αξιολογήσεις. Για την επίλυση αυτού του προβλήματος έχουν προταθεί διάφορες λύσεις [61] με χρήση μοντέλων με μικρό βαθμό για την συμπλήρωση του πίνακα. Πιο τυπικά, ο σκοπός της τεχνικής αυτής είναι ο προσδιορισμός των τιμών ενός μητρώου M διαστάσεων m x n, όταν εξετάζουμε ένα υποσύνολό του, χρησιμοποιώντας ένα σύνολο από μητρώα μικρότερης τάξης όπου το U είναι τάξης m x k και το V n x k, όπου. Σε αυτή την κατηγορία από τους πιο ευρέως χρησιμοποιούμενους αλγορίθμους είναι το Alternating Least Squares (ALS) [60], μέσω του οποίου βελτιστοποιούνται εναλλάξ τα μητρώα U και V, με σκοπό την μείωση του τετραγωνικού σφάλματος των γνωστών παρατηρήσεων. Στον αντίποδα, αυτά τα συστήματα δεν μπορούν να επιλύσουν το πρόβλημα της ψυχρής εκκίνησης, και επίσης είναι υπολογιστικά απαιτητικά, τόσο σε μνήμη όσο και σε υπολογιστική ισχύ. Το βασικό χαρακτηριστικό των συστημάτων Collaborative Filtering είναι ότι για την παροχή συστάσεων δεν είναι απαραίτητη η ύπαρξη πληροφορίας σχετικά με τα χαρακτηριστικά του αντικειμένου. Το μόνο στοιχείο που χρειάζεται το σύστημα για να λειτουργήσει είναι μία βάση δεδομένων με αξιολογήσεις χρηστών, ώστε να μπορέσει να προσδιορίσει την γειτονιά του εκάστοτε χρήστη. Έτσι μπορούν να λειτουργήσουν αποδοτικά σε τομείς που το περιεχόμενο δεν μπορεί να αναλυθεί εύκολα από υπολογιστές, όπως απόψεις. Επίσης, επειδή γενικά με την πάροδο του χρόνου, ο αριθμός των διαθέσιμων συστάσεων θα αυξάνεται, αντίστοιχα θα

56 αυξάνεται και η αξιοπιστία του συστήματος. Βέβαια, και αυτά τα συστήματα έχουν τα ελαττώματα τους. Ένα από τα προβλήματα των συστημάτων Collaborative Filtering είναι το πρόβλημα της ψυχρής εκκίνησης (cold start problem) το οποίο προκύπτει όταν ένας νέος χρήστης ή αντικείμενο εισέλθει στο μητρώο και δεν έχει ακόμα αξιολογήσεις, ώστε να μπορέσει να δημιουργηθεί η γειτονιά του. Ο πιο κοινός τρόπος αντιμετώπισης αυτού του προβλήματος είναι το σύστημα να ζητάει από τον χρήστη να αξιολογήσει ένα αριθμό αντικειμένων προκειμένου να μπορέσει να παράγει προτάσεις. Ένα επιπλέον πρόβλημα είναι η συνωνυμία, που αναφέρεται στο χαρακτηριστικό ότι παρόμοια αντικείμενα έχουν διαφορετικές ονομασίες. Λύση σε αυτή την περίπτωση είναι η προσθήκη ενός λεξικού, το οποίο όμως χρειάζεται να είναι ακριβές ώστε να μπορεί το σύστημα να παράγει ορθές προτάσεις. Τέλος, ένα ακόμα πρόβλημα των συστημάτων Collaborative Filtering, που σχετίζεται με τα δεδομένα μεγάλου όγκου είναι η επεκτασιμότητά τους. Καθώς ο διαθέσιμος αριθμός δεδομένων αυξάνεται, κρίνεται αναγκαίο να υπάρξουν τεχνικές και αλγόριθμοι που να μπορούν αποδοτικά να παρέχουν σε σύντομο χρονικό διάστημα αποτελέσματα. 41

57 Databricks community edition Οι αναλύσεις στην παρούσα εργασία πραγματοποιήθηκαν μέσω της πλατφόρμας Databricks community edition 1. H Databricks, που είναι μία εταιρία που ιδρύθηκε το 2013 από τους δημιουργούς του Apache Spark (AMPLab του UC Berkeley), παρέχει στους χρήστες, μέσω μίας web-based πλατφόρμας, την δυνατότητα τόσο της αποθήκευσης όσο και ανάλυσης των δεδομένων τους με χρήση του Apache Spark. Το Databricks community edition αποτελεί την δωρεάν επιλογή της εταιρίας. Αν και παρέχει σχετικά περιορισμένες δυνατότητες σε σχέση με την πλήρη έκδοση, δίνεται η δυνατότητα σε όποιον ενδιαφέρεται να ανακαλύψει τις δυνατότητες που παρέχει το Apache Spark. Παρέχει χώρο αποθήκευσης των δεδομένων του χρήστη καθώς και ένα micro-cluster με 6Gb Ram για την εκτέλεση της ανάλυσης. Στην συνέχεια θα περιγράψουμε περιληπτικά την διαδικασία μέσω της οποίας, κάποιος μπορεί να ανεβάσει το σύνολο δεδομένων του και να πραγματοποιήσει αναλύσεις. Αρχικά, το πρώτο βήμα προκειμένου να μπορέσουμε να χρησιμοποιήσουμε τις υπηρεσίες που παρέχει το Databricks community edition, είναι η είσοδος ως πιστοποιημένος χρήστης. Αυτό γίνεται πολύ απλά από την αρχική σελίδα, η οποία δίνει στο χρήστη την δυνατότητα, είτε να εισέλθει ως πιστοποιημένος χρήστης με την διεύθυνση και τον κωδικό πρόσβασης (password) που όρισε κατά την εγγραφή, είτε να δημιουργήσει ένα νέο λογαριασμό. Εικ. 3.7: Είσοδος Databricks community edition 1

58 43 Με την εισαγωγή των στοιχείων μας ή την δημιουργία ενός νέου λογαριασμού, οδηγούμαστε στην αρχική σελίδα του Databricks community edition, η οποία παρουσιάζεται στην επόμενη εικόνα. Εικ. 3.8: Αρχική σελίδα Databricks Community Edition Η αρχική εικόνα, όπως παρατηρούμε στην Εικ. 3.7, χωρίζεται σε δύο μέρη. Στο κυρίως τμήμα παρέχονται διάφορες συντομεύσεις προκειμένου να διαβάσουμε το documentation, διάφορες νέες υπηρεσίες που παρέχονται, το άνοιγμα πρόσφατων αρχείων που επεξεργαστήκαμε καθώς και η δημιουργία νέων. Πέρα από το κυρίως τμήμα, υπάρχει στο αριστερό τμήμα της σελίδας μία κάθετη μπάρα μέσω της οποίας μπορεί ο χρήστης να οδηγηθεί στα κατάλληλα τμήματα της σελίδας, ώστε να επιτελέσει τις εργασίες του. Το πρώτο βήμα, πριν την εκτέλεση της όποιας ανάλυσης ή το ανέβασμα (upload) των αρχείων είναι η δημιουργία ενός cluster. Αυτό μπορεί να γίνει μέσω του αντίστοιχου εικονιδίου της πλευρικής μπάρας.

59 44 Εικ. 3.9: Σελίδα δημιουργίας cluster Όπως έχουμε αναφέρει, στο Databricks community edition, ο χρήστης έχει περιορισμένες δυνατότητες ως προς το cluster. Πρακτικά παρέχεται ένα mini cluster, και ο χρήστης, το μόνο που έχει να ορίσει, είναι το όνομά του καθώς και την έκδοση του Databricks που επιθυμεί. Στην περίπτωσή μας αφήσαμε την αρχική (default) ρύθμιση ως προς την έκδοση. To cluster στο οποίο πραγματοποιήθηκαν οι αναλύσεις αποτελείται από ένα μηχάνημα με 6 Gb Ram μνήμης. Προφανώς στην πλήρη, και επί πληρωμή, έκδοση του προγράμματος παρέχονται επιπλέον επιλογές, όπως αριθμός worker, μέγεθος μνήμης driver και worker καθώς και η δυνατότητα δημιουργίας περισσότερων του ενός clusters. Εικ. 3.10: Δημιουργία cluster

60 45 Το επόμενο βήμα από την δημιουργία του cluster είναι η εισαγωγή του προς ανάλυση συνόλου δεδομένων. To Databricks παρέχει διάφορους τρόπους προκειμένου ο ερευνητής να αποκτήσει πρόσβαση στα προς ανάλυση δεδομένα 1. Στις αναλύσεις που πραγματοποιήσαμε επιλέξαμε την λύση της εισαγωγής των δεδομένων μέσω της επιλογής Tables που παρέχεται. Για να αποκτήσουμε πρόσβαση σε αυτή την υπηρεσία, αρχικά επιλέγουμε το εικονίδιο Data από την πλαϊνή μπάρα εργαλείων. Εικ. 3.11: Εισαγωγή δεδομένων μέσω Table Όπως παρατηρούμε από την Εικ. 3.10, μέσω της επιλογής αυτής μπορούμε να εισαγάγουμε ένα νέο σύνολο δεδομένων στο Databricks, καθώς και να δούμε τα σύνολα δεδομένων τα οποία έχουμε ανεβάσει. Επιλέγοντας το + που βρίσκεται δίπλα από το Tables μας εμφανίζει μία εικόνα όπως αυτής της Εικ μέσω της οποίας ανεβάζουμε τα αρχεία που αποτελούν το σύνολο δεδομένων στο Databricks. Επιλέγοντας ένα σύνολο δεδομένων που έχουμε ανεβάσει μπορούμε να δούμε πληροφορίες αναφορικά με την δομή του (Schema) αλλά και ένα μικρό του τμήμα του αρχείου όπως αυτό είναι αποθηκευμένο. 1

61 46 Εικ. 3.12: Σύνολο δεδομένων που έχουμε ήδη ανεβάσει στο Databricks Το τελευταίο βήμα αποτελεί η συγγραφή του κώδικα μέσω του οποίου θα πραγματοποιηθεί η ανάλυση των δεδομένων. Επιλέγοντας το εικονίδιο Home από την πλαϊνή μπάρα εργαλείων οδηγούμαστε στον αρχικό μας φάκελο. Εκεί μπορούμε να δημιουργήσουμε ένα νέο Notebook το οποίο θα περιλαμβάνει τον κώδικα. Παρέχονται στον χρήστη διάφορες επιλογές αναφορικά με την γλώσσα προγραμματισμού που επιθυμεί (Python, Scala, R), από τις οποίες επιλέξαμε την Python για την συγγραφή του κώδικα. Στην εικόνα που ακολουθεί παρουσιάζουμε ένα απλό παράδειγμα μέσω του οποίου μπορούμε να δούμε την μορφή που έχει το Notebook αλλά και τη δομή του Databricks. Τέλος αξίζει να σημειωθεί ότι παρέχεται η δυνατότητα στον χρήστη να κατεβάσει στο σκληρό του δίσκο το αρχείο με τον κώδικα του προγράμματος αλλά και να το δημοσιεύσει, ώστε και άλλοι χρήστες να μπορούν να εργαστούν σε αυτό.

62 47 Εικ. 3.13: Δομή Notebook Από τα RDD στα Dataframe Όπως αναφέραμε και σε προηγούμενο κεφάλαιο, μία από τις καινοτόμες ιδέες που εισήγαγε το Apache Spark είναι το RDD, την κατανεμημένη συλλογή δεδομένων. Τα Dataframe αποτελούν μία επέκταση αυτής της ιδέας. Αντίστοιχα με τα RDD, αποτελούν αμετάβλητες (immutable) κατανεμημένες συλλογές δεδομένων, που σε αντίθεση με τα RDD, τα δεδομένα οργανώνονται σε στήλες, όπως σε μία σχεσιακή βάση δεδομένων, ενώ λόγω της δομής τους, παρέχουν στο χρήση ένα υψηλότερο επίπεδο αφαίρεσης. Τα Dataframe μπορούν να δημιουργηθούν από διάφορες πηγές, όπως δομημένους τύπους αρχείων, εξωτερικές βάσεις δεδομένων καθώς και από υπάρχοντα RDDs. Έχουν υλοποιηθεί μέθοδοι μέσω των οποίων μπορεί να μετατραπεί ένα RDD σε Dataframe και το αντίστροφο. Αντίστοιχα με την περίπτωση των RDDs, στα Dataframe επιτρέπονται δύο ειδών ενέργειες, οι υπολογισμοί (actions) και οι μετασχηματισμοί (transformations), στους οποίους ισχύει η έννοια του οκνηρού υπολογισμού (lazy evaluation), όπου ο υπολογισμός πραγματοποιείται όταν μία δράση πρέπει να εκτελεστεί. Επιπλέον, παρέχεται για τους προγραμματιστές ένα αρκετά φιλικό στο χρήστη API για τις γλώσσες προγραμματισμού Python, Java, Scala και R, μέσω του οποίου μπορεί να επεξεργαστεί τα δεδομένα που επιθυμεί. Ένα σημαντικό χαρακτηριστικό που έχουν τα Dataframe στο Apache Spark είναι ότι η εκτέλεσή τους βελτιστοποιείται αυτόματα, με χρήση ενός framework, του Catalyst. Πριν την εκτέλεση του εκάστοτε υπολογισμού σε κάποιο Dataframe, το Catalyst δημιουργεί ένα πλάνο εκτέλεσης για την πραγματοποίηση του. Επειδή έχει πρόσβαση τόσο στον εσωτερικό τρόπο εκτέλεσης των εντολών όσο και στην δομή των δεδομένων, μπορεί να πραγματοποιήσει έξυπνες αποφάσεις και να επιταχύνει τους υπολογισμούς. Χαρακτηριστικά, στην Εικ παρουσιάζεται ένα

63 48 διάγραμμα που συγκρίνει τους χρόνους εκτέλεσης του μετασχηματισμού groupby σε σύνολο δεδομένων που αποτελείται από 10 εκατομμύρια ζεύγη ακεραίων. Εικ. 3.14: Συγκριτικό διάγραμμα εκτέλεσης RDD και Dataframe 1 Οι δυνατότητες των Dataframes οδήγησαν στην ανάπτυξη και μίας νέας βιβλιοθήκης μηχανικής μάθησης, της ML. Η βιβλιοθήκη αυτή στηρίζεται στην MLlib, επεκτείνοντας τις δυνατότητές της. Μία από τις πιο βασικές προσθήκες, την οποία χρησιμοποιήσαμε και στην διπλωματική εργασία, είναι η Pipeline που δίνει δυνατότητα να συνδυάσουμε πολλούς αλγορίθμους σε μία ροή εργασίας. Η ροή εργασίας ορίζεται ως ένα σύνολο σταδίων, τα οποία εκτελούνται σε σειρά. Τα στάδια αυτά περιλαμβάνουν, στην γενική περίπτωση, δύο τύπους ενεργειών τους Transfomer, οι οποίοι είναι αλγόριθμοι που μετασχηματίζουν ένα Dataframe σε ένα άλλο, π.χ. ένα μοντέλο μηχανικής μάθησης που μετασχηματίζει ένα Dataframe με χαρακτηριστικά σε ένα άλλο με προβλέψεις, και τους Estimator, που εφαρμόζεται σε ένα Dataframe και παράγει ένα Transformer, π.χ. ένας αλγόριθμος μάθησης είναι ένας Estimator που εκπαιδεύεται με ένα Dataframe και παράγει ένα μοντέλο. 1

64 Μεθοδολογία που ακολουθήσαμε στις αναλύσεις Η παρούσα διπλωματική, όπως αναφέραμε στην αρχή του κεφαλαίου, αφορά την εκτέλεση δύο ειδών αναλύσεων, κατηγοριοποίησης (classification) ενός και δύο βημάτων, καθώς και collaborative filtering με χρήση του Apache Spark Ανάλυση κατηγοριοποίησης ενός βήματος Πραγματοποιήθηκε μία σειρά τυπικών αναλύσεων κατηγοριοποίησης, με σκοπό να εκτιμήσουμε την επεκτασιμότητα (scalability) αλλά και την απόδοση του εκάστοτε αλγορίθμου σε κατανεμημένο περιβάλλον. Το πρώτο βήμα ήταν η χρήση του VectorAssembler, ενός Transformer ο οποίος συνδυάζει ένα σύνολο από στήλες σε μία στήλη-διάνυσμα (vector column). Στην συνέχεια, χρησιμοποιώντας τη στήλη-διάνυσμα ως είσοδο πραγματοποιήθηκε η εκπαίδευση του εκάστοτε μοντέλου κατηγοριοποίησης. Εικ. 3.15: Παράδειγμα χρήσης VectorAssembler Πριν την εκπαίδευση του εκάστοτε μοντέλου κατηγοριοποίησης έπρεπε το σύνολο δεδομένων να διαχωριστεί σε σύνολο εκπαίδευσης (training set) και σύνολο ελέγχου (test set). Το μέγεθος του συνόλου εκπαίδευσης επιλέχθηκε να είναι το 80% των εγγραφών του συνόλου δεδομένων, με το υπόλοιπο 20% να αποτελεί το σύνολο εκπαίδευσης. Εικ. 3.16: Παράδειγμα ορισμού συνόλων εκπαίδευσης και ελέγχου Στην συνέχεια πραγματοποιήθηκε η εκπαίδευση του εκάστοτε μοντέλου που χρησιμοποιήθηκε, χρησιμοποιώντας τις υλοποιήσεις που παρέχονται από την βιβλιοθήκη ML. Μία επιπλέον τεχνική που χρησιμοποιήσαμε είναι η ParamGridBuilder, η οποία εφόσον του ορίσουμε ένα σύνολο από πιθανές τιμές παραμέτρων μίας μεταβλητής, πραγματοποιεί αναζήτηση της βέλτιστης εξ αυτών. Για τον προσδιορισμό της βέλτιστης τιμής χρησιμοποιήθηκε 10 folds cross validation. Στη συνέχεια θα παρουσιάσουμε την διαδικασία που ακολουθήσαμε για την περίπτωση των δένδρων απόφασης (Decision Tree). Ως πρώτο βήμα έχουμε την αρχικοποίηση ενός δένδρου απόφασης. Εικ. 3.17: Αρχικοποίηση δένδρου απόφασης

65 50 Στην συνέχεια αρχικοποιούμε το Pipeline Εικ. 3.18: Αρχικοποίηση Pipeline Τέλος, ορίζουμε το ParamGridBuilder. Για την δημιουργία του χρειάζεται να έχουμε ορίσει μία λίστα που να περιλαμβάνει όλες τις πιθανές τιμές που μπορεί να λάβει η μεταβλητή που θέλουμε να εξετάσουμε. Εικ. 3.19: Αρχικοποίηση ParamGridBuilder Σε αυτό το σημείο κρίνεται σκόπιμο να παρουσιάσουμε τις τιμές των παραμέτρων, τις οποίες βελτιστοποιήσαμε μέσω της διαδικασίας του ParamGridBuilder. Στην περίπτωση των δένδρων απόφασης εξετάσαμε διαφορετικά ύψη του δένδρου, με τιμές να κυμαίνονται από 2 έως 30, που αποτελεί και την μέγιστη τιμή που μπορεί να λάβει η μεταβλητή αυτή στην υλοποίηση. Στην περίπτωση των τυχαίων δασών, η μεταβλητή η οποία εξετάσαμε αφορούσε τον αριθμό των δένδρων στο υπό εξέταση δάσος, με τις τιμές της να κυμαίνονται από 2 έως 60, με βήμα 2, με το μέγιστο ύψος του εκάστοτε δένδρου να είναι 10. Τέλος, στην περίπτωση των GBTrees, η μεταβλητή η οποία εξετάσαμε αφορούσε το ύψος των δένδρων, με τις τιμές της να κυμαίνονται από 2 έως 4, με το σύνολο των δένδρων να είναι 150. Στην περίπτωση της Logistic Regression δεν πραγματοποιήθηκε κάποια βελτιστοποίηση στις παραμέτρους, ενώ στην περίπτωση του MultiLayer Perceptron δεν μπόρεσε να γίνει χρήση της τεχνικής ParamGridBuilder. Αντί αυτού, μέσω μίας επαναληπτικής διαδικασίας εξετάσαμε μία σειρά από διαφορετικές περιπτώσεις, με δύο, τρία και τέσσερα κρυφά επίπεδα, με τον αριθμό των εποχών να είναι ίσος με Στους πίνακες που ακολουθούν παρουσιάζονται οι διάφορες περιπτώσεις κρυφών επιπέδων που εξετάστηκαν. o Δύο κρυφά επίπεδα Κόμβοι πρώτου επιπέδου Κόμβου δεύτερου επιπέδου o Τρία κρυφά επίπεδα Κόμβοι πρώτου επιπέδου Κόμβου δεύτερου επιπέδου Κόμβοι τρίτου επιπέδου

66 51 o Τέσσερα κρυφά επίπεδα Κόμβοι πρώτου επιπέδου Κόμβου δεύτερου επιπέδου Κόμβοι τρίτου επιπέδου Κόμβοι τέταρτου επιπέδου Πιν. 3.1: Αριθμός κρυφών επιπέδων κατηγοριοποιητή Multilayer Perceptron Επιπλέον της ανάλυσης αυτής, πραγματοποιήσαμε και μία σειρά αναλύσεων χρησιμοποιώντας το πλήρες σύνολο δεδομένων. Σε αυτή την περίπτωση δεν πραγματοποιήθηκε παραμετρική ανάλυση για τον προσδιορισμό βέλτιστων τιμών στους συντελεστές, αλλά επιλέχθηκαν κάποιες τιμές και πραγματοποιήθηκε η ανάλυση με βάση αυτές. Ο λόγος γι αυτή την κατηγορία αναλύσεων είναι κυρίως για να υπάρχει ένα μέτρο σύγκρισης με την ανάλυση 2 βημάτων, την οποία θα αναλύσουμε στην συνέχεια. Τέλος θα πραγματοποιήσουμε μία ανάλυση των μετρικών που χρησιμοποιήσαμε. Προκειμένου να κατανοήσουμε αυτές τις μετρικές θα εξετάσουμε την περίπτωση του δυαδικού ταξινομητή, που περιλαμβάνει δύο κλάσεις την θετική (p) και την αρνητική (n). Λαμβάνοντας υπόψιν τα πιθανά αποτελέσματα, μπορούμε να δημιουργήσουμε το ακόλουθο μητρώο ενδεχόμενων αποτελεσμάτων (confusion matrix). Εικ. 3.20: Μητρώο ενδεχόμενων αποτελεσμάτων (Confusion Matrix) 1 Ανάλογα με τα αποτελέσματα της κατηγοριοποίησης, διακρίνουμε τις εξής περιπτώσεις: True Positive (TP): Το σύνολο των δεδομένων που ταξινομήθηκαν σωστά στη θετική κλάση False Positive (FP): Το σύνολο των δεδομένων που ταξινομήθηκαν λάθος στη θετική κλάση False Negative (FN): Το σύνολο των δεδομένων που ταξινομήθηκαν λάθος στην αρνητική κλάση True Negative (TN): Το σύνολο των δεδομένων που ταξινομήθηκαν σωστά στην αρνητική κλάση 1

67 52 Με βάση τους παραπάνω ορισμούς η ακρίβεια (accuracy) ορίζεται ως εξής: Όπως παρατηρούμε αποτελεί το ποσοστό των σωστά ταξινομημένων στιγμιότυπων. Αν και εκ πρώτης όψεως φαίνεται ότι αυτή η μετρική αντιπροσωπεύει ιδανικά τα αποτελέσματα της ταξινόμησης, εν τούτοις υπάρχει ο κίνδυνος, ιδιαίτερα σε ασύμμετρα σύνολα δεδομένων, να λαμβάνουμε υψηλή ακρίβεια χωρίς όμως το μοντέλο να είναι καλύτερο [62]. Προκειμένου να έχουμε ένα μέτρο σύγκρισης του πόσο καλός είναι ένας κατηγοριοποιητής, έχουν προταθεί και επιπλέον μετρικές [63], η ακρίβεια (precision), η ανάκληση (recall) και η F-Measure, που αποτελεί συνδυασμό των δύο προηγούμενων. Η ακρίβεια (precision) αναφέρεται στο ποσοστό των στιγμιότυπων τα οποία το σύστημα προέβλεψε ότι ανήκουν στη θετική κλάση, και όντως ανήκουν σε αυτή (το ποσοστό των ορθών στιγμιότυπων που προέβλεψε το σύστημα). Αντίστοιχα, η ανάκληση (recall) αναφέρεται στο ποσοστό των στιγμιότυπων τα οποία ταξινομήθηκαν σε μία κατηγορία, ως προς το σύνολο των αντικειμένων αυτής της κατηγορίας (το ποσοστό των ορθών στιγμιοτύπων που τελικά επιλέχθηκε από το σύστημα). Η μετρική F-Measure (ή F-Score), προκύπτει από τον ακόλουθο τύπο Ουσιαστικά αποτελεί τον αρμονικό μέσο όρο, ο οποίος είναι ένας συντηρητικός μέσος όρος, της ακρίβειας και της ανάκλησης. Το εύρος τιμών της κυμαίνεται από το 0 έως το 1, με την βέλτιστη τιμή το 1.

68 Ανάλυση κατηγοριοποίησης δύο βημάτων Στην συνέχεια θα παρουσιάσουμε την ανάλυση κατηγοριοποίησης δύο βημάτων. Όπως είναι προφανές από τον τίτλο, η ανάλυση κατηγοριοποίησης χωρίζεται σε δύο επιμέρους στάδια (βήματα). Στο πρώτο στάδιο πραγματοποιούμε σε ένα υποσύνολο, ίσο με το 35% του συνόλου δεδομένων, μία ανάλυση λογιστικής παλινδρόμησης. Χρησιμοποιώντας τα αποτελέσματα αυτής της ανάλυσης, από το σύνολο των στηλών (χαρακτηριστικών) του συνόλου δεδομένων διατηρούμε τις στήλες εκείνες όπου ο συντελεστής παλινδρόμησης είναι μεγαλύτερος του μέσου όρου των συντελεστών. Εικ. 3.21: Πρώτο βήμα της διαδικασίας κατηγοριοποίησης 2 βημάτων Στην συνέχεια, με βάση αυτές τις στήλες πραγματοποιήσαμε, στο δεύτερο στάδιο, μία σειρά αναλύσεων όπως αυτές που παρουσιάσαμε στην προηγούμενη παράγραφο. Με αυτό τον τρόπο θέλαμε να μελετήσουμε αν θα έχει επίδραση ο αριθμός των στηλών στο μέγεθος του τελικού μοντέλου κατηγοριοποίησης, στο χρόνο που απαιτείται για την δημιουργία του καθώς και στις τελικές μετρικές που προκύπτουν. Όπως είναι προφανές, οι μετρικές που επιλέξαμε είναι αντίστοιχες με αυτές που χρησιμοποιήσαμε στην ανάλυση ενός βήματος. Επίσης, όπως και στην προηγούμενη περίπτωση, πραγματοποιήσαμε και κατηγοριοποίηση χρησιμοποιώντας ολόκληρο το σύνολο δεδομένων και χωρίς να πραγματοποιηθεί προσδιορισμός των βέλτιστων τιμών συντελεστών, με το εύρος τιμών τους να είναι ίδιο με αυτό της ανάλυσης κατηγοριοποίησης ενός βήματος. Τέλος, όπως αναφέραμε και στην προηγούμενη ενότητα, πραγματοποιήθηκε και μία σειρά αναλύσεων χρησιμοποιώντας το πλήρες μέγεθος του συνόλου δεδομένων, χρησιμοποιώντας σταθερές τιμές για την τιμή των συντελεστών της εκάστοτε ανάλυσης.

69 Collaborative Filtering Πέραν των αναλύσεων κατηγοριοποίησης, πραγματοποιήθηκε ανάλυση τύπου Collaborative Filtering. Για την πραγματοποίηση αυτής της ανάλυσης χρησιμοποιήθηκε η προσέγγιση με βάση το μοντέλο (model based). Στην βιβλιοθήκη ML έχει υλοποιηθεί η τεχνική Alternating Least Squares (ALS). Εικ. 3.22: Αρχικοποίηση Alternating Least Squares Όπως έχουμε αναφέρει, η τεχνική αυτή χρησιμοποιεί ένα τμήμα του συνόλου δεδομένων. Πιο συγκεκριμένα, διαχωρίζει το μητρώο χρηστών αξιολογήσεων σε δύο επιμέρους μητρώα, ένα χρηστών και ένα αξιολογήσεων. Ανάλογα με την τάξη (rank) την οποία δηλώνει ο χρήστης, διαλέγει τον αντίστοιχο αριθμό εγγραφών από το κάθε μητρώο και στη συνέχεια, αναδρομικά, βελτιστοποιεί το καθένα εναλλάξ ώστε να μειώσει το σφάλμα. Πραγματοποιήσαμε μία σειρά από αναλύσεις, χρησιμοποιώντας ολοένα και μεγαλύτερη τιμή στο συντελεστή αυτό, ώστε να μελετήσουμε το πώς επηρεάζει, τόσο το σφάλμα όσο και τον απαιτούμενο χρόνο για την ανάλυση. Όπως και στις προηγούμενες περιπτώσεις, και σε αυτή πραγματοποιήσαμε παραμετρική ανάλυση ως προς επιμέρους χαρακτηριστικά του μοντέλου εκπαίδευσης για να εξετάσουμε την επίπτωσή τους ως προς την αξιοπιστία του μοντέλου. Επιλέχθηκαν δύο παράμετροι, το rank που πρακτικά δηλώνει την γειτονιά του χρήστη, τον αριθμό δηλαδή των εγγραφών από το σύνολο δεδομένων που θα χρησιμοποιηθούν για να παραχθούν οι προβλέψεις για τον εκάστοτε χρήστη και το maxiters, τον μέγιστο αριθμό επαναλήψεων για την σύγκλιση του μοντέλου. Επιλέχθηκε το rank να παίρνει τιμές από 4 έως 14 με βήμα 2, ενώ για το maxiter επιλέχθηκαν 3 περιπτώσεις, 4, 8 και 12.

70 Σε αυτή την κατηγορία αναλύσεων χρησιμοποιήσαμε ως μετρικές τη ρίζα μέσου τετραγωνικού σφάλματος (root mean square error RMSE), που αποτελεί την τετραγωνική ρίζα της μέσης τιμής του τετραγώνου των σφαλμάτων. Αποτελεί μία από τις πιο συχνά χρησιμοποιούμενες μετρικές, καθώς λαμβάνει υπόψιν της τα μεγάλα σφάλματα. Επίσης, υπολογίσθηκε το μέσο τετραγωνικό σφάλμα (mean square error MSE) και το μέσο απόλυτο σφάλμα (mean absolute error MAE). Η μετρική MAE υπολογίζει την απόκλιση (deviation) ανάμεσα στις πραγματικές και στις υπολογισμένες από τον αλγόριθμο τιμές. Οι μετρικές RMSE και ΜΑΕ είναι παρόμοιες, με τη πρώτη να δίνει μεγαλύτερο βάρος στη μεγαλύτερη απόκλιση. Ως προς τις τιμές που λαμβάνουν οι μετρικές, όσο μικρότερες είναι οι τιμές τους, τόσο καλύτερη είναι η αξιοπιστία του αλγορίθμου. 55

71 56 4. Higgs Σύνολο Δεδομένων Αρχικά, θα παρουσιάσουμε τα αποτελέσματα των αναλύσεων κατηγοριοποίησης του πρώτου συνόλου δεδομένων. Θα ασχοληθούμε με την περίπτωση δίτιμης κατηγοριοποίησης (binary classification), ενώ το σύνολο δεδομένων που θα εξετάσουμε είναι το Higgs1[67], ένα σύνολο δεδομένων που περιλαμβάνει εγγραφές που έχουν προκύψει μέσα από μία υπολογιστική διαδικασία Περιγραφή του συνόλου δεδομένων - Προεπεξεργασία Το σύνολο δεδομένων Higgs που εξετάσαμε, ανήκει στην κατηγορία των συνθετικών συνόλων δεδομένων, το οποίο έχει παραχθεί μέσω προσομοιώσεων Monte Carlo, μίας διαδικασίας η οποία περιλαμβάνει στοχαστικές διαδικασίες, δηλαδή διαδικασίες που στηρίζονται στην χρησιμοποίηση τυχαίων αριθμών και στατιστικής για την επίλυση προβλημάτων[68]. Ο σκοπός του συνόλου δεδομένων είναι η πρόβλεψη αν από κάποια σύγκρουση σωματιδίων υπάρχει περίπτωση να προκύψει μποζόνιο Higgs. Στο σύνολο δεδομένων περιλαμβάνεται ένα σύνολο από 28 χαρακτηριστικά, από τα οποία τα πρώτα 21 χαρακτηριστικά αποτελούνται από κινηματικές ιδιότητες οι οποίες μπορούν να μετρηθούν από τον επιταχυντή σωματιδίων, ενώ τα υπόλοιπα 7 αποτελούν συναρτήσεις των αρχικών και χρησιμοποιούνται από τους ερευνητές για τον διαχωρισμό των κλάσεων εξόδου. Βασιζόμενοι σε αυτό τον διαχωρισμό, πραγματοποιήσαμε δύο σειρές αναλύσεων. Στη πρώτη περίπτωση χρησιμοποιήσαμε το σύνολο των χαρακτηριστικών (και τα 28 χαρακτηριστικά), ενώ στη δεύτερη χρησιμοποιήσαμε μόνο τα 21 πρώτα, τα οποία μπορούν να μετρηθούν απευθείας από τον επιταχυντή. Δεν πραγματοποιήθηκε κάποια ανάλυση χρησιμοποιώντας μόνο τα 7 χαρακτηριστικά καθώς στην ανάλυση δύο βημάτων, η απώλεια ενός χαρακτηριστικού έχει ως αποτέλεσμα να χαθεί σημαντικός όγκος πληροφορίας. Το πρώτο βήμα πριν την εκτέλεση οποιασδήποτε ανάλυσης είναι η προεπεξεργασία του συνόλου δεδομένων, ώστε να ξέρουμε ότι έχουμε ένα καθαρό σύνολο δεδομένων πάνω στο οποίο μπορούμε να εργαστούμε. Το βήμα αυτό της προεπεξεργασίας είναι κοινό και στις δύο περιπτώσεις αναλύσεων που εκτελέσαμε και περιλαμβάνει τον έλεγχο ότι δεν εντοπίζονται ελλιπείς τιμές. Αξίζει να τονίσουμε ότι πραγματοποιήθηκε έλεγχος ελλιπών τιμών για κάθε χαρακτηριστικό ξεχωριστά, ενώ τα αποτελέσματα παρουσιάζονται στην Εικ. 4.1, όπου παρατηρούμε ότι δεν εντοπίζονται προβλήματα ελλιπών τιμών σε κανένα χαρακτηριστικό του συνόλου δεδομένων. Αυτή η συμπεριφορά βέβαια ήταν ως ένα μεγάλο βαθμό αναμενόμενη καθώς το σύνολο δεδομένων είναι συνθετικό. Εικ. 4.1: Υπολογισμός ελλιπών τιμών 1

72 Πρώτη σειρά αναλύσεων κατηγοριοποίησης Αρχικά θα εξετάσουμε την περίπτωση όπου λαμβάνουμε υπόψιν το σύνολο των κλάσεων χαρακτηριστικών του συνόλου δεδομένων. Στην Εικ. 4.2 παρουσιάζεται ένα μέρος του συνόλου δεδομένων. class_labell epton_ptlepton_etalepton_phimissing_energy_magnitude missing_energy_phi jet_1_pt jet_1_eta jet_1_phi jet_1_b-tagjet_2_pt jet_2_eta jet_2_phi jet_2_b-tagjet_3_pt jet_3_eta jet_3_phi jet_3_b-tagjet_4_pt jet_4_eta jet_4_phi jet_4_b-tagm_jj m_jjj m_lv m_jlv m_bb m_wbb m_wwbb Εικ. 4.2: Μέρος του συνόλου δεδομένων Στην συνέχεια, στην Εικ. 4.4 παρουσιάζεται η δομή (schema) του συνόλου δεδομένων. Εικ. 4.3: Δομή του αρχικού συνόλου δεδομένων όπως χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης ενός βήματος (1-step classifier)

73 58 Το σύνολο δεδομένων, με βάση την περιγραφή του, αποτελείται από εγγραφές, το οποίο επιβεβαιώθηκε και μέσα από το Databricks. Εικ. 4.4: Μέγεθος συνόλου δεδομένων Με βάση το σύνολο δεδομένων που παρουσιάσαμε, εκτελέστηκε μία σειρά αναλύσεων κατηγοριοποίησης. Όπως έχουμε αναφέρει πραγματοποιήσαμε τις αναλύσεις αυτές σε υποσύνολα του συνόλου δεδομένων, προκειμένου να μελετήσουμε την επεκτασιμότητα (scalability) του εκάστοτε αλγορίθμου σε κατανεμημένο περιβάλλον. Εξετάστηκαν διάφορες περιπτώσεις, με το μέγεθος του εκάστοτε υποσυνόλου να έχει μέγεθος 5000, 10000, 25000, 50000, 75000, και εγγραφές. Στη συνέχεια χωρίζουμε το εκάστοτε υποσύνολο σε σύνολο ελέγχου (testset) και σε σύνολο εκπαίδευσης (trainingset), τα οποία αποθηκεύουμε στη μνήμη (cache) για λόγους απόδοσης. Χαρακτηριστικά έχουμε την Εικ. 4.5 Εικ. 4.5: Προσδιορισμός των επιμέρους τμημάτων του συνόλου δεδομένων Πρώτο στάδιο ανάλυσης δύο βημάτων Προτού προχωρήσουμε στην ανάλυση των αποτελεσμάτων, κρίνεται σκόπιμο να αναφερθούμε στο πρώτο βήμα της ανάλυσης κατηγοριοποίησης δύο βημάτων. Στο βήμα αυτό πραγματοποιείται μία γρήγορη και απλή ανάλυση λογιστικής παλινδρόμησης σε ένα τμήμα του συνόλου δεδομένων, ίσο με το 35% του συνολικού μεγέθους. Η ανάλυση αυτή στοχεύει στην εύρεση των συντελεστών παλινδρόμησης του εκάστοτε χαρακτηριστικού, και στην συνέχεια τον προσδιορισμό των χαρακτηριστικών των οποίων η τιμή του συντελεστή είναι μεγαλύτερη του μέσου όρου ώστε να χρησιμοποιηθούν στην ανάλυση δύο βημάτων. Για την εκτέλεση του αρχικού αυτού αλγορίθμου και τον προσδιορισμό των συντελεστών απαιτήθηκε χρόνος ίσος με 2 λεπτά και 41 δευτερόλεπτα, όπως φαίνεται στην Εικ. 4.6.

74 59 Εικ. 4.6: Απαιτούμενος χρόνος για το αρχικό στάδιο Με βάση τα αποτελέσματα αυτού του σταδίου προέκυψε ότι ο αριθμός των στηλών χαρακτηριστικών που θα αφαιρεθούν είναι 7, ενώ οι στήλες που αφαιρούνται παρουσιάζονται στην Εικ Εικ. 4.7: Χαρακτηριστικά που θα αφαιρεθούν Στην Εικ. 4.8 παρουσιάζεται η δομή του συνόλου δεδομένων, όπως αυτό χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης δύο βημάτων. Εικ 4.8: Δομή του συνόλου δεδομένων για την ανάλυση κατηγοριοποίησης 2 βημάτων (2-step classifier)

75 Δένδρα Απόφασης (Decision Trees) Η πρώτη σειρά αναλύσεων που πραγματοποιήσαμε είναι τα δένδρα απόφασης (decision trees). Όπως έχουμε ήδη αναφέρει, πραγματοποιήθηκε παραμετρική ανάλυση μέσω της οποίας προσδιορίζαμε, ανά περίπτωση, τον βέλτιστη τιμή για το ύψος του δένδρου. Πιο συγκεκριμένα εξετάστηκαν μία σειρά από πιθανές τιμές ύψους του δένδρου, στο εύρος 2 έως 30, που αποτελεί και τη μέγιστη τιμή στην υλοποίηση δένδρου απόφασης στη βιβλιοθήκη Ml, ενώ χρησιμοποιήθηκε η τεχνική 10 folds validation, για τον προσδιορισμό της βέλτιστης τιμής. Τα αποτελέσματα της ανάλυσης, τόσο στην περίπτωση ανάλυσης κατηγοριοποίησης ενός βήματος (1-step classification), όπως και της ανάλυσης κατηγοριοποίησης 2 βημάτων (2-step classification), παρουσιάζονται στον Πιν Αριθμός εγγραφών Recall Precision Ύψος Αριθμός κόμβων :14: :18: :39: :50: :03: :42: F-Measure Χρόνος 1-step classification :12:19 2-step classification :11: :14: :18: :37: :48: :04: :39:18 Πιν. 4.1: Αποτελέσματα ανάλυσης Decision Tree Από τα αποτελέσματα μπορούμε να παρατηρήσουμε ως γενικό κανόνα ότι όσο το μέγεθος του συνόλου δεδομένων αυξάνεται, τόσο πιο σύνθετο, ως προς το βέλτιστο ύψος του και τον αριθμό των κόμβων που περιέχονται σε αυτό, είναι το δένδρο απόφασης που προκύπτει. Βέβαια, υπάρχουν περιπτώσεις οι οποίες δεν υπακούν στον γενικό αυτό κανόνα, όπως η περίπτωση των εγγραφών, που πιθανώς να οφείλεται στο γεγονός ότι κατά την επιλογή των εγγραφών του συνόλου δεδομένων δεν λάβαμε υπόψη τα ποσοστά της εκάστοτε κλάσης, οπότε το σύνολο δεδομένων είναι μεροληπτικό (biased). Συγκρίνοντας τον προτεινόμενο κατηγοριοποιητή δύο βημάτων (2-step classifier) με την τυπική μεθοδολογία κατηγοριοποίησης (1-step classifier) παρατηρούμε ότι, ως προς την μετρική F-Measure, η προτεινόμενη

76 61 μεθοδολογία εμφανίζει μειωμένα αποτελέσματα κατά περίπου 4%, με το προκύπτον δένδρο, στην περίπτωση της προτεινόμενης μεθοδολογίας, να είναι σε κάποιες περιπτώσεις πιο απλό. Παράλληλα, για τον προσδιορισμό του μοντέλου κατηγοριοποίησης χρειάστηκε περίπου 3% λιγότερος χρόνος. Αναφορικά με την επεκτασιμότητα του αλγορίθμου ότι, δεν υπάρχει αναλογία αναφορικά με το μέγεθος του συνόλου δεδομένων και τον απαιτούμενο χρόνο υπολογισμού. Πιο συγκεκριμένα, για 40 φορές μεγαλύτερο σύνολο δεδομένων (από 5000 γραμμές σε γραμμές), χρειάστηκε περίπου 8,5 φορές περισσότερος χρόνος για τον προσδιορισμό του μοντέλου, και στις δύο περιπτώσεις που εξετάσαμε. Χαρακτηριστικά έχουμε την Εικ. 4.9, στην οποία παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης. Εικ. 4.9: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ. 4.9 παρατηρούμε ότι και οι δυο μέθοδοι παρουσιάζουν παρόμοια συμπεριφορά ως προς την επεκτασιμότητα του αλγορίθμου, με την μεταβολή στην προτεινόμενη μέθοδο (2- step classification) να είναι ελαφρώς μεγαλύτερη από την περίπτωση της τυπικής μεθόδου κατηγοριοποίησης (1-step classification), αλλά τελικά, για την περίπτωση των εγγραφών, η προτεινόμενη μέθοδος είναι πιο γρήγορη καθώς είναι και πιο γρήγορη στην περίπτωση βάσης, των 5000 εγγραφών.

77 Τυχαία δάση (Random Forest) Στην συνέχεια θα συνεχίσουμε την παρουσίαση των αποτελεσμάτων της ανάλυσης που αφορά τα τυχαία δάση (random forest). Όπως έχουμε ήδη αναφέρει, πραγματοποιήθηκαν και σε αυτή την περίπτωση παραμετρικές αναλύσεις αναφορικά με το μέγιστο αριθμό δένδρων, όπου εξετάστηκαν περιπτώσεις από 2 έως 60 δένδρα, με βήμα 2. Το μέγιστο ύψος κάθε δένδρου είχε ορισθεί ίσο με 10. Θα πρέπει να σημειωθεί ότι δοκιμάστηκαν και περιπτώσεις με μεγαλύτερο ύψος δένδρων, όπως και αριθμό δένδρων στο δάσος, αλλά λόγω των περιορισμένων δυνατοτήτων του cluster που παρείχε η δωρεάν έκδοση του Databricks, προέκυπτε σφάλμα καθώς ξεπερνούσαμε τη διαθέσιμη heap memory. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Precision Αριθμός δένδρων Αριθμός κόμβων :24: :38: :32: :02: :28: :10: F-Measure Χρόνος 1-step classification :18:04 2-step classification :17: :22: :39: :35: :20: :47: :44:11 Πιν.4.2: Αποτελέσματα ανάλυσης Random Forest Από τα αποτελέσματα της ανάλυσης προκύπτει ότι και σε αυτή την περίπτωση, γενικά, όσο αυξάνεται το μέγεθος του συνόλου δεδομένων, τόσο οι τιμές των μετρικών βελτιώνονται, αλλά και το βέλτιστο δάσος που προκύπτει από την ανάλυση είναι πιο σύνθετο, δηλαδή περιέχει περισσότερα δένδρα και πιο πολλούς κόμβους. Στην περίπτωση των εγγραφών, που στην ανάλυση δένδρων απόφασης είχαμε παρατηρήσει παρεκκλίνουσα συμπεριφορά, στην περίπτωση των τυχαίων δασών παρατηρούμε ότι εμφανίζεται αντίστοιχη ασυμβατότητα με τον γενικό κανόνα, αλλά μόνο στην περίπτωση της τυπικής διαδικασίας κατηγοριοποίησης. Όπως και στα δένδρα απόφασης, η προτεινόμενη μέθοδος εμφανίζει, όσο αφορά τη τιμή της FMeasure, περίπου 5% μικρότερες τιμές. Εξετάζοντας τον απαιτούμενο χρόνο υπολογισμού,

78 63 παρατηρούμε ότι η προτεινόμενη μέθοδος απαιτεί περίπου 12% περισσότερο χρόνο να υπολογίσει το μοντέλο. Στην Εικ παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης. Εικ. 4.10: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ επιβεβαιώνεται η παρατήρηση ότι η προτεινόμενη διαδικασία απαιτεί περισσότερο χρόνο για τον υπολογισμό του μοντέλου.

79 Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Στην συνέχεια θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης δίτιμης λογιστικής παλινδρόμησης (binomial logistic regression). Σε αυτή την μέθοδο δεν υπήρξε κάποια ανάλυση βελτιστοποίησης της τιμής κάποιου συντελεστή. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος step classification :00: :00: :00: :00: :00: :00: :00:08 2-step classification :00: :00: :00: :00: :00: :00: Πιν. 4.3: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης 0:00:08 Συγκρίνοντας τις τιμές που προέκυψαν από την ανάλυση προκύπτουν αντίστοιχα συμπεράσματα, με την τιμή της F-Measure να εμφανίζει πτώση της τάξης του 4.5% στην περίπτωση της κατηγοριοποίησης δύο βημάτων, η οποία σε κάποιες περιπτώσεις προκύπτει να είναι ταχύτερη. Βέβαια, πρέπει να σημειωθεί ότι σε κάθε περίπτωση οι χρόνοι που απαιτούνται για την ανάλυση είναι μικροί. Όπως και στις προηγούμενες περιπτώσεις, στην Εικ παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης.

80 65 Εικ. 4.11: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Λόγω των πολύ μικρών τιμών που λαμβάνει ο απαιτούμενος χρόνος υπολογισμού, τα αποτελέσματα του γραφήματος είναι παραπλανητικά. Αν και στην τελική περίπτωση και οι δύο μεθοδολογίες απαιτούν ίδιο χρόνο για τον υπολογισμό του μοντέλου (8 δευτερόλεπτα), επειδή στην περίπτωση βάσης, η προτεινόμενη μέθοδος απαιτεί λιγότερο χρόνο (1 δευτερόλεπτο αντί για 2), προκύπτει ότι η μεταβολή είναι αισθητά μεγαλύτερα. Παρόλα αυτά, για τέτοιους χρόνους υπολογισμού δεν υπάρχει λόγος οποιασδήποτε σύγκρισης.

81 Gradient Boosted Trees Classifier Ο επόμενος κατηγοριοποιητής που μελετήσαμε ήταν ο Gradient Boosted Trees Classifier. Πραγματοποιήθηκαν παραμετρικές αναλύσεις όσον αφορά το ύψος του κάθε δένδρου, το οποίο λάμβανε τιμές από 2 έως 4, ενώ ο συνολικός αριθμός των δένδρων είναι 150. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος 1-step classification :33:54 Αριθμός δένδρων Αριθμός κόμβων Ύψος :45: :13: :24: :34: :42: :08: step classification :32: :40: :11: :14: :25: :34: :57: Πιν. 4.4: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier 4 Συγκρίνοντας τα αποτελέσματα των δύο μεθόδων κατηγοριοποίησης παρατηρούμε ότι η προτεινόμενη μέθοδος κατηγοριοποίησης (2-step classification) εμφανίζει μικρότερες τιμές στην μετρική F-Measure (μείωση κατά 4% περίπου), αλλά παράλληλα, είναι κατά 8% πιο γρήγορη. Όπως είναι αναμενόμενο, με την αύξηση του μεγέθους του συνόλου δεδομένων αυξάνεται αντίστοιχα και η πολυπλοκότητα του μοντέλου που προκύπτει, με την έννοια ότι το ύψος των δένδρων είναι μεγαλύτερο. Στην Εικ παρουσιάζεται η μεταβολή του χρόνου που απαιτείται για τον υπολογισμό του μοντέλου, σε σχέση με τον απαιτούμενο χρόνο υπολογισμού στην περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές.

82 67 Εικ. 4.12: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι και οι δυο μέθοδοι παρουσιάζουν παρόμοια συμπεριφορά ως προς την επεκτασιμότητα του αλγορίθμου, με την μεταβολή στην προτεινόμενη μέθοδο (2- step classification) να είναι ελαφρώς μικρότερη από την περίπτωση της τυπικής μεθόδου κατηγοριοποίησης (1-step classification).

83 Multilayer Perceptron Τέλος, θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης κατηγοριοποιητή τύπου Multilayer Perceptron. Σε αυτή την περίπτωση εξετάστηκαν διάφορες περιπτώσεις οργάνωσης των κρυφών επιπέδων του συστήματος, οι οποίες παρουσιάζονται στον Πιν Ο χρόνος που παρουσιάζεται στα αποτελέσματα των αναλύσεων είναι ο απαιτούμενος χρόνος για τον υπολογισμό όλων των διαφορετικών περιπτώσεων, ενώ το τελικό μοντέλο που επιλέχθηκε είναι αυτό που εμφανίζει τη μεγαλύτερη τιμή Precision. Τα αποτελέσματα παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Χρόνος Κόμβοι κρυφών επιπέδων step classification :06:51 0:12:55 [28, 15, 14, 2] [28, 15, 14, 2] :27:49 [28, 15, 14, 2] :54:28 [28, 15, 14, 2] :17:05 [28, 20, 15, 2] :40:54 [28, 25, 20, 15, 2] :50:29 [28, 25, 20, 2] Precision F-Measure 2-step classification :08:45 [21, 35, 25, 20, 2] :12:45 [21, 15, 14, 2] :27:25 [21, 15, 14, 2] :52:05 [21, 15, 14, 2] :16:24 [21, 35, 30, 25, 20, 2] :41:06 [21, 25, 20, 2] :16:22 Πιν. 4.5: Αποτελέσματα ανάλυσης Multilayer Perceptron [21, 40, 30, 20, 2] Από τα αποτελέσματα που παρουσιάζονται στον Πιν. 4.5 παρατηρούμε ότι με την αύξηση του μεγέθους του συνόλου δεδομένων τα αποτελέσματα βελτιώνονται. Συγκρίνοντας τις τιμές των αποτελεσμάτων παρατηρούμε ότι η προτεινόμενη μέθοδος κατηγοριοποίησης (2-step classification) εμφανίζει μικρότερες τιμές, κατά περίπου 4%, στην μετρική F-Measure, αλλά παράλληλα είναι κατά 15% πιο γρήγορη, στην περίπτωση που το σύνολο δεδομένων είχε εγγραφές. Στην Εικ παρουσιάζεται η μεταβολή του χρόνου που απαιτείται για τον υπολογισμό του μοντέλου, σε σχέση με περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές, για κάθε διαδικασία κατηγοριοποίησης. Παρατηρούμε ότι η προτεινόμενη μέθοδος επιφέρει, σε κάθε περίπτωση, μικρότερη μεταβολή ως προς τον απαιτούμενο χρόνο υπολογισμού, σε σχέση με την περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές, ενώ παράλληλα εμφανίζει γραμμική συμπεριφορά.

84 Εικ. 4.13: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων 69

85 Ανάλυση κατηγοριοποίησης στο πλήρες σύνολο δεδομένων Πέρα από την ανάλυση κατηγοριοποίησης που πραγματοποιήσαμε σε υποσύνολα του συνόλου δεδομένων, πραγματοποιήθηκε και μία σειρά αναλύσεων σε ολόκληρο το σύνολο δεδομένων, χρησιμοποιώντας τα ίδια μοντέλα κατηγοριοποίησης, αλλά χωρίς να πραγματοποιείται κάποια βελτιστοποίηση ως προς τις τιμές των συντελεστών του εκάστοτε μοντέλου. Και σε αυτή την περίπτωση πραγματοποιήθηκε σύγκριση της τυπικής διαδικασίας κατηγοριοποίησης με την κατηγοριοποίηση δύο βημάτων που μελετούμε, με το πρώτο βήμα να είναι ίδιο με αυτό που παρουσιάσαμε προηγουμένης Δένδρα απόφασης (Decision Trees) Πραγματοποιήθηκε ανάλυση χρησιμοποιώντας ως κατηγοριοποιητή τα δένδρα απόφασης. Το ύψος του δένδρου θεωρήθηκε ίσο με 15. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Ύψος Αριθμός κόμβων :13: :04:35 Πιν. 4.6: Αποτελέσματα ανάλυσης Decision Tree Precision F-Measure 1-step classification step classification Από τα αποτελέσματα της ανάλυσης παρατηρούμε ότι η προτεινόμενη μέθοδος εμφανίζει, κατά περίπου 4%, μικρότερη τιμή ως προς την μετρική F-Measure, αλλά ο χρόνος για τον υπολογισμό του μοντέλου είναι μειωμένος κατά 65% περίπου. Επιπλέον το προκύπτον δένδρο είναι απλούστερο, με την έννοια ότι περιέχει μικρότερο αριθμό κόμβων.

86 Τυχαία δάση (Random Forest) Ο επόμενος κατηγοριοποιητής που μελετήθηκε ήταν τα τυχαία δάση (Random Forest). Σε αυτή την περίπτωση χρησιμοποιήθηκαν 50 δένδρα στο δάσος με το μέγιστο ύψος δένδρου να είναι ίσο με 7. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Αριθμός δένδρων Αριθμός κόμβων :06: :05:34 Πιν. 4.7: Αποτελέσματα ανάλυσης Random Forest Precision F-Measure 1-step classification step classification Από τα αποτελέσματα που παρουσιάζονται στον Πιν. 4.7 παρατηρούμε ότι υπήρξε μία μείωση ως προς τη τιμή της μετρικής F-Measure, της τάξης του 4%, αλλά επίσης υπήρξε μείωση του χρόνου εκπαίδευσης του μοντέλου κατά 8.5%. Ως προς την πολυπλοκότητα του μοντέλου, με βάση τον αριθμό των κόμβων του δάσους, προκύπτει πρακτικά ισοδυναμία Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Στην συνέχεια χρησιμοποιήθηκε ο κατηγοριοποιητής δίτιμης λογιστικής παλινδρόμησης. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών 28 Αριθμός εγγραφών Recall Precision 1-step classification F-Measure Χρόνος :05:02 2-step classification Πιν. 4.8: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης 0:04:43 Από τα αποτελέσματα της ανάλυσης παρατηρούμε ότι υπάρχει μία μείωση στη τιμή της μετρικής F-Measure κατά 4% περίπου, ενώ αντίστοιχα ο χρόνος εκπαίδευσης έχει μειωθεί κατά 6%.

87 Gradient Boosted Trees Classifier Στη συνέχεια, στον Πιν. 4.9 παρουσιάζουμε τα αποτελέσματα του κατηγοριοποιητή Gradient Boosted Trees. Το ύψος του κάθε δένδρου στον κατηγοριοποιητή θεωρήθηκε ίσο με 4, ενώ ο αριθμός των δένδρων ίσος με 150. Αριθμός στηλών Αριθμός εγγραφών Recall F-Measure Χρόνος Αριθμός δένδρων Αριθμός κόμβων Ύψος 1-step classification :24: Precision 2-step classification :32: Πιν. 4.9: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier Από τα αποτελέσματα του Πιν. 4.9 παρατηρούμε ότι εμφανίζεται μείωση στην τιμή της μετρικής F-Measure κατά 4% περίπου, με παράλληλη μείωση του χρόνου εκπαίδευσης κατά 23%. Όσον αφορά την πολυπλοκότητα του μοντέλου είναι ίδια και στις δύο περιπτώσεις, χαρακτηριστικό που είναι αναμενόμενο Multilayer Perceptron Τέλος, πραγματοποιήθηκε ανάλυση χρησιμοποιώντας κατηγοριοποιητή τύπου Multilayer Perceptron. Σε αυτή την περίπτωση χρησιμοποιήθηκαν 3 κρυφά επίπεδα με 40, 30 και 20 κόμβους στο καθένα. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Κόμβοι κρυφών επιπέδων :06:46 [28, 40, 30, 20, 2] :05:23 Πιν. 4.10: Αποτελέσματα ανάλυσης Multilayer Perceptron [21, 40, 30, 20, 2] Precision F-Measure 1-step classification step classification 21 Από τα αποτελέσματα του Πίν παρατηρούμε ότι εμφανίζεται μείωση στην τιμή της μετρικής F-Measure κατά 2% περίπου, με τον απαιτούμενο χρόνο εκπαίδευσης του μοντέλου να εμφανίζει ελαφρά μείωση, κατά 0.5%, στην περίπτωση του προτεινόμενου μοντέλου κατηγοριοποίησης δύο βημάτων.

88 Δεύτερη σειρά αναλύσεων κατηγοριοποίησης Στην συνέχεια θα παρουσιάσουμε τα αποτελέσματα αναλύσεων στην δεύτερη περίπτωση, όπου λαμβάνουμε υπόψιν ένα υποσύνολο του συνόλου των κλάσεων χαρακτηριστικών του συνόλου δεδομένων, και πιο συγκεκριμένα το μέρος εκείνο το οποίο μπορεί να μετρηθεί άμεσα στον επιταχυντή. Στην Εικ παρουσιάζεται ένα μέρος του συνόλου δεδομένων. Εικ. 4.14: Μέρος του συνόλου δεδομένων Στην συνέχεια, στην Εικ παρουσιάζεται η δομή (schema) του συνόλου δεδομένων. Εικ. 4.15: Δομή του αρχικού συνόλου δεδομένων όπως χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης ενός βήματος (1-step classifier)

89 74 Το σύνολο δεδομένων, με βάση την περιγραφή του, αποτελείται από εγγραφές, το οποίο επιβεβαιώθηκε και μέσα από το Databricks. Εικ. 4.16: Μέγεθος συνόλου δεδομένων Με βάση το σύνολο δεδομένων που παρουσιάσαμε, εκτελέστηκαν μία σειρά αναλύσεων κατηγοριοποίησης. Όπως και στην περίπτωση που εξετάσαμε το πλήρες αριθμό κλάσεων του συνόλου δεδομένων, πραγματοποιήσαμε τις αναλύσεις αυτές σε υποσύνολα του συνόλου δεδομένων, δεδομένου να μελετήσουμε την επεκτασιμότητα (scalability) του εκάστοτε αλγορίθμου σε κατανεμημένο περιβάλλον. Εξετάστηκαν οι ίδιες περιπτώσεις με την προηγούμενη ανάλυση, με το μέγεθος του εκάστοτε υποσυνόλου να έχει μέγεθος 5000, 10000, 25000, 50000, 75000, και εγγραφές. Στη συνέχεια χωρίζουμε το εκάστοτε υποσύνολο σε σύνολο ελέγχου (testset) και σε σύνολο εκπαίδευσης (trainingset), τα οποία αποθηκεύουμε στη μνήμη (cache) για λόγους απόδοσης. Χαρακτηριστικά έχουμε την Εικ. 4.5 Εικ. 4.17: Προσδιορισμός των επιμέρους τμημάτων του συνόλου δεδομένων Πρώτο στάδιο ανάλυσης δύο βημάτων Και σε αυτή την περίπτωση το πρώτο βήμα της ανάλυσης δύο βημάτων είναι ίδιο με αυτό που εκτελέστηκε και στην προηγούμενη περίπτωση, δηλαδή μία γρήγορη και απλή ανάλυση λογιστικής παλινδρόμησης σε ένα τμήμα του συνόλου δεδομένων, ίσο με το 35% του συνολικού μεγέθους, έτσι ώστε να βρεθούν οι συντελεστές παλινδρόμησης του εκάστοτε χαρακτηριστικού. Στην συνέχεια χρησιμοποιήθηκαν τα χαρακτηριστικά η τιμή των οποίων είναι μεγαλύτερη του μέσου όρου. Για την εκτέλεση του αρχικού αυτού αλγορίθμου και τον προσδιορισμό των συντελεστών απαιτήθηκε χρόνος ίσος με 1 λεπτό και 56 δευτερόλεπτα, όπως φαίνεται στην Εικ

90 75 Εικ. 4.18: Απαιτούμενος χρόνος για το αρχικό στάδιο Με βάση τα αποτελέσματα αυτού του σταδίου προέκυψε ότι ο αριθμός των στηλών χαρακτηριστικών που θα αφαιρεθούν είναι 5, ενώ οι στήλες που αφαιρούνται παρουσιάζονται στην Εικ Εικ. 4.19: Χαρακτηριστικά που θα αφαιρεθούν Στην Εικ παρουσιάζεται η δομή του συνόλου δεδομένων, όπως αυτό χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης δύο βημάτων Εικ 4.20: Δομή του συνόλου δεδομένων για την ανάλυση κατηγοριοποίησης 2 βημάτων (2-step classifier) Δένδρα Απόφασης (Decision Trees) Η πρώτη σειρά αναλύσεων που πραγματοποιήσαμε είναι τα δένδρα απόφασης (decision trees). Όπως έχουμε ήδη αναφέρει, πραγματοποιήθηκε παραμετρική ανάλυση μέσω της οποίας προσδιορίσαμε, ανά περίπτωση, τη βέλτιστη τιμή για το ύψος του δένδρου. Πιο συγκεκριμένα εξετάστηκε μία σειρά από πιθανές τιμές ύψους του δένδρου, στο εύρος 2 έως 30, που αποτελεί και τη μέγιστη τιμή στην υλοποίηση δένδρου απόφασης στη βιβλιοθήκη Ml, ενώ χρησιμοποιήθηκε η τεχνική 10 folds validation, για τον προσδιορισμό της βέλτιστης τιμής. Τα αποτελέσματα της ανάλυσης, τόσο στην περίπτωση ανάλυσης κατηγοριοποίησης ενός βήματος (1-step classification), όπως και της ανάλυσης κατηγοριοποίησης 2 βημάτων (2-step classification), παρουσιάζονται στον Πιν

91 76 Αριθμός εγγραφών Recall Precision F-Measure Χρόνος Ύψος Αριθμός κόμβων 1-step classification :12: :13: :17: :32: :40: :48: :21: step classification :11: :13: :16: :51: :53: :05: :48: Πιν. 4.11: Αποτελέσματα ανάλυσης Decision Tree Από τα αποτελέσματα μπορούμε να παρατηρήσουμε ως γενικό κανόνα ότι όσο το μέγεθος του συνόλου δεδομένων αυξάνεται, τόσο πιο σύνθετο, ως προς το βέλτιστο ύψος του και τον αριθμό των κόμβων που περιέχονται σε αυτό, είναι το δένδρο απόφασης που προκύπτει. Βέβαια, υπάρχουν περιπτώσεις οι οποίες δεν υπακούν στον γενικό αυτό κανόνα, όπως η περίπτωση των εγγραφών, και λιγότερο η περίπτωση των εγγραφών, που πιθανώς να οφείλεται στο γεγονός ότι κατά την επιλογή των εγγραφών του συνόλου δεδομένων δεν λάβαμε υπόψη τα ποσοστά της εκάστοτε κλάσης, οπότε το σύνολο δεδομένων είναι μεροληπτικό (biased). Συγκρίνοντας τον προτεινόμενο κατηγοριοποιητή δύο βημάτων (2- step classifier) με την τυπική μεθοδολογία κατηγοριοποίησης (1-step classifier) παρατηρούμε ότι, ως προς την μετρική F-Measure, η προτεινόμενη μεθοδολογία εμφανίζει αντίστοιχα αποτελέσματα, ενώ το δένδρο απόφασης προκύπτει να είναι σε κάποιες περιπτώσεις πιο απλό. Όμως, δεν είναι αντίστοιχα αποδοτική ως προς το χρόνο εκπαίδευσης, καθώς προκύπτει να απαιτεί περίπου 30% επιπλέον χρόνο για τον υπολογισμό του δένδρου απόφασης. Αναφορικά με την επεκτασιμότητα του αλγορίθμου, δεν υπάρχει αναλογία σχετικά με το μέγεθος του συνόλου δεδομένων και τον απαιτούμενο χρόνο υπολογισμού. Πιο συγκεκριμένα, για 40 φορές μεγαλύτερο σύνολο δεδομένων (από 5000 γραμμές σε γραμμές), χρειάστηκε περίπου 9,4 φορές περισσότερος χρόνος για τον προσδιορισμό του μοντέλου στην περίπτωση της περίπτωσης ανάλυσης δύο βημάτων, ενώ στην τυπική μέθοδο 6,6 φορές. Χαρακτηριστικά στην Εικ. 4.21, παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης.

92 77 Εικ. 4.21: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι η τυπική μέθοδος κατηγοριοποίησης εμφανίζει πιο γραμμική συμπεριφορά, ενώ παράλληλα επαληθεύεται ότι οι απαιτήσεις της προτεινόμενης μεθοδολογίας ως προς τον χρόνο υπολογισμού είναι μεγαλύτερες Τυχαία δάση (Random Forest) Στην συνέχεια θα συνεχίσουμε την παρουσίαση των αποτελεσμάτων της ανάλυσης που αφορά τα τυχαία δάση (random forest). Όπως έχουμε ήδη αναφέρει, πραγματοποιήθηκαν και σε αυτή την περίπτωση παραμετρικές αναλύσεις αναφορικά με το μέγιστο αριθμό δένδρων, όπου εξετάστηκαν περιπτώσεις από 2 έως 60 δένδρα, με βήμα 2. Το μέγιστο ύψος κάθε δένδρου είχε ορισθεί ίσο με 10. Θα πρέπει να σημειωθεί ότι δοκιμάστηκαν και περιπτώσεις με μεγαλύτερο ύψος δένδρων, όπως και αριθμό δένδρων στο δάσος, αλλά λόγω των περιορισμένων δυνατοτήτων του cluster που παρείχε η δωρεάν έκδοση του Databricks, προέκυπτε σφάλμα καθώς ξεπερνούσαμε τη διαθέσιμη heap memory. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πίν

93 78 Αριθμός εγγραφών Recall Precision F-Measure Χρόνος Αριθμός δένδρων Αριθμός κόμβων 1-step classification :16: :21: :33: :22: :47: :15: :15: step classification :16: :21: :33: :36: :06: :36: :26: Πιν.4.12: Αποτελέσματα ανάλυσης Random Forest Από τα αποτελέσματα της ανάλυσης προκύπτει ότι και σε αυτή την περίπτωση, όσο αυξάνεται το μέγεθος του συνόλου δεδομένων, τόσο οι τιμές των μετρικών βελτιώνονται, αλλά και το βέλτιστο δάσος που προκύπτει από την ανάλυση είναι πιο σύνθετο, δηλαδή περιέχει περισσότερα δένδρα και πιο πολλούς κόμβους. Βέβαια, και σε αυτή την περίπτωση εντοπίζονται παρεκκλίσεις, όπως η περίπτωση των εγγραφών που απαιτεί, μεγαλύτερο αριθμό δένδρων από ότι η περίπτωση των Όπως και στα δένδρα απόφασης, η προτεινόμενη μέθοδος εμφανίζει, όσο αφορά τη τιμή της F-Measure, αντίστοιχες τιμές. Εξετάζοντας τον απαιτούμενο χρόνο υπολογισμού παρατηρούμε ότι η προτεινόμενη μέθοδος απαιτεί περίπου 4,5% περισσότερο χρόνο να υπολογίσει το μοντέλο, τιμή σαφέστατα βελτιωμένη σε σχέση με τα δένδρα απόφασης. Στην Εικ παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης, από όπου μπορούμε να παρατηρήσουμε ότι η επεκτασιμότητα και των δύο περιπτώσεων κατηγοριοποίησης είναι αντίστοιχη, ενώ επιβεβαιώνεται η επιπλέον απαίτηση σε χρόνο στην προτεινόμενη μεθοδολογία.

94 Εικ. 4.22: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων 79

95 Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Στην συνέχεια θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης δίτιμης λογιστικής παλινδρόμησης (binomial logistic regression). Σε αυτή την μέθοδο δεν υπήρξε κάποια ανάλυση βελτιστοποίησης της τιμής κάποιου συντελεστή. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος step classification :00: :00: :00: :00: :00: :00: :00:04 2-step classification :00: :00: :00: :00: :00: :00: Πιν. 4.13: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης 0:00:04 Συγκρίνοντας τις τιμές που προέκυψαν από την ανάλυση προκύπτουν αντίστοιχα συμπεράσματα, με τις δύο μεθόδους κατηγοριοποίησης να εμφανίζουν αντίστοιχα αποτελέσματα ως προς την μετρική F-Measure. Ως προς τον απαιτούμενο χρόνο εκπαίδευσης του μοντέλου κατηγοριοποίησης, πρέπει να σημειωθεί ότι σε κάθε περίπτωση οι χρόνοι που απαιτούνται για την ανάλυση είναι μικροί, σε βαθμό που να μην έχει νόημα η όποια σύγκριση. Όπως και στις προηγούμενες περιπτώσεις, στην Εικ παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης.

96 81 Εικ. 4.23: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Και σε αυτή την περίπτωση τα αποτελέσματα του γραφήματος είναι παραπλανητικά. Στην περίπτωση των εγγραφών ο απαιτούμενος χρόνος και για τις δύο περιπτώσεις είναι ο ίδιος, αλλά από το γράφημα φαίνεται ότι η μεταβολή είναι μεγαλύτερη λόγω του ότι στην βασική περίπτωση, των 5000 εγγραφών, απαιτεί λιγότερο χρόνο από την τυπική διαδικασία κατηγοριοποίησης. Βέβαια, οι χρόνοι είναι πολύ μικροί για να έχει ουσιαστικό νόημα η όποια σύγκριση.

97 Gradient Boosted Trees Classifier Ο επόμενος κατηγοριοποιητής που μελετήσαμε ήταν ο Gradient Boosted Trees Classifier. Πραγματοποιήθηκαν παραμετρικές αναλύσεις όσον αφορά το ύψος του κάθε δένδρου, το οποίο λάμβανε τιμές από 2 έως 4, ενώ ο συνολικός αριθμός των δένδρων είναι 150. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος 1-step classification :30:48 Αριθμός δένδρων Αριθμός κόμβων Ύψος :38: :00: :10: :13: :21: :49: step classification :30: :36: :43: :22: :20: :29: :04: Πιν. 4.14: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier 4 Συγκρίνοντας τα αποτελέσματα των δύο μεθόδων κατηγοριοποίησης παρατηρούμε ότι και σε αυτή την περίπτωση οι δύο μέθοδοι κατηγοριοποίησης εμφανίζουν αντίστοιχα αποτελέσματα ως προς την μετρική F-Measure, αλλά η προτεινόμενη μεθοδολογία απαιτεί 14% περίπου περισσότερο χρόνο. Όπως είναι αναμενόμενο, με την αύξηση του μεγέθους του συνόλου δεδομένων αυξάνεται αντίστοιχα και η πολυπλοκότητα του μοντέλου που προκύπτει, με την έννοια ότι το ύψος των δένδρων είναι μεγαλύτερο. Στην Εικ παρουσιάζεται η μεταβολή του χρόνου που απαιτείται για τον υπολογισμό του μοντέλου, σε σχέση με τον απαιτούμενο χρόνο υπολογισμό στην περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές.

98 83 Εικ. 4.24: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι και οι δυο μέθοδοι παρουσιάζουν παρόμοια συμπεριφορά ως προς την επεκτασιμότητα του αλγορίθμου, με την μεταβολή στην προτεινόμενη μέθοδο (2- step classification) να είναι μεγαλύτερη από την περίπτωση της τυπικής μεθόδου κατηγοριοποίησης (1-step classification).

99 Multilayer Perceptron Τέλος, θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης κατηγοριοποιητή τύπου Multilayer Perceptron. Σε αυτή την περίπτωση εξετάστηκαν διάφορες περιπτώσεις οργάνωσης των κρυφών επιπέδων του συστήματος, οι οποίες παρουσιάζονται στον Πιν Ο χρόνος που παρουσιάζεται στα αποτελέσματα των αναλύσεων είναι ο απαιτούμενος χρόνος για τον υπολογισμό όλων των διαφορετικών περιπτώσεων, ενώ το τελικό μοντέλο που επιλέχθηκε είναι αυτό που εμφανίζει τη μεγαλύτερη τιμή Precision. Τα αποτελέσματα παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Χρόνος Κόμβοι κρυφών επιπέδων step classification :06:52 0:12:53 [21, 40, 30, 20, 2] [21, 35, 30, 25, 20, 2] :27:51 [21, 15, 14, 2] :52:27 [21, 15, 14, 2] :16:54 [21, 35, 30, 25, 20, 2] :42:20 [21, 30, 25, 20, 15, 2] :20:58 [21, 40, 35, 30, 25, 2] Precision F-Measure 2-step classification :06:56 [16, 35, 25, 20, 2] :11:14 [16, 35, 30, 25, 20, 2] :24:02 [16, 15, 14, 2] :46:20 [16, 25, 20, 2] :06:16 [16, 35, 25, 20, 2] :27:21 [16, 35, 25, 20, 2] :50:38 Πιν. 4.15: Αποτελέσματα ανάλυσης Multilayer Perceptron [16, 40, 30, 20, 2] Από τα αποτελέσματα που παρουσιάζονται στον Πιν παρατηρούμε ότι με την αύξηση του μεγέθους του συνόλου δεδομένων τα αποτελέσματα βελτιώνονται. Συγκρίνοντας τις τιμές των αποτελεσμάτων παρατηρούμε ότι η προτεινόμενη μέθοδος κατηγοριοποίησης (2-step classification) εμφανίζει μικρότερες τιμές, κατά περίπου 10%, στην μετρική F-Measure, ενώ παράλληλα είναι κατά 15% πιο γρήγορη, στην περίπτωση που το σύνολο δεδομένων είχε εγγραφές. Επίσης, στη προτεινόμενη μεθοδολογία κατηγοριοποίησης (2 βημάτων) το τελικό δίκτυο που προκύπτει είναι πιο απλό, με την έννοια ότι εμφανίζει μικρότερο αριθμό κρυφών επιπέδων στις περιπτώσεις που το σύνολο δεδομένων έχει περισσότερες από εγγραφές. Στην Εικ παρουσιάζεται η μεταβολή του χρόνου που απαιτείται για τον υπολογισμό του μοντέλου, σε σχέση με την περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές, για κάθε διαδικασία κατηγοριοποίησης. Παρατηρούμε ότι η προτεινόμενη μέθοδος επιφέρει,

100 85 σε κάθε περίπτωση, μικρότερη μεταβολή ως προς τον απαιτούμενο χρόνο υπολογισμού, σε σχέση με την περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές. Ως προς την επεκτασιμότητα των αλγορίθμων παρατηρούμε ότι και οι δύο αλγόριθμοι εμφανίζουν γραμμική συμπεριφορά. Εικ. 4.25: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων

101 Ανάλυση κατηγοριοποίησης στο πλήρες σύνολο δεδομένων Όπως και στην περίπτωση του πλήρους αριθμού στηλών του συνόλου δεδομένων, εκτός από την ανάλυση κατηγοριοποίησης που πραγματοποιήσαμε σε υποσύνολα του συνόλου δεδομένων, πραγματοποιήθηκε και μία σειρά αναλύσεων σε ολόκληρο το σύνολο δεδομένων, χρησιμοποιώντας τα ίδια μοντέλα κατηγοριοποίησης, αλλά χωρίς να πραγματοποιείται κάποια βελτιστοποίηση ως προς τις τιμές των συντελεστών του εκάστοτε μοντέλου. Και σε αυτή την περίπτωση πραγματοποιήθηκε σύγκριση της τυπικής διαδικασίας κατηγοριοποίησης με την κατηγοριοποίηση δύο βημάτων που μελετούμε, με το πρώτο βήμα να είναι ίδιο με αυτό που παρουσιάσαμε προηγουμένης Δένδρα απόφασης (Decision Trees) Αρχικά, πραγματοποιήθηκε ανάλυση χρησιμοποιώντας ως κατηγοριοποιητή τα δένδρα απόφασης. Το ύψος του δένδρου θεωρήθηκε ίσο με 15. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Ύψος Αριθμός κόμβων :04: :03:30 Πιν. 4.16: Αποτελέσματα ανάλυσης Decision Tree Precision F-Measure 1-step classification step classification Από τα αποτελέσματα της ανάλυσης παρατηρούμε ότι η προτεινόμενη μέθοδος αποδίδει το ίδιο με την τυπική μέθοδο κατηγοριοποίησης ως προς την μετρική F-Measure, αλλά ο χρόνος για τον υπολογισμό του μοντέλου είναι μειωμένος κατά 17% περίπου. Αλλά, το προκύπτον δένδρο είναι ελάχιστα πιο σύνθετο, με την έννοια ότι περιέχει μεγαλύτερο αριθμό κόμβων.

102 Τυχαία δάση (Random Forest) Ο επόμενος κατηγοριοποιητής που μελετήθηκε ήταν τα τυχαία δάση (Random Forest). Σε αυτή την περίπτωση χρησιμοποιήθηκαν 50 δένδρα στο δάσος με το μέγιστο ύψος δένδρου να είναι ίσο με 7. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Precision F-Measure 1-step classification Χρόνος Αριθμός δένδρων Αριθμός κόμβων 0:04: step classification :04:20 Πιν. 4.17: Αποτελέσματα ανάλυσης Random Forest Από τα αποτελέσματα που παρουσιάζονται στον Πιν παρατηρούμε ότι υπήρξε μία οριακή αύξηση της τιμής της μετρικής F-Measure, της τάξης του 0.4%, ενώ παράλληλα υπήρξε μείωση του χρόνου εκπαίδευσης του μοντέλου κατά 10%. Ως προς την πολυπλοκότητα του μοντέλου, με βάση τον αριθμό των κόμβων του δάσους, προκύπτει πρακτικά ισοδυναμία Δίτιμη λογιστική παλινδρόμηση (Binomial Logistic Regression) Στην συνέχεια χρησιμοποιήθηκε ο κατηγοριοποιητής δίτιμης λογιστικής παλινδρόμησης. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Precision 1-step classification F-Measure Χρόνος :01: Πιν. 4.18: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης 2-step classification 0:02:09 Από τα αποτελέσματα της ανάλυσης παρατηρούμε ότι υπάρχει μία οριακή πτώση της τιμής της μετρικής F-Measure, κατά 0.4% περίπου, αλλά ο χρόνος εκπαίδευσης έχει αυξηθεί κατά 33%, αν και πρέπει να παρατηρήσουμε ότι ο απαιτούμενος χρόνος είναι μικρός.

103 Gradient Boosted Trees Classifier Στη συνέχεια, στον Πιν παρουσιάζουμε τα αποτελέσματα του κατηγοριοποιητή Gradient Boosted Trees. Το ύψος του κάθε δένδρου στον κατηγοριοποιητή θεωρήθηκε ίσο με 4, ενώ ο αριθμός των δένδρων ίσος με 150. Αριθμός στηλών Αριθμός εγγραφών Recall F-Measure Χρόνος Αριθμός δένδρων Αριθμός κόμβων Ύψος 1-step classification :33: Precision 2-step classification :13: Πιν. 4.19: Αποτελέσματα ανάλυσης Gradient Boosted Trees Classifier Από τα αποτελέσματα του Πιν παρατηρούμε ότι εμφανίζεται οριακή μείωση στην τιμή της μετρικής F-Measure, κατά 0.1% περίπου, με παράλληλη μείωση του χρόνου εκπαίδευσης κατά 3.5%. Όσον αφορά την πολυπλοκότητα του μοντέλου, είναι ίδια και στις δύο περιπτώσεις, γεγονός που είναι αναμενόμενο Multilayer Perceptron Τέλος, πραγματοποιήθηκε ανάλυση χρησιμοποιώντας κατηγοριοποιητή τύπου Multilayer Perceptron. Σε αυτή την περίπτωση χρησιμοποιήθηκαν 3 κρυφά επίπεδα με 40, 30 και 20 κόμβους στο καθένα. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Κόμβοι κρυφών επιπέδων :35:24 [21, 40, 30, 20, 2] :52:15 Πιν. 4.20: Αποτελέσματα ανάλυσης Multilayer Perceptron [16, 40, 30, 20, 2] Precision F-Measure 1-step classification step classification 16 Από τα αποτελέσματα του Πίν παρατηρούμε ότι, στην περίπτωση του προτεινόμενου μοντέλου κατηγοριοποίησης δύο βημάτων, εμφανίζεται μείωση στην τιμή της μετρικής FMeasure κατά 0.8%, ενώ παράλληλα ο απαιτούμενος χρόνος εκπαίδευσης του μοντέλου έχει μειωθεί κατά 16%.

104 89 5. PAMAP2 Σύνολο Δεδομένων Στο παρόν κεφάλαιο θα παρουσιάσουμε τα αποτελέσματα των αναλύσεων κατηγοριοποίησης που πραγματοποιήσαμε στο δεύτερο σύνολο δεδομένων. Θα ασχοληθούμε με την περίπτωση κατηγοριοποίησης πολλαπλών κλάσεων (multiclass classification), ενώ το σύνολο δεδομένων που θα εξετάσουμε είναι το PAMAP2 (Physical Activity Monitoring Data Set)1[64, 65], ένα σύνολο δεδομένων που περιλαμβάνει εγγραφές που έχουν προκύψει από πραγματικές μετρήσεις Περιγραφή του συνόλου δεδομένων - Προεπεξεργασία Το PAMAP2 σύνολο δεδομένων αποτελείται από μετρήσεις που αφορούν μετρήσεις 9 ατόμων, μίας γυναίκας και οχτώ ανδρών, ηλικίας ετών. Επιπλέον στοιχεία για τους συμμετέχοντες παρουσιάζονται στην Εικ Κάθε ένας από τους συμμετέχοντες έπρεπε να ακολουθήσει ένα πρωτόκολλο, το οποίο περιλαμβάνει 12 διαφορετικές δραστηριότητες και παρουσιάζεται στην Εικ Εικ. 5.1: Πίνακας δραστηριοτήτων 1

105 90 Εικ. 5.2: Χαρακτηριστικά συμμετεχόντων Πέραν αυτών των 12 βασικών δραστηριοτήτων, σε κάθε συμμετέχοντα δόθηκε και μία λίστα από επιπλέον, προαιρετικές, δραστηριότητες, τις οποίες αγνοήσαμε στην παρούσα ανάλυση. Όπως έχουμε ήδη αναφέρει, το σύνολο δεδομένων PAMAP2, περιλαμβάνει πραγματικές τιμές, με αποτέλεσμα να υπάρχουν ελλιπή δεδομένα. Υπάρχουν δύο βασικοί λόγοι ύπαρξης τέτοιων δεδομένων: 1. Απώλεια δεδομένων λόγω πτώσης της χρησιμοποίησης ασύρματων αισθητήρων, αν και συνέβαινε σπάνια. Οι τιμές αυτές έχουν τιμή NaN στο σύνολο δεδομένων. 2. Προβλήματα με το υλικό, όπως για παράδειγμα πτώση του συστήματος (system crash). Σε αυτή, την δεύτερη, κατηγορία συμπεριλαμβάνεται και ένας λόγος ύπαρξης ενός μεγάλου μέρους των ελλιπών τιμών. Οι αισθητήρες IMU (αδρανειακή μονάδα μέτρησης) έδιναν μετρήσεις ανά 0,01 δευτερόλεπτο, δεδομένου ότι ο ρυθμός δειγματοληψίας τους ήταν 100 Hz. Από την άλλη, ο αισθητήρας μέτρησης καρδιακού ρυθμού (HR-monitor) είχε ρυθμό δειγματοληψίας 9 Hz, με τις τιμές που λείπουν να έχουν αποθηκευτεί, και σε αυτή την περίπτωση, ως NaN. Το σύνολο δεδομένων περιλάμβανε 54 στήλες ανά γραμμή, με τις στήλες να ακολουθούν την δομή που παρουσιάζεται στον Πίν. 5.1 Στήλη Δεδομένα Χρονόσημο (timestamp) Δραστηριότητα Καρδιακός ρυθμός (χτύποι ανά λεπτό bpm) IMU χειρός IMU στήθους IMU αστραγάλου Πιν. 5.1: Δομή συνόλου δεδομένων Τα δεδομένα κάθε αισθητήρα IMU έχουν την μορφή που παρουσιάζεται στον Πιν. 5.2 Στήλη Δεδομένα Θερμοκρασία Δεδομένα επιτάχυνσης (κλίμακα ±16g) Δεδομένα επιτάχυνσης (κλίμακα ±6g) Δεδομένα γυροσκοπίου Δεδομένα μαγνητόμετρου Προσανατολισμός (δεν χρησιμοποιείται) Πιν. 5.2: Δεδομένα αισθητήρα IMU

106 91 Το πρώτο μας βήμα πριν την οποιαδήποτε ανάλυση, αποτελείται από το στάδιο της προεπεξεργασίας των δεδομένων. Επειδή, όπως έχουμε ήδη αναφέρει, το σύνολο δεδομένων έχει ελλιπείς τιμές, χρησιμοποιήσαμε την ακόλουθη συνάρτηση ώστε να μετρήσουμε, ανά στήλη, τις ελλιπής τιμές, οι οποίες στο σύνολο δεδομένων που αναλύουμε έχουν αποθηκευτεί ως NaN. Εικ. 5.3: Υπολογισμός ελλιπών τιμών Από την ανάλυση προέκυψε ότι η πλειονότητα των ελλιπών τιμών αντιστοιχεί στην στήλη του καρδιακού ρυθμού, στην οποία βρέθηκαν γραμμές με ελλιπείς τιμές, με τον συνολικό αριθμό γραμμών του συνόλου δεδομένων να είναι Εύκολα προκύπτει ότι οι ελλιπείς τιμές αντιστοιχούν σε ποσοστό 90%. Μπορεί η τιμή να είναι μεγάλη, αλλά ως ένα βαθμό ήταν αναμενόμενο γιατί, όπως αναφέραμε, ο ρυθμός δειγματοληψίας του μετρητή καρδιακού ρυθμού είναι πολύ μικρότερος από τους υπόλοιπους μετρητές. Επειδή το ποσοστό των ελλιπών τιμών είναι πολύ μεγάλο για να το αγνοήσουμε, έπρεπε να βρεθεί ένας τρόπος να προσδιορίσουμε την τιμή των ελλιπών στηλών. Χρησιμοποιώντας ένα script υλοποιημένο σε γλώσσα προγραμματισμού python, αντικαταστήσαμε κάθε ελλιπή τιμή με την τελευταία γνωστή τιμή που περιείχε το σύνολο δεδομένων. Χρησιμοποιώντας την τεχνική αυτή, εκτελέσαμε εκ νέου τη συνάρτηση που παρουσιάσαμε προηγουμένως, όπου πλέον προέκυψε ότι, από τις συνολικές γραμμές που περιείχε το σύνολο δεδομένων, ο μέγιστος αριθμός ελλιπών γραμμών ανά στήλη ήταν 13141, που ήταν πολύ μικρός, οπότε απλά αγνοήσαμε τις στήλες αυτές από την ανάλυση. Το επόμενο βήμα στην προεπεξεργασία του συνόλου δεδομένων είναι η απαλοιφή των περιττών στηλών. Σύμφωνα με την περιγραφή του συνόλου δεδομένων, από τους δύο μετρητές επιτάχυνσης, αυτό με το πιο μικρό εύρος (±6g), εξαιτίας των υψηλών τιμών που προκύπτουν σε δεδομένες κινήσεις, όπως αναταράξεις κατά το τρέξιμο, εμφάνιζε το φαινόμενο του κορεσμού, και οι ερευνητές δεν προτείνουν την χρησιμοποίησή του. Επιπλέον, από τους μετρητές IMU αγνοήσαμε και τις στήλες που αφορούν τον προσανατολισμό. Τέλος, πρέπει να σημειώσουμε ότι στην παρούσα ανάλυση αγνοήσαμε και την χρονική συνιστώσα, δηλαδή την στήλη που περιλαμβάνει το χρονόσημο (timestamp) της εκάστοτε μέτρησης. Με βάση τα προηγούμενα, προκύπτει η Εικ. 5.4 που περιλαμβάνει ένα μικρό τμήμα του συνόλου δεδομένων. activityid heart_rateimu_handimu_handimu_handimu_handimu_handimu_handimu_handimu_handimu_handimu_handimu_chestimu_chestimu_chestimu_chestimu_chestimu_chestimu_chestimu_chestimu_chestimu_chestimu_ankleimu_ankleimu_ankleimu_ankleimu_ankleimu_ankleimu_ankleimu_ankleimu_ankleimu_ankle Εικ. 5.4: Μέρος συνόλου δεδομένων

107 92 Στην Εικ. 5.5 παρουσιάζεται η δομή (schema) του συνόλου δεδομένων, το οποίο περιέχει συνολικά εγγραφές. Εικ. 5.5: Δομή του αρχικού συνόλου δεδομένων όπως χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης ενός βήματος (1-step classifier) Πριν συνεχίσουμε την ανάλυση, κρίνεται χρήσιμο να παρουσιάσουμε κάποιες μετρικές που αφορούν τον αριθμό των ξεχωριστών δραστηριοτήτων που υπάρχουν στο τελικό σύνολο δεδομένων, καθώς και τον κωδικό της εκάστοτε δραστηριότητας. Πρέπει να τονίσουμε σε αυτό το σημείο ότι πριν την ανάλυση κατηγοριοποίησης, μέσω της βιβλιοθήκης Ml, είχαμε πραγματοποιήσει και ένα επιπλέον βήμα, που αφορούσε την κανονικοποίηση των τιμών των αναγνωριστικών της εκάστοτε δραστηριότητας. Χαρακτηριστικά, έχουμε την Εικ Εικ. 5.6: α)μη κανονικοποιημένο αναγνωριστικό β)κανονικοποιημένο αναγνωριστικό δραστηριότητας

108 Ανάλυση κατηγοριοποίησης Μετά το στάδιο της προεπεξεργασίας των δεδομένων, έχουμε ένα καθαρό σύνολο δεδομένων πάνω στο οποίο μπορούμε να εκτελέσουμε την ανάλυση κατηγοριοποίησης. Όπως έχουμε αναφέρει πραγματοποιήσαμε ανάλυση κατηγοριοποίησης σε υποσύνολα του συνόλου δεδομένων, προκειμένου να μελετήσουμε την επεκτασιμότητα (scalability) του εκάστοτε αλγορίθμου σε κατανεμημένο περιβάλλον. Προκειμένου όμως τα επιμέρους υποσύνολα του συνόλου δεδομένων να είναι συγκρίσιμα, κατά τον επιμερισμό προσέξαμε η κατανομή των κλάσεων εξόδου να είναι αντίστοιχη με αυτή του συνόλου. Για να το επιτύχουμε αυτό, χρησιμοποιήθηκε ο ακόλουθος πίνακας, μέσω του οποίου υπολογίζουμε σε τι ποσοστό του συνόλου δεδομένων αντιστοιχεί η εκάστοτε περίπτωση που εξετάζουμε, και στην συνέχεια για κάθε κλάση εξόδου επιλέγουμε αυτό το ποσοστό από το συνολικό αριθμό εγγραφών της κλάσης. Χαρακτηριστικά έχουμε τον Πιν Αριθμός γραμμών Συνολικές γραμμές Ποσοστό Ποσοστό που επιλέχθηκε Πιν. 5.3: Υπολογισμός ποσοστών κάθε κλάσης Χρησιμοποιώντας τα ποσοστά αυτά, υπολογίζουμε για κάθε περίπτωση που επιθυμούμε να εξετάσουμε τα επιμέρους σύνολα δεδομένων. Στη συνέχεια τα χωρίζουμε σε σύνολο ελέγχου (testset) και σε σύνολο εκπαίδευσης (trainingset), τα οποία αποθηκεύουμε στη μνήμη (cache) για λόγους απόδοσης. Χαρακτηριστικά έχουμε την Εικ. 5.7 Εικ. 5.7: Προσδιορισμός των επιμέρους τμημάτων του συνόλου δεδομένων

109 Πρώτο στάδιο ανάλυσης δύο βημάτων Προτού προχωρήσουμε στην ανάλυση των αποτελεσμάτων, κρίνεται σκόπιμο να αναφερθούμε στο πρώτο βήμα της ανάλυσης κατηγοριοποίησης δύο βημάτων. Στο βήμα αυτό πραγματοποιείται μία γρήγορη και απλή ανάλυση λογιστικής παλινδρόμησης σε ένα τμήμα του συνόλου δεδομένων, ίσο με το 35% του συνολικού μεγέθους. Η ανάλυση αυτή στοχεύει στην εύρεση των συντελεστών του εκάστοτε χαρακτηριστικού, και στην συνέχεια τον προσδιορισμό των χαρακτηριστικών των οποίων η τιμή του συντελεστή είναι μεγαλύτερη του μέσου όρου ώστε να χρησιμοποιηθούν στην ανάλυση δύο βημάτων. Για την εκτέλεση του αρχικού αυτού αλγορίθμου και τον προσδιορισμό των συντελεστών απαιτήθηκε χρόνος ίσος με 1 λεπτό και 34 δευτερόλεπτα, όπως φαίνεται στην Εικ Εικ. 5.8: Απαιτούμενος χρόνος για το αρχικό στάδιο Με βάση τα αποτελέσματα αυτού του σταδίου προέκυψε ότι ο αριθμός των στηλών χαρακτηριστικών που θα αφαιρεθούν είναι 7, ενώ οι στήλες που αφαιρούνται παρουσιάζονται στην Εικ Εικ. 5.9: Χαρακτηριστικά που θα αφαιρεθούν Στην Εικ παρουσιάζεται η δομή του συνόλου δεδομένων, όπως αυτό χρησιμοποιήθηκε στην ανάλυση κατηγοριοποίησης δύο βημάτων Εικ 5.10: Δομή του συνόλου δεδομένων για την ανάλυση κατηγοριοποίησης 2 βημάτων (2-step classifier)

110 Δένδρα απόφασης (Decision Trees) Η πρώτη σειρά αναλύσεων που πραγματοποιήσαμε είναι τα δένδρα απόφασης (decision trees). Όπως έχουμε ήδη αναφέρει, πραγματοποιήθηκε παραμετρική ανάλυση μέσω της οποίας προσδιορίζαμε, ανά περίπτωση, τον βέλτιστη τιμή για το ύψος του δένδρου. Πιο συγκεκριμένα εξετάστηκαν μία σειρά από πιθανές τιμές ύψους του δένδρου, στο εύρος 2 έως 30, που αποτελεί και τη μέγιστη τιμή στην υλοποίηση δένδρου απόφασης στη βιβλιοθήκη Ml, ενώ χρησιμοποιήθηκε η τεχνική 10 folds validation, για τον προσδιορισμό της βέλτιστης τιμής. Τα αποτελέσματα της ανάλυσης, τόσο στην περίπτωση ανάλυσης κατηγοριοποίησης ενός βήματος (1-step classification), όπως και της ανάλυσης κατηγοριοποίησης 2 βημάτων (2-step classification), παρουσιάζονται στον Πιν Αριθμός εγγραφών Recall Precision Ύψος Αριθμός κόμβων :17: :21: :24: :39: :41: :57: F-Measure Χρόνος 1-step classification :15:25 2-step classification :14: :15: :18: :21: :34: :36: :52:08 Πιν. 5.4: Αποτελέσματα ανάλυσης Decision Tree Όπως είχαμε παρατηρήσει και στην περίπτωση του Higgs συνόλου δεδομένων, όσο το μέγεθος του συνόλου δεδομένων μεγαλώνει, τόσο πιο σύνθετο, ως προς το βέλτιστο ύψος του και τον αριθμό των κόμβων που περιέχονται σε αυτό, είναι το δένδρο απόφασης που προκύπτει. Επειδή σε αυτή την περίπτωση ανάλυσης, κατά τον διαμοιρασμό του αρχικού συνόλου δεδομένων στα επιμέρους υποσύνολα, λάβαμε υπόψιν μας το ποσοστό της κάθε επιμέρους κλάσης, δεν παρατηρούνται οι διαφοροποιήσεις που παρατηρήθηκαν στο Higgs σύνολο δεδομένων, όπου, σε κάποιες περιπτώσεις, για μικρότερα σύνολα δεδομένων προέκυπταν πιο σύνθετα δένδρα απόφασης. Συγκρίνοντας τον προτεινόμενο κατηγοριοποιητή δύο βημάτων (2step classifier) με την τυπική μεθοδολογία κατηγοριοποίησης (1-step classifier) παρατηρούμε ότι, ως προς την μετρική F-Measure, οι δύο μεθοδολογίες αποδίδουν παρόμοια, με το

111 96 προκύπτον δένδρο, στην περίπτωση της προτεινόμενης μεθοδολογίας, να είναι πιο απλό. Παράλληλα, για τον προσδιορισμό του μοντέλου κατηγοριοποίησης χρειάστηκε περίπου 10-15% λιγότερος χρόνος. Εδώ θα πρέπει να σημειώσουμε αναφορικά με την επεκτασιμότητα του αλγορίθμου ότι, όπως και στην περίπτωση του Higgs συνόλου δεδομένων, δεν υπάρχει αναλογία αναφορικά με το μέγεθος του συνόλου δεδομένων και τον απαιτούμενο χρόνο υπολογισμού. Πιο συγκεκριμένα, για 40 φορές μεγαλύτερο σύνολο δεδομένων (από 5000 γραμμές σε γραμμές), χρειάστηκε περίπου 3,5 φορές περισσότερος χρόνος για τον προσδιορισμό του μοντέλου. Χαρακτηριστικά έχουμε την Εικ. 5.11, στην οποία παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης. Εικ. 5.11: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι και οι δυο μέθοδοι παρουσιάζουν παρόμοια συμπεριφορά ως προς την επεκτασιμότητα του αλγορίθμου, με την μεταβολή στην προτεινόμενη μέθοδο (2- step classification) να είναι ελαφρώς μικρότερη από την περίπτωση της τυπικής μεθόδου κατηγοριοποίησης (1-step classifier).

112 Τυχαία δάση (Random Forest) Στην συνέχεια θα συνεχίσουμε την παρουσίαση των αποτελεσμάτων της ανάλυσης που αφορά τα τυχαία δάση (random forest). Όπως έχουμε ήδη αναφέρει, πραγματοποιήθηκαν και σε αυτή την περίπτωση παραμετρικές αναλύσεις αναφορικά με το μέγιστο αριθμό δένδρων, όπου εξετάστηκαν περιπτώσεις από 2 έως 60 δένδρα, με βήμα 2. Το μέγιστο ύψος κάθε δένδρου είχε ορισθεί ίσο με 10. Θα πρέπει να σημειωθεί ότι δοκιμάστηκαν και περιπτώσεις με μεγαλύτερο ύψος δένδρων, όπως και αριθμό δένδρων στο δάσος, αλλά λόγω των περιορισμένων δυνατοτήτων του cluster που παρείχε η δωρεάν έκδοση του Databricks, προέκυπτε σφάλμα καθώς ξεπερνούσαμε τη διαθέσιμη heap memory. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Precision Αριθμός δένδρων Αριθμός κόμβων :36: :49: :04: :01: :28: :42: F-Measure Χρόνος 1-step classification :29:27 2-step classification :25: :31: :43: :01: :52: :18: :45:36 Πιν.5.5: Αποτελέσματα ανάλυσης Random Forest Από τα αποτελέσματα της ανάλυσης προκύπτει ότι και σε αυτή την περίπτωση, γενικά, όσο αυξάνεται το μέγεθος του συνόλου δεδομένων, τόσο οι τιμές των μετρικών βελτιώνονται, αλλά και το βέλτιστο δάσος που προκύπτει από την ανάλυση είναι πιο σύνθετο, δηλαδή περιέχει περισσότερα δένδρα και πιο πολλούς κόμβους. Όπως και στα δένδρα απόφασης, και οι δύο μέθοδοι κατηγοριοποίησης παρουσιάζουν παρόμοια αποτελέσματα, για παράδειγμα όσο αφορά τη τιμή της F-Measure η προτεινόμενη μέθοδος εμφανίζει περίπου 0,5% μικρότερες τιμές. Όσον αφορά τον απαιτούμενο χρόνο υπολογισμού παρατηρούμε ότι η προτεινόμενη μέθοδος απαιτεί περίπου 0,5% λιγότερο χρόνο να υπολογίσει το μοντέλο, με εξαίρεση την τελευταία περίπτωση που εξετάστηκε, όπου το σύνολο δεδομένων είχε 200,000 εγγραφές, όπου απαιτήθηκε 0,1% επιπλέον χρόνος. Στην Εικ παρουσιάζουμε την μεταβολή του

113 98 απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης. Εικ. 5.12: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι αρχικά η τυπική μέθοδος κατηγοριοποίησης όπως και η προτεινόμενη παρουσιάζουν παρόμοια συμπεριφορά, με εξαίρεση την τελευταία τιμή που εξετάσαμε, όπου η διαφορά μεταξύ των δύο μεθόδων μεγάλωσε.

114 Λογιστική παλινδρόμηση πολλαπλών κλάσεων (Multinomial Logistic Regression) Στην συνέχεια θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης ταξινόμησης τύπου λογιστικής παλινδρόμησης πολλαπλών κλάσεων (multinomial logistic regression). Σε αυτή την μέθοδο δεν υπήρξε κάποια ανάλυση βελτιστοποίησης της τιμής κάποιου συντελεστή. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος step classification :00: :00: :00: :00: :01: :01: :01:56 2-step classification :00: :00: :00: :00: :00: :01: Πιν. 5.6: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης 0:01:45 Συγκρίνοντας τις τιμές που προέκυψαν από την ανάλυση προκύπτει ότι τα αποτελέσματα των δύο μεθόδων εμφανίζουν παρόμοιες τιμές, με την τιμή της F-Measure να εμφανίζει πτώση της τάξης του 4.5% στην περίπτωση της κατηγοριοποίησης δύο βημάτων, η οποία προκύπτει να είναι ταχύτερη κατά 10%. Βέβαια, πρέπει να σημειωθεί ότι σε κάθε περίπτωση οι χρόνοι που απαιτούνται για την ανάλυση είναι μικροί. Όπως και στις προηγούμενες περιπτώσεις, στην Εικ παρουσιάζουμε την μεταβολή του απαιτούμενου χρόνου, σε σχέση με τον χρόνο που απαιτήθηκε για τον υπολογισμό του μοντέλου στην περίπτωση που το σύνολο δεδομένων είχε 5000 εγγραφές, για τις δύο μεθόδους κατηγοριοποίησης.

115 100 Εικ. 5.13: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι και οι δύο μέθοδοι κατηγοριοποίησης παρουσιάζουν παρόμοια συμπεριφορά, με την μεταβολή στην περίπτωση της ανάλυσης κατηγοριοποίησης δύο βημάτων να εμφανίζεται μεγαλύτερη. Βέβαια, επειδή στην αρχική περίπτωση, των 5000 εγγραφών, η μέθοδος είναι πιο γρήγορη, γι αυτό το λόγο τελικά προκύπτει να είναι πιο γρήγορη.

116 One-Vs-Rest Ο επόμενος κατηγοριοποιητής που μελετήσαμε ήταν ο One-Vs-Rest. Σε αυτή την οικογένεια κατηγοριοποιητών, που χρησιμοποιούνται για την επίλυση του προβλήματος της κα χρησιμοποιείται ένας δυαδικός κατηγοριοποιητής ως κατηγοριοποιητής βάσης και στην συνέχεια το πρόβλημα της κατηγοριοποίησης πολλαπλών κλάσεων (multiclass classification), χρησιμοποιώντας ως κατηγοριοποιητή βάσης έναν δυαδικό κατηγοριοποιητή, όπου στην περίπτωση μας χρησιμοποιήθηκε τύπος δυαδικής λογιστικής παλινδρόμησης. Όπως αναφέραμε και στη προηγούμενη παράγραφο, δεν πραγματοποιήθηκε κάποια βελτιστοποίηση ως προς κάποιο συντελεστή. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος step classification :02: :02: :02: :02: :04: :07: :11: :01: :01: :02: :03: :04: :05: Πιν. 5.7: Αποτελέσματα ανάλυσης One-Vs-Rest 0:09:14 2-step classification Συγκρίνοντας τα αποτελέσματα των δύο μεθόδων κατηγοριοποίησης παρατηρούμε οτι η προτεινόμενη μέθοδος κατηγοριοποίησης (2-step classification) εμφανίζει μικρότερες τιμές στην μετρική F-Measure (μείωση κατά 8% περίπου), αλλά παράλληλα είναι κατά 18% πιο γρήγορη. Αντίστοιχα, συγκρίνοντας τα αποτελέσματα αυτής της μεθόδου με την περίπτωση της Λογιστικής Παλινδρόμησης (πολλαπλών κλάσεων), παρατηρούμε ότι σε αυτή την περίπτωση ο αλγόριθμος αποδίδει χειρότερα, τόσο ως προς την τιμή της μετρικής F-Measure, όσο και ως προς απαιτούμενο χρόνο για τον υπολογισμό του μοντέλου. Στην Εικ παρουσιάζεται η μεταβολή του χρόνου που απαιτείται για τον υπολογισμό του μοντέλου, σε σχέση με τον απαιτούμενο χρόνο υπολογισμού στην περίπτωση που το σύνολο δεδομένων περιλάμβανε 5000 εγγραφές.

117 102 Εικ. 5.14: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων Από την Εικ παρατηρούμε ότι, με εξαίρεση την περίπτωση όπου το μέγεθος δεδομένων είχε μέγεθος εγγραφές (10 φορές το αρχικό), οι δύο μέθοδοι παρουσιάζουν παρόμοια συμπεριφορά ως προς την επεκτασιμότητά τους, με την προτεινόμενη μέθοδο να εμφανίζει ελαφρώς μεγαλύτερη μεταβολή. Βέβαια, όπως και στην προηγούμενη περίπτωση, επειδή στην αρχική περίπτωση, των 5000 εγγραφών, η μέθοδος είναι πιο γρήγορη, γι αυτό τελικά προκύπτει να είναι πιο γρήγορη.

118 Multilayer Perceptron Τέλος, θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης κατηγοριοποιητή τύπου Multilayer Perceptron. Σε αυτή την περίπτωση εξετάστηκαν διάφορες περιπτώσεις οργάνωσης των κρυφών επιπέδων του συστήματος, οι οποίες παρουσιάζονται στον Πιν Ο χρόνος που παρουσιάζεται στα αποτελέσματα των αναλύσεων είναι ο απαιτούμενος χρόνος για τον υπολογισμό όλων των διαφορετικών περιπτώσεων, ενώ το τελικό μοντέλο που επιλέχθηκε είναι αυτό που εμφανίζει τη μεγαλύτερη τιμή Precision. Τα αποτελέσματα παρουσιάζονται στον Πίν Αριθμός εγγραφών Recall Precision F-Measure Χρόνος Κόμβοι κρυφών επιπέδων 1-step classification :09:20 [31, 35, 25, 20, 12] :14:27 [31, 35, 25, 20, 12] :32:22 [31, 40, 30, 20, 12] :01:55 [31, 40, 30, 20, 12] :30:39 [31, 40, 30, 20, 12] :55:59 [31, 35, 25, 20, 12] :59:41 [31, 35, 25, 20, 12] [24, 25, 20, 12] 2-step classification :09: :14:15 [24, 25, 20, 12] :32:41 [24, 40, 30, 20, 12] :02:01 [24, 40, 30, 20, 12] :29:44 [24, 40, 30, 20, 12] :54:06 [24, 40, 30, 20, 12] :59:29 Πιν. 5.8: Αποτελέσματα ανάλυσης Multilayer Perceptron [24, 25, 20, 12] Από τα αποτελέσματα που παρουσιάζονται στον Πιν. 5.8 παρατηρούμε ότι με την αύξηση του μεγέθους του συνόλου δεδομένων τα αποτελέσματα βελτιώνονται. Τα αποτελέσματα και στις δύο μεθόδους κατηγοριοποίησης είναι παρόμοια, τόσο ως προς την τιμή της μετρικής FMeasure όσο και στον απαιτούμενο χρόνο υπολογισμού των μοντέλων. Στην Εικ παρουσιάζεται η μεταβολή του χρόνου που απαιτείται για τον υπολογισμό του μοντέλου, σε σχέση με την μεταβολή του μεγέθους του συνόλου δεδομένων, από την οποία επιβεβαιώνεται ότι η επεκτασιμότητα και στους δύο αλγορίθμους είναι παρόμοια. Επίσης η μεταβολή στον απαιτούμενο χρόνο για τον προσδιορισμό των μοντέλων εμφανίζει γραμμική συμπεριφορά ως προς τη μεταβολή του μεγέθους της εισόδου.

119 Εικ. 5.15: Μεταβολή απαιτούμενου χρόνου υπολογισμού σε σχέση με το μέγεθος συνόλου δεδομένων 104

120 Ανάλυση κατηγοριοποίησης στο πλήρες σύνολο δεδομένων Πέρα από την ανάλυση κατηγοριοποίησης που πραγματοποιήσαμε σε υποσύνολα του συνόλου δεδομένων, πραγματοποιήθηκε και μία σειρά αναλύσεων σε ολόκληρο το σύνολο δεδομένων, χρησιμοποιώντας τα ίδια μοντέλα κατηγοριοποίησης, αλλά χωρίς να πραγματοποιείται κάποια βελτιστοποίηση ως προς τις τιμές των συντελεστών του εκάστοτε μοντέλου. Και σε αυτή την περίπτωση πραγματοποιήθηκε σύγκριση της τυπικής διαδικασίας κατηγοριοποίησης με την κατηγοριοποίηση δύο βημάτων που μελετούμε, με το πρώτο βήμα να είναι ίδιο με αυτό που παρουσιάσαμε προηγουμένης Δένδρα απόφασης (Decision Trees) Πραγματοποιήθηκε ανάλυση χρησιμοποιώντας ως κατηγοριοποιητή τα δένδρα απόφασης. Το ύψος του δένδρου θεωρήθηκε ίσο με 30, που αποτελεί και την μέγιστη τιμή που μπορεί να λάβει η μεταβλητή αυτή. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Ύψος Αριθμός κόμβων :01: :01:20 Πιν. 5.9: Αποτελέσματα ανάλυσης Decision Tree Precision F-Measure 1-step classification step classification Από τα αποτελέσματα της ανάλυσης παρατηρούμε ότι και στις δύο περιπτώσεις τα αποτελέσματα είναι ταυτόσημα, αλλά με την προτεινόμενη μέθοδο προκύπτει πιο απλό δένδρο, με την έννοια ότι περιλαμβάνει μικρότερο αριθμό κόμβων, και επίσης υπήρξε μείωση ως προς τον απαιτούμενο χρόνο για την εκπαίδευση του μοντέλου κατά 27% Τυχαία δάση (Random Forest) Ο επόμενος κατηγοριοποιητής που μελετήθηκε ήταν τα τυχαία δάση (Random Forest). Σε αυτή την περίπτωση χρησιμοποιήθηκαν 30 δένδρα στο δάσος με το μέγιστο ύψος δένδρου να είναι ίσο με 10. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Precision F-Measure 1-step classification Χρόνος Αριθμός δένδρων Αριθμός κόμβων 0:01: step classification :00:54 Πιν. 5.10: Αποτελέσματα ανάλυσης Random Forest

121 106 Από τα αποτελέσματα που παρουσιάζονται στον Πιν παρατηρούμε ότι υπήρξε μία μικρή μείωση ως προς τη τιμή της μετρικής F-Measure, της τάξης του 0.6%, αλλά επίσης υπήρξε μείωση του χρόνου εκπαίδευσης του μοντέλου κατά 30%. Όμως, το τελικό μοντέλο σε αυτή την περίπτωση προκύπτει να έχει μεγαλύτερο αριθμό κόμβων Λογιστική παλινδρόμηση πολλαπλών κλάσεων (Multinomial Logistic Regression) Στην συνέχεια χρησιμοποιήθηκε ο κατηγοριοποιητής λογιστικής παλινδρόμησης πολλαπλών κλάσεων. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Precision 1-step classification F-Measure Χρόνος :17: Πιν. 5.11: Αποτελέσματα ανάλυσης Λογιστικής Παλινδρόμησης 2-step classification 0:17:24 Από τα αποτελέσματα της ανάλυσης παρατηρούμε ότι υπάρχει μία μείωση στη τιμή της μετρικής F-Measure κατά 7% περίπου, ενώ αντίστοιχα ο χρόνος εκπαίδευσης έχει μειωθεί κατά 2% περίπου One-Vs-Rest Στη συνέχεια, στον Πιν παρουσιάζουμε τα αποτελέσματα του κατηγοριοποιητή One-VsRest. Αριθμός στηλών Αριθμός εγγραφών Recall Precision 1-step classification F-Measure Χρόνος :05: Πιν. 5.12: Αποτελέσματα ανάλυσης One-Vs-Rest 1:06:26 2-step classification Από τα αποτελέσματα του Πιν παρατηρούμε ότι εμφανίζεται μείωση στην τιμή της μετρικής F-Measure κατά 8.5% περίπου, αλλά σε αυτή την περίπτωση για την εκπαίδευση του μοντέλου απαιτήθηκε ελαφρώς περισσότερος χρόνος, κατά 1%.

122 Multilayer Perceptron Τέλος, πραγματοποιήθηκε ανάλυση χρησιμοποιώντας κατηγοριοποιητή τύπου Multilayer Perceptron. Σε αυτή την περίπτωση χρησιμοποιήθηκαν 3 κρυφά επίπεδα με 40, 30 και 20 κόμβους στο καθένα. Τα αποτελέσματα της ανάλυσης παρουσιάζονται στον Πιν Αριθμός στηλών Αριθμός εγγραφών Recall Χρόνος Κόμβοι κρυφών επιπέδων :58:31 [31, 40, 30, 20, 12] :18:44 Πιν. 5.13: Αποτελέσματα ανάλυσης Multilayer Perceptron [24, 40, 30, 20, 12] Precision F-Measure 1-step classification step classification Από τα αποτελέσματα του Πίν παρατηρούμε ότι εμφανίζεται μείωση στην τιμή της μετρικής F-Measure κατά 8.5% περίπου, αλλά σε αυτή την περίπτωση ο απαιτούμενος χρόνος για την εκπαίδευση του μοντέλου αυξήθηκε κατά 34,5% Γενικά συμπεράσματα Συγκρίνοντας τις δύο περιπτώσεις που αναλύσαμε, παρατηρούμε ότι ο προτεινόμενος τρόπος κατηγοριοποίησης δύο βημάτων φαίνεται να έχει προοπτικές. Στην πλειονότητα των περιπτώσεων εμφάνισε ελαφρώς μειωμένα αποτελέσματα στην μετρική F-Measure σε σχέση με την τυπική μέθοδο κατηγοριοποίησης ενός βήματος, ενώ συνήθως απαιτούσε λιγότερο χρόνο για τον υπολογισμό του μοντέλου ταξινόμησης. Επίσης, στις περιπτώσεις των δένδρων απόφασης (Decision Trees) καθώς και των τυχαίων δασών (Random Forest), τα τελικά μοντέλα κατηγοριοποίησης που προέκυπταν ήταν πιο απλά. Βέβαια, η μεθοδολογία αυτή χρίζει επιπλέον διερεύνησης. Αρχικά θα χρειαστεί να εφαρμοστεί και σε περισσότερα σύνολα δεδομένων, τόσο με δύο όσο και με πολλαπλές κλάσεις εξόδου, ώστε να μελετηθεί αν τα συμπεράσματα της παρούσας εργασίας μπορούν να γενικευθούν. Ένα ακόμα στοιχείο που κρίνεται σκόπιμο να εξεταστεί είναι η προσπάθεια βελτιστοποίησης και επιπλέον μεταβλητών, ανάλογα με το μοντέλο κατηγοριοποίησης που εξετάζουμε κάθε φορά. Επιπλέον κρίνεται σκόπιμο να πραγματοποιηθεί και διερεύνηση ως προς την επίδραση του μεγέθους του τμήματος του συνόλου δεδομένων που θα χρησιμοποιηθεί για την αρχική κατηγοριοποίηση, όπως επίσης και της συνάρτησης μέσω της οποίας θα επιλέγονται τα χαρακτηριστικά που θα χρησιμοποιηθούν στο δεύτερο βήμα της ανάλυσης.

123 Collaborative Filtering Σε αυτό το κεφάλαιο θα παρουσιάσουμε τα αποτελέσματα της ανάλυσης που εμπίπτουν στην κατηγορία Συνεργατικού Φιλτραρίσματος (Collaborative Filtering). Για την πραγματοποίηση αυτής της κατηγορίας ανάλυσης χρησιμοποιήθηκε ένα σύνολο δεδομένων που παρέχεται από την Amazon1 και αφορά κριτικές για ταινίες2[69] Περιγραφή του συνόλου δεδομένων - Προεπεξεργασία Πριν ξεκινήσουμε την παρουσίαση των αποτελεσμάτων είναι χρήσιμο να παρουσιάσουμε το σύνολο δεδομένων που θα αναλύσουμε. Πιο συγκεκριμένα αυτό περιλαμβάνει κριτικές ταινιών για ένα διάστημα μεγαλύτερο των 10 ετών, έως τον Οκτώβριο του Ένα τμήμα του συνόλου δεδομένων παρουσιάζεται στην Εικ. 6.1 που ακολουθεί. Εικ. 6.1: Μέρος συνόλου δεδομένων Από την εικόνα παρατηρούμε ότι για κάθε εγγραφή το σύνολο δεδομένων περιλαμβάνει ένα σύνολο χαρακτηριστικών. Μία τυπική εγγραφή παρουσιάζεται στην Εικ. 6.2, με βάση την οποία θα περιγράψουμε τα επιμέρους χαρακτηριστικά

124 109 Εικ. 6.2: Περιγραφή εγγραφής του συνόλου δεδομένων 1 Η πρώτη ετικέτα αφορά τον κωδικό του προϊόντος (τίτλο ταινίας). Ο προσδιορισμός του έχει πραγματοποιηθεί με βάση το Amazon Standard Identification Number (ASIN) 2, που είναι ένας αλφαριθμητικός μοναδιαίος προσδιοριστής (alphanumeric unique identifier) για το προϊόν και έχει ορισθεί από την Amazon. Η δεύτερη ετικέτα αφορά το χαρακτηριστικό κωδικό (id) του εκάστοτε χρήστη, ενώ η τρίτη ετικέτα το ψευδώνυμό (username) στην Amazon. Στην συνέχεια δίνεται το ποσοστό των χρηστών το οποίο θεωρεί το σχολιασμό αυτό χρήσιμο. Αυτό το χαρακτηριστικό αν και δεν λήφθηκε υπόψιν στην παρούσα ανάλυση, εν τούτοις είναι εν δυνάμει χρήσιμο, αν θελήσουμε να δώσουμε βάρη στο εκάστοτε σχόλιο, ώστε σχόλια που θεωρήθηκαν πιο χρήσιμα από μεγαλύτερο μέρος χρηστών, να λαμβάνουν και μεγαλύτερο βάρος στην εκτέλεση του αλγορίθμου. Η επόμενη ετικέτα αφορά την βαθμολογία που έδωσε ο χρήστης στην ταινία, που λαμβάνει τιμές από 1.0 έως 5.0. Στην συνέχεια περιλαμβάνεται το UNIX timestamp (χρονόσημο) της εγγραφής. Τέλος περιέχονται δύο ετικέτες με ελεύθερο κείμενο, που στην μία περιλαμβάνεται μία περίληψη της κριτικής και στην τελευταία η κριτική. Πρέπει να σημειωθεί σε αυτό το σημείο ότι και αυτές οι δύο ετικέτες αγνοήθηκαν κατά την ανάλυση, αλλά και αυτές είναι εν δυνάμει χρήσιμες σε επέκταση του αλγορίθμου ώστε να συμπεριλαμβάνει και άλλα είδη ανάλυσης όπως ανάλυση συναισθήματος (sentiment analysis). Στην συνέχεια θα παρουσιάσουμε την προεπεξεργασία που πραγματοποιήθηκε στα δεδομένα. Το πρώτο στάδιο ήταν η μετατροπή τους σε κατάλληλη μορφή για την εισαγωγή τους στο Databricks. Τα τελικά αρχεία είναι της μορφής csv (comma-separated values) 3 με την χρήση του χαρακτήρα, ως διαχωριστή. Για να επιτευχθεί αυτό, στα αρχικά δεδομένα χρησιμοποιώντας ένα script υλοποιημένο σε Python αντικαταστάθηκε ο χαρακτήρας, με κενό. Αυτή η μετατροπή δεν επηρεάζει την παρούσα ανάλυση καθώς οι αλλαγές που πραγματοποιούνται στο ελεύθερο κείμενο το οποίο αφενός δεν λαμβάνεται υπόψη, αλλά και σε περίπτωση που θελήσουμε να πραγματοποιήσουμε ανάλυση συναισθήματος τα σημεία στίξης αγνοούνται [70]. Στην συνέχεια, χωρίσαμε τις ετικέτες με τον χαρακτήρα, ενώ η κάθε εγγραφή καταλάμβανε και μία σειρά στο σύνολο δεδομένων και εισαγάγαμε τα δεδομένα στο Databricks. Με τα δεδομένα αυτά δημιουργήσαμε ένα dataframe και ορίσαμε τους σωστούς τίτλους στην εκάστοτε στήλη χαρακτηριστικών, υπολογίζοντας τον αριθμό εγγραφών του συνόλου δεδομένων. Το αποτέλεσμα παρουσιάζεται στην Εικ

125 110 Εικ. 6.3: Μέγεθος συνόλου δεδομένων Από την Εικ. 6.3 παρατηρούμε ότι το μέγεθος του συνόλου δεδομένων, όπως αυτό το εισαγάγαμε στο Databricks, είναι μεγαλύτερο από το αναμενόμενο. Προκειμένου να εντοπιστεί το πρόβλημα χρησιμοποιήσαμε το γεγονός ότι κάθε τιμή χαρακτηριστικών του συνόλου δεδομένων ξεκινάει με ένα δεδομένο αλφαριθμητικό. Με βάση αυτό δημιουργήθηκε ένα καινούριο Dataframe με τις εγγραφές εκείνες οι οποίες δεν υπακούν σε αυτό τον κανόνα. Χαρακτηριστικά έχουμε την Εικ. 6.4 Εικ. 6.4: Εσφαλμένες εγγραφές του συνόλου δεδομένων Παρατηρούμε ότι το μέγεθος του συνόλου αυτού δεδομένων (16 εγγραφές) ισοδυναμεί με τον αριθμό των επιπλέον εγγραφών. Στην συνέχεια (Εικ. 6.5) παρουσιάζουμε αυτό το σύνολο δεδομένων. Εικ. 6.5: Σύνολο δεδομένων με εσφαλμένες εγγραφές Παρατηρούμε ότι το σύνολο αυτό των δεδομένων αποτελείται από μία εγγραφή και στην πλειονότητα του περιλαμβάνει ελεύθερο κείμενο, το οποίο όπως έχουμε ήδη αναφέρει δεν λαμβάνουμε υπ όψιν στην ανάλυση. Επιλέχθηκε να αγνοήσουμε αυτές τις εγγραφές και να δημιουργήσουμε με τις υπόλοιπες το καθαρό σύνολο δεδομένων. Αυτό παρουσιάζεται στην Εικ. 6.6 Εικ. 6.6: Δημιουργία καθαρού συνόλου δεδομένων

126 111 Από την Εικ. 6.6 παρατηρούμε ότι το τελικό μέγεθος του συνόλου δεδομένων έχει το επιθυμητό μέγεθος εγγραφών. Στην Εικ. 6.7 παρουσιάζεται ένα μέρος του καθαρού συνόλου δεδομένων. Εικ. 6.7: Μέρος του καθαρού συνόλου δεδομένων Από τη στιγμή που δημιουργήσαμε το καθαρό σύνολο δεδομένων, το επόμενο στάδιο είναι να δημιουργήσουμε ένα Dataframe που θα περιλαμβάνει μόνο τα ζητούμενα χαρακτηριστικά και θα έχουμε αφαιρέσει το δεδομένο αλφαριθμητικό με το οποίο ξεκινάει. Όπως αναφέρθηκε και προηγουμένως, τα χαρακτηριστικά τα οποία επιλέξαμε να χρησιμοποιήσουμε είναι το productid που αποτελεί χαρακτηριστικό της εκάστοτε ταινίας, το userid ως χαρακτηριστικό για τον εκάστοτε χρήση και το score που αποτελεί την βαθμολογία του εκάστοτε χρήστη στην ταινία. Η δομή του τελικού Dataframe παρουσιάζεται στην Εικ. 6.8 Εικ. 6.8: Δομή του τελικού συνόλου δεδομένων Τέλος, στην Εικ. 6.9 παρουσιάζεται ένα μέρος αυτού του συνόλου δεδομένων.

127 112 Εικ. 6.9: Μέρος του τελικού συνόλου δεδομένων Αφού πλέον έχουμε ένα καθαρό σύνολο δεδομένων, και έχουμε ξεκαθαρίσει τα επιμέρους χαρακτηριστικά του που θα χρησιμοποιήσουμε στην ανάλυση, το επόμενο στάδιο της προεπεξεργασίας αποτελείται από τη μετατροπή του συνόλου δεδομένων σε μορφή η οποία είναι συμβατή από το Spark. Σύμφωνα με τις οδηγίες (documentation) του Spark, προκειμένου να εκτελέσουμε τις αναλύσεις θα πρέπει να είναι τύπου ακεραίου (Int), αλλά στο σύνολο δεδομένων που έχουμε το productid αλλά και userid είναι τύπου αλφαριθμητικού (String). Το Spark παρέχει τη δυνατότητα να μετατρέψουμε, σε κατανεμημένο περιβάλλον, τους τύπους των χαρακτηριστικών μέσω της ιδιότητας StringIndexer 1, η οποία κωδικοποιεί μία στήλη αλφαριθμητικών σε μια στήλη με δείκτες, ανάλογα με το πόσο συχνά εμφανίζεται η εκάστοτε εγγραφή στη στήλη αλφαριθμητικών. Η διαδικασία αυτή παρουσιάζεται στην Εικ Εικ. 6.10: Μετατροπή τύπου δεδομένων σε ακεραίους Από τα αποτελέσματα παρατηρούμε ότι το τελικό μέγεθος του συνόλου δεδομένων δεν μεταβλήθηκε. Στην Εικ παρουσιάζουμε ένα μέρος του Dataframe που δημιουργήθηκε. 1

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Μεγάλα Δεδομένα ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου @ 2017 Bytes 1KB = 2 10 1MB = 2 20 1GB = 2 30 1TB = 2 40 1PB = 2 50 1EB = 2 60 1ZB =

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Μεγάλα Δεδομένα ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου Bytes 1KB = 2 10 1MB = 2 20 1GB = 2 30 1TB = 2 40 1PB = 2 50 1EB = 2 60 1ZB = 2 70 1YB

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

Διαβάστε περισσότερα

Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων)

Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων) Cloud Computing & Data Management (Υπολογιστικά Νέφη & Διαχείριση Δεδομένων) Δημήτρης Ζεϊναλιπούρ Λέκτορας Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου Αξιοποίηση Νέων Τεχνολογιών και η Εφαρμογή τους στα Κυπριακά

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε

Διαβάστε περισσότερα

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud

Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Η Oracle ανακοίνωσε την πιο ολοκληρωμένη λύση στον τομέα της Ανάλυσης δεδομένων στο Cloud Το Oracle Analytics Cloud αποτελεί ένα ολοκληρωμένο σύνολο δυνατοτήτων που περιλαμβάνει έτοιμο περιεχόμενο, εξειδικευμένα

Διαβάστε περισσότερα

Κεφάλαιο 20. Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 20. Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 20 Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Τεχνητή Νοηµοσύνη, B' Έκδοση - 1 - Ανακάλυψη Γνώσης σε

Διαβάστε περισσότερα

Information Technology for Business

Information Technology for Business Information Technology for Business! Lecturer: N. Kyritsis, MBA, Ph.D. Candidate!! e-mail: kyritsis@ist.edu.gr Διαχείριση Επιχειρηματικών Δεδομένων - Databases Ορισμός Βάσης Δεδομένων Συλλογή συναφών αρχείων

Διαβάστε περισσότερα

Βάσεις Δεδομένων Ενότητα 1

Βάσεις Δεδομένων Ενότητα 1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 1: Εισαγωγή στις Ιωάννης Μανωλόπουλος, Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

Διαβάστε περισσότερα

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

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #02 Ιστορική αναδρομή Σχετικές επιστημονικές περιοχές 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής oard Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή ιατριβή Τίτλος ιατριβής Masters Thesis Title Ονοµατεπώνυµο Φοιτητή Πατρώνυµο Ανάπτυξη διαδικτυακής

Διαβάστε περισσότερα

Μελέτη και Ανάπτυξη ενός Εργαλείου Υποβοήθησης στη Σχεδίαση µίας Βάσης εδοµένων Τύπου Graph από Τελικούς Χρήστες

Μελέτη και Ανάπτυξη ενός Εργαλείου Υποβοήθησης στη Σχεδίαση µίας Βάσης εδοµένων Τύπου Graph από Τελικούς Χρήστες Μελέτη και Ανάπτυξη ενός Εργαλείου Υποβοήθησης στη Σχεδίαση µίας Βάσης εδοµένων Τύπου Graph από Τελικούς Χρήστες ηµήτρης Λαµπούδης Επιβλέπων: Νικόλαος Πρωτόγερος ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ ΔΕΔΟΜΕΝΑ ΔΕΔΟΜΕΝΑ ΠΛΗΡΟΦΟΡΙΑ ΑΡΙΘΜΟΙ ΣΥΜΒΟΛΑ - ΛΕΞΕΙΣ ΟΠΟΙΑΔΗΠΟΤΕ ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΣΥΜΒΑΙΝΕΙ ΣΕ ΜΙΑ ΟΙΚΟΝΟΜΙΚΗ ΜΟΝΑΔΑ ΠΡΕΠΕΙ ΝΑ ΜΕΤΡΕΙΤΑΙ ΚΑΙ ΝΑ ΚΑΤΑΓΡΑΦΕΤΑΙ ΟΡΓΑΝΩΣΗ ΚΑΤΑΓΡΑΦΗΣ

Διαβάστε περισσότερα

Στην Εποχή των Μεγάλων Δεδοµένων (Big Data)

Στην Εποχή των Μεγάλων Δεδοµένων (Big Data) Στην Εποχή των Μεγάλων Δεδοµένων (Big Data) Μίνως Γαροφαλάκης Πολυτεχνείο Κρήτης Εργαστήριο Τεχνολογίας Λογισµικού και Δικτυακών Εφαρµογών (SoftNet) http://www.softnet.tuc.gr/~minos/ ΜΕΓΑΛΑ Δεδοµένα (Big

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε Πτυχιακή Εργασία Φοιτητής: Γεμενής Κωνσταντίνος ΑΜ: 30931 Επιβλέπων Καθηγητής Κοκκόσης Απόστολος Λέκτορας

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήµη Δεδοµένων

Εισαγωγή στην Επιστήµη Δεδοµένων Εισαγωγή στην Επιστήµη Δεδοµένων Δρ. Δηµήτριος Τσέλιος Επίκουρος Καθηγητής ΤΕΙ Θεσσαλίας Τµήµα Διοίκησης Επιχειρήσεων Οι διαλέξεις χρησιµοποιούν το βιβλίο Data Science for Business των Foster Provost καιtom

Διαβάστε περισσότερα

Σχολή Μηχανικής και Τεχνολογίας. Πτυχιακή εργασία

Σχολή Μηχανικής και Τεχνολογίας. Πτυχιακή εργασία Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία Ευφυής επεξεργασία και ανάλυση δεδομένων μεγάλου όγκου: Συλλογή και επεξεργασία δεδομένων μεγάλης συχνότητας και εύρους σε πραγματικό χρόνο για τον εντοπισμό

Διαβάστε περισσότερα

http://www.gunet.gr/09_02.php

http://www.gunet.gr/09_02.php ΑΚΑΔΗΜΑΪΚΟ ΔΙΑΔΙΚΤΥΟ ΚΕΝΤΡΟ ΛΕΙΤΟΥΡΓΙΑΣ & ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥΠΟΛΗ 157 84 ΑΘΗΝΑ ΤΗΛ.: (210) 7275611 FAX: (210) 7275601 www.gunet.gr ΑΠΟΤΕΛΕΣΜΑΤΑ ΔΙΑΒΟΥΛΕΥΣΗΣ Κωδ ΟΠΣ (MIS)

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Data Mining - Classification Data Mining Ανακάλυψη προτύπων σε μεγάλο όγκο δεδομένων. Σαν πεδίο περιλαμβάνει κλάσεις εργασιών: Anomaly Detection:

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΠΙΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΔΟΣΗΣ ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ ΜΕ ΣΥΣΚΕΥΕΣ ΔΙΑΚΡΙΤΩΝ ΤΙΜΩΝ ΙΣΧΥΟΣ ΜΕ ΤΗ ΧΡΗΣΗ

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Επερωτήσεις σύζευξης με κατάταξη

Επερωτήσεις σύζευξης με κατάταξη Επερωτήσεις σύζευξης με κατάταξη Επερωτήσεις κατάταξης Top-K queries Οι επερωτήσεις κατάταξης επιστρέφουν τις k απαντήσεις που ταιριάζουν καλύτερα με τις προτιμήσεις του χρήστη. Επερωτήσεις κατάταξης Top-K

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ 8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ Στόχος του εργαστηρίου αυτού είναι να δείξει πώς τα εργαστήρια με τα δεδομένα της ICAP μπορούν να υλοποιηθούν χωρίς τη χρήση SQL Server, χρησιμοποιώντας μόνον Excel και Rapid

Διαβάστε περισσότερα

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ 1. ΓΕΝΙΚΑ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Μεταπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ ΑΥΤΟΤΕΛΕΙΣ

Διαβάστε περισσότερα

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

Διαβάστε περισσότερα

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι.

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι. Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι. Πτυχιιακή Εργασίία Φοιτητής: Δημήτριος Παπαοικονόμου ΑΜ: 36712

Διαβάστε περισσότερα

Γιώργος Γιαννής, Καθηγητής Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Μεταφορών και Συγκοινωνιακής Υποδομής

Γιώργος Γιαννής, Καθηγητής Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Μεταφορών και Συγκοινωνιακής Υποδομής Με την επίσημη υποστήριξη: Γιώργος Γιαννής, Καθηγητής Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Μεταφορών και Συγκοινωνιακής Υποδομής Διημερίδα ITS Hellas «Ευφυή Συστήματα Μεταφορών & Eξελίξεις στην Ελλάδα» Αθήνα,

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Διπλωματική Εργασία Μεταπτυχιακού Προγράμματος στην Εφαρμοσμένη Πληροφορική Κατεύθυνση: Συστήματα Υπολογιστών

Διαβάστε περισσότερα

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2 ! Βρείτε το δεκαεξαδικό ισοδύναµο του σχήµατος µπιτ 110011100010 Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E 0010 2 Άρα το δεκαεξαδικό ισοδύναµο είναι CE2 2 !

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

Ο νοσηλευτικός ρόλος στην πρόληψη του μελανώματος

Ο νοσηλευτικός ρόλος στην πρόληψη του μελανώματος ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή διατριβή Ο νοσηλευτικός ρόλος στην πρόληψη του μελανώματος Ονοματεπώνυμο: Αρτέμης Παναγιώτου Επιβλέπων καθηγητής: Δρ. Αντρέας Χαραλάμπους

Διαβάστε περισσότερα

Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB. Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ

Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB. Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ Γεω-χωρικές υπηρεσίες και τεχνολογίες WEB Βασίλειος Βεσκούκης Μηχανικός ΗΥ, Επ.Καθ. ΕΜΠ Ο κύκλος του Computing Από το mainframe στο PC και από το PC στο cloud Διαδίκτυο: εφαρμογές, media, επικοινωνία "Smart

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή εργασία ΑΓΧΟΣ ΚΑΙ ΚΑΤΑΘΛΙΨΗ ΣΕ ΓΥΝΑΙΚΕΣ ΜΕ ΚΑΡΚΙΝΟΥ ΤΟΥ ΜΑΣΤΟΥ ΜΕΤΑ ΑΠΟ ΜΑΣΤΕΚΤΟΜΗ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή εργασία ΑΓΧΟΣ ΚΑΙ ΚΑΤΑΘΛΙΨΗ ΣΕ ΓΥΝΑΙΚΕΣ ΜΕ ΚΑΡΚΙΝΟΥ ΤΟΥ ΜΑΣΤΟΥ ΜΕΤΑ ΑΠΟ ΜΑΣΤΕΚΤΟΜΗ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή εργασία ΑΓΧΟΣ ΚΑΙ ΚΑΤΑΘΛΙΨΗ ΣΕ ΓΥΝΑΙΚΕΣ ΜΕ ΚΑΡΚΙΝΟΥ ΤΟΥ ΜΑΣΤΟΥ ΜΕΤΑ ΑΠΟ ΜΑΣΤΕΚΤΟΜΗ ΧΡΥΣΟΒΑΛΑΝΤΗΣ ΒΑΣΙΛΕΙΟΥ ΛΕΜΕΣΟΣ 2014 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

Διαχείριση Βάσης Δεδομένων (dbadmin)

Διαχείριση Βάσης Δεδομένων (dbadmin) Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Εμπορική Διαχείριση > Διαχείριση Βάσης Δεδομένων (dbadmin) Διαχείριση Βάσης Δεδομένων (dbadmin) Μέσα από τη διαχείριση βάσης δεδομένων

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ Δ.Π.Μ.Σ: «Εφαρμοσμένες Μαθηματικές Επιστήμες» 2008

Διαβάστε περισσότερα

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας Τεχνικές Μείωσης Διαστάσεων Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας 1 Εισαγωγή Το μεγαλύτερο μέρος των δεδομένων που καλούμαστε να επεξεργαστούμε είναι πολυδιάστατα.

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή Εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή Εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή Εργασία Η ΕΠΑΓΓΕΛΜΑΤΙΚΗ ΕΞΟΥΘΕΝΩΣΗ ΠΟΥ ΒΙΩΝΕΙ ΤΟ ΝΟΣΗΛΕΥΤΙΚΟ ΠΡΟΣΩΠΙΚΟ ΣΤΙΣ ΜΟΝΑΔΕΣ ΕΝΑΤΙΚΗΣ ΘΕΡΑΠΕΙΑΣ Άντρη Αγαθαγγέλου Λεμεσός 2012 i ΤΕΧΝΟΛΟΓΙΚΟ

Διαβάστε περισσότερα

ΑΞΙΟΛΟΓΗΣΗ ΑΦΗΓΗΜΑΤΙΚΩΝ ΙΚΑΝΟΤΗΤΩΝ ΜΕΣΩ ΧΟΡΗΓΗΣΗΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ ΜΑΙΝ ΣΕ ΤΥΠΙΚΩΣ ΑΝΑΠΤΥΣΣΟΜΕΝΑ ΠΑΙΔΙΑ ΣΤΗΝ ΚΥΠΡΟ

ΑΞΙΟΛΟΓΗΣΗ ΑΦΗΓΗΜΑΤΙΚΩΝ ΙΚΑΝΟΤΗΤΩΝ ΜΕΣΩ ΧΟΡΗΓΗΣΗΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ ΜΑΙΝ ΣΕ ΤΥΠΙΚΩΣ ΑΝΑΠΤΥΣΣΟΜΕΝΑ ΠΑΙΔΙΑ ΣΤΗΝ ΚΥΠΡΟ Σχολή Επιστημών Υγείας Πτυχιακή εργασία ΑΞΙΟΛΟΓΗΣΗ ΑΦΗΓΗΜΑΤΙΚΩΝ ΙΚΑΝΟΤΗΤΩΝ ΜΕΣΩ ΧΟΡΗΓΗΣΗΣ ΤΟΥ ΕΡΓΑΛΕΙΟΥ ΜΑΙΝ ΣΕ ΤΥΠΙΚΩΣ ΑΝΑΠΤΥΣΣΟΜΕΝΑ ΠΑΙΔΙΑ ΣΤΗΝ ΚΥΠΡΟ Γεωργίου Μύρια Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον Δανάη Κούτρα Eργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Εθνικό Μετσόβιο Πολυτεχνείο Θέματα Σκοπός της διπλωματικής

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Χρύσω Κωνσταντίνου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

Η παραγωγή αναφορικών προτάσεων από κυπριόπουλα παιδιά με Γλωσσική Διαταραχή

Η παραγωγή αναφορικών προτάσεων από κυπριόπουλα παιδιά με Γλωσσική Διαταραχή Σχολή Επιστημών Υγείας Πτυχιακή εργασία Η παραγωγή αναφορικών προτάσεων από κυπριόπουλα παιδιά με Γλωσσική Διαταραχή Κωνσταντίνα Χατζηκαλλή Λεμεσός, Ιούνιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ

Διαβάστε περισσότερα

NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS SCHOOL OF SCIENCE FACULTY OF INFORMATICS AND TELECOMMUNICATIONS

NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS SCHOOL OF SCIENCE FACULTY OF INFORMATICS AND TELECOMMUNICATIONS NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS SCHOOL OF SCIENCE FACULTY OF INFORMATICS AND TELECOMMUNICATIONS INTERDICIPLINARY POSTGRADUATE PROGRAMME "INFORMATION TECHNOLOGIES IN MEDICINE AND BIOLOGY"

Διαβάστε περισσότερα

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

Διαβάστε περισσότερα

ΣΤΙΓΜΙΑΙΑ ΚΑΤΑΣΚΕΥΗ ΣΤΕΡΕΟΥ ΜΕΙΓΜΑΤΟΣ ΥΛΙΚΟΥ ΜΕΣΑ ΑΠΟ ΕΛΕΓΧΟΜΕΝΗ ΦΥΣΙΚΗ ΔΙΑΔΙΚΑΣΙΑ

ΣΤΙΓΜΙΑΙΑ ΚΑΤΑΣΚΕΥΗ ΣΤΕΡΕΟΥ ΜΕΙΓΜΑΤΟΣ ΥΛΙΚΟΥ ΜΕΣΑ ΑΠΟ ΕΛΕΓΧΟΜΕΝΗ ΦΥΣΙΚΗ ΔΙΑΔΙΚΑΣΙΑ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΣΤΙΓΜΙΑΙΑ ΚΑΤΑΣΚΕΥΗ ΣΤΕΡΕΟΥ ΜΕΙΓΜΑΤΟΣ ΥΛΙΚΟΥ ΜΕΣΑ ΑΠΟ ΕΛΕΓΧΟΜΕΝΗ ΦΥΣΙΚΗ ΔΙΑΔΙΚΑΣΙΑ Χριστόδουλος Χριστοδούλου Λεμεσός, Μάϊος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν

Διαβάστε περισσότερα

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Ηλίας Κωνσταντίνου Λεμεσός,

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο 2016-2017 Υποχρεωτική εργασία Τα τελευταία χρόνια, λόγω της τεράστιας αύξησης της ποσότητας της πληροφορίας που έχουμε

Διαβάστε περισσότερα

Αυτόματο Σύστημα Εύρεσης και Κατηγοριοποίησης Ευκαιριών Εργασίας Μηχανικών (ΕΥΡΗΚΑ)

Αυτόματο Σύστημα Εύρεσης και Κατηγοριοποίησης Ευκαιριών Εργασίας Μηχανικών (ΕΥΡΗΚΑ) Αυτόματο Σύστημα Εύρεσης και Κατηγοριοποίησης Ευκαιριών Εργασίας Μηχανικών (ΕΥΡΗΚΑ) Λάζαρος Πολυμενάκος, καθηγητής ΑΙΤ Ηρακλής Καπρίτσας, telia.co.gr Βασίλης Κατσάρης, telia.co.gr Σύνοψη Το σύστημα ΕΥΡΗΚΑ

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ

Διαβάστε περισσότερα

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Κ Ο Τ Ι Ν Η Ι Σ Α Β Ε Λ Λ Α Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Π Ε 8 6 Ν Ε Ι Ρ Ο Σ Α Ν Τ Ω ΝΙ Ο Σ Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή εργασία ΔΙΕΡΕΥΝΗΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΖΩΗΣ ΣΕ ΕΦΗΒΟΥΣ ΜΕ ΣΑΚΧΑΡΩΔΗ ΔΙΑΒΗΤΗ.

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή εργασία ΔΙΕΡΕΥΝΗΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΖΩΗΣ ΣΕ ΕΦΗΒΟΥΣ ΜΕ ΣΑΚΧΑΡΩΔΗ ΔΙΑΒΗΤΗ. ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή εργασία ΔΙΕΡΕΥΝΗΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΖΩΗΣ ΣΕ ΕΦΗΒΟΥΣ ΜΕ ΣΑΚΧΑΡΩΔΗ ΔΙΑΒΗΤΗ Φίλιππος Λουκά Λεμεσός 2014 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

Symantec Backup Exec System Recovery 7.0 Server Edition. Πλήρης Επαναφορά Συστημάτων Windows Μέσα σε Λίγα Λεπτά και όχι σε Ώρες ή Ημέρες

Symantec Backup Exec System Recovery 7.0 Server Edition. Πλήρης Επαναφορά Συστημάτων Windows Μέσα σε Λίγα Λεπτά και όχι σε Ώρες ή Ημέρες ΒΑΣΙΚΑ ΠΛΕΟΝΕΚΤΗΜΑΤΑ Πλήρης Επαναφορά Συστημάτων Windows Μέσα σε Λίγα Λεπτά και όχι σε Ώρες ή Ημέρες Η Symantec έχει επανειλημμένα καταδείξει δημόσια ότι το Backup Exec System Recovery μπορεί να εκτελέσει

Διαβάστε περισσότερα

2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ: ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ Επιβλέπων Καθηγητής: Δρ. Νίκος Μίτλεττον Η ΣΧΕΣΗ ΤΟΥ ΜΗΤΡΙΚΟΥ ΘΗΛΑΣΜΟΥ ΜΕ ΤΗΝ ΕΜΦΑΝΙΣΗ ΣΑΚΧΑΡΩΔΗ ΔΙΑΒΗΤΗ ΤΥΠΟΥ 2 ΣΤΗΝ ΠΑΙΔΙΚΗ ΗΛΙΚΙΑ Ονοματεπώνυμο: Ιωσηφίνα

Διαβάστε περισσότερα

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS)

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) ρ. ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ xalkias@hua.gr Χ. Χαλκιάς - Εισαγωγή στα GIS 1 Ορισµοί ΓΠΣ Ένα γεωγραφικό πληροφοριακό σύστηµα Geographic Information

Διαβάστε περισσότερα

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα Τεχνητή Νοημοσύνη (Artificial Intelligence) Ανάπτυξη μεθόδων και τεχνολογιών για την επίλυση προβλημάτων στα οποία ο άνθρωπος υπερέχει (?) του υπολογιστή Συλλογισμοί

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑσβεστΑΣ ΤμΗμα ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Ιατρική Πληροφορική Δρ. Π. ΑσβεστΑΣ ΤμΗμα ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #01

Ανάκτηση Πληροφορίας. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #01 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #01 Διαδικαστικά μαθήματος Εισαγωγικές έννοιες & Ορισμοί Συστήματα ανάκτησης πληροφορίας 1

Διαβάστε περισσότερα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

Διαβάστε περισσότερα

ΔΕΛΤΙΟ ΤΥΠΟΥ ΕΡΕΥΝΑ ΧΡΗΣΗΣ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΗΣΗΣ, ΕΠΙΚΟΙΝΩΝΙΑΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ 2018

ΔΕΛΤΙΟ ΤΥΠΟΥ ΕΡΕΥΝΑ ΧΡΗΣΗΣ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΗΣΗΣ, ΕΠΙΚΟΙΝΩΝΙΑΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ 2018 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΕΛΛΗΝΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΡΧΗ Πειραιάς, 13 Δεκεμβρίου 2018 ΔΕΛΤΙΟ ΤΥΠΟΥ ΕΡΕΥΝΑ ΧΡΗΣΗΣ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΗΣΗΣ, ΕΠΙΚΟΙΝΩΝΙΑΣ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ 2018 Η Ελληνική Στατιστική

Διαβάστε περισσότερα

Η ΕΠΑΝΑΣΤΑΣΗ ΤΟΥ ΚΡΙΟΥ

Η ΕΠΑΝΑΣΤΑΣΗ ΤΟΥ ΚΡΙΟΥ Βασίλης Γ. Αγγέλης Δρ. Μηχανικός Η/Υ και Πληροφορικής Η ΕΠΑΝΑΣΤΑΣΗ ΤΟΥ ΚΡΙΟΥ Μετατρέψτε τα δεδομένα σας σε κέρδος Αθήνα Κάθε γνήσιο αντίγραφο έχει την υπογραφή του συγγραφέα Έκδοση 1 η, Copyright 2007

Διαβάστε περισσότερα

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών Τι είναι Πληροφοριακό Σύστημα και Βάση Δεδομένων Πληροφοριακό σύστημα Είναι το σύστημα, που επεξεργάζεται εισόδους, συντηρεί αρχεία και παράγει πληροφορίες κάθε μορφής. Είναι ο συνεκτικός κρίκος των υποσυστημάτων

Διαβάστε περισσότερα

Βάσεις δεδομένων. Π. Φιτσιλής

Βάσεις δεδομένων. Π. Φιτσιλής Βάσεις δεδομένων Π. Φιτσιλής pfitsilis@gmail.com Στόχοι In this chapter, you will learn: Διαφορά data και information Τι είναι database, τα είδη, και πως βοηθούνε στη λήψη αποφάσεων Η σημασία database

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

ΔΙΑΔΙΚΤΥΑΚΗ ΠΡΟΒΟΛΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ

ΔΙΑΔΙΚΤΥΑΚΗ ΠΡΟΒΟΛΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΙΔΡΥΜΑ ΝΕΟΛΑΙΑΣ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΓΕΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ ΚΑΙ ΤΕΧΝΙΚΩΝ ΕΡΓΩΝ ΤΜΗΜΑ ΤΕΧΝΙΚΗΣ ΣΤΗΡΙΞΗΣ ΕΥΡΩΠΑΙΚΩΝ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΕΝΤΡΑ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΑΠ 7/ΑΠ 8 ΔΙΑΔΙΚΤΥΑΚΗ ΠΡΟΒΟΛΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

Σχεδίαση Βάσεων Δεδομένων

Σχεδίαση Βάσεων Δεδομένων Σχεδίαση Βάσεων Δεδομένων Η ιστορία των Βάσεων Δεδομένων History of the Database 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. Στόχοι Το μάθημα αυτό καλύπτει τους ακόλουθους στόχους:

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΑΝΑΠΤΥΞΗ ΕΙΚΟΝΙΚΗΣ ΠΛΑΤΦΟΡΜΑΣ ΠΡΟΣΟΜΟΙΩΣΗΣ ΤΗΣ ΠΑΡΑΜΟΡΦΩΣΗΣ ΑΝΘΡΩΠΙΝΟΥ ΗΠΑΤΟΣ ΜΕ ΤΗ ΧΡΗΣΗ ΑΠΤΙΚΟΥ ΜΕΣΟΥ Δηµήτρης Δούνας

Διαβάστε περισσότερα

EPL 660: Lab 4 Introduction to Hadoop

EPL 660: Lab 4 Introduction to Hadoop EPL 660: Lab 4 Introduction to Hadoop Andreas Kamilaris Department of Computer Science MapReduce Πρόβλημα: Ανάγκη για επεξεργασία μεγάλου όγκου δεδομένων στα συστήματα ανάκτησης πληροφορίας. Λύση: κατανομή

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή εργασία ΔΙΕΡΕΥΝΗΣΗ ΤΟΥ ΚΛΙΜΑΤΟΣ ΑΣΦΑΛΕΙΑΣ ΤΩΝ ΑΣΘΕΝΩΝ ΣΤΟ ΝΟΣΟΚΟΜΕΙΟ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή εργασία ΔΙΕΡΕΥΝΗΣΗ ΤΟΥ ΚΛΙΜΑΤΟΣ ΑΣΦΑΛΕΙΑΣ ΤΩΝ ΑΣΘΕΝΩΝ ΣΤΟ ΝΟΣΟΚΟΜΕΙΟ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή εργασία ΔΙΕΡΕΥΝΗΣΗ ΤΟΥ ΚΛΙΜΑΤΟΣ ΑΣΦΑΛΕΙΑΣ ΤΩΝ ΑΣΘΕΝΩΝ ΣΤΟ ΝΟΣΟΚΟΜΕΙΟ ΑΝΔΡΕΑΣ ΛΕΩΝΙΔΟΥ Λεμεσός, 2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ

Διαβάστε περισσότερα

ΤΕΧΝΙΚΗ ΥΠΟΣΤΗΡΙΞΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΔΙΚΤΥΑΚΩΝ ΥΠΟΔΟΜΩΝ

ΤΕΧΝΙΚΗ ΥΠΟΣΤΗΡΙΞΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΔΙΚΤΥΑΚΩΝ ΥΠΟΔΟΜΩΝ ΤΕΧΝΙΚΗ ΥΠΟΣΤΗΡΙΞΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΔΙΚΤΥΑΚΩΝ ΥΠΟΔΟΜΩΝ ΚΕΦΑΛΑΙΟ 1 Τρόποι και Μεθοδολογία Τεχνικής Υποστήριξης Υπολογιστικά Συστήματα Υπολογιστικό Σύστημα (Υ.Σ.) λέγεται μία πλήρης υπολογιστική

Διαβάστε περισσότερα

ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΟΔΗΓΟΣ E-LEARNING

ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΟΔΗΓΟΣ E-LEARNING ΚΑΙΝΟΤΟΜΕΣ ΛΥΣΕΙΣ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗΣ ΑΘΗΝΑ 2014 1 1. Τι είναι το e-learning; Το e-learning, η ηλεκτρονική μάθηση, είναι μια διαδικασία μάθησης και ταυτόχρονα μια μεθοδολογία εξ αποστάσεως εκπαίδευσης

Διαβάστε περισσότερα

Big Data Πνιγόμαστε σε έναν ωκεανό δεδομένων

Big Data Πνιγόμαστε σε έναν ωκεανό δεδομένων Big Data Πνιγόμαστε σε έναν ωκεανό δεδομένων Παράδειγμα οι Ολυμπιακοί του Λονδίνου Τα σύμβολα Power Name Symbol 10^3 kilo k 10^6 mega M 10^9 giga G 10^12 tera T 10^15 peta P 10^18 exa E 10^21 zetta Z 10^24

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ Χριστοδούλου Αντρέας Λεμεσός 2014 2 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Διάλεξη 14: Δέντρα IV - B-Δένδρα ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 14: Δέντρα IV - B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις - Άλλα Δέντρα: Β-δένδρα, Β+-δέντρα,

Διαβάστε περισσότερα

Μαθησιακές δραστηριότητες με υπολογιστή

Μαθησιακές δραστηριότητες με υπολογιστή ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μαθησιακές δραστηριότητες με υπολογιστή Εργαλεία αναζήτησης πληροφορίας Διδάσκων: Καθηγητής Αναστάσιος Α. Μικρόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

«Αναζήτηση Γνώσης σε Νοσοκομειακά Δεδομένα»

«Αναζήτηση Γνώσης σε Νοσοκομειακά Δεδομένα» ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Μεταπτυχιακό Πρόγραμμα Σπουδών M.I.S. «Αναζήτηση Γνώσης σε Νοσοκομειακά Δεδομένα» Μεταπτυχιακός Φοιτητής: Επιβλέπων Καθηγητής: Εξεταστής Καθηγητής: Τορτοπίδης Γεώργιος Μηχανικός

Διαβάστε περισσότερα

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

Διαβάστε περισσότερα