Ανακάλυψη Γνώσης στον Τομέα του Αθλητισμού

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

Download "Ανακάλυψη Γνώσης στον Τομέα του Αθλητισμού"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανακάλυψη Γνώσης στον Τομέα του Αθλητισμού Διπλωματική Εργασία του Τότλη Ιωάννη (ΑΕΜ: 1028) Επιβλέπων Καθηγητής: Ιωάννης Βλαχάβας ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΛΙΟΣ i-

2

3 Ευχαριστίες Η παρούσα πτυχιακή εργασία με τίτλο «Ανακάλυψη Γνώσης στον Τομέα του Αθλητισμού» υλοποιήθηκε σε συνεργασία με την ομάδα Λογικού Προγραμματισμού και Εφυών Συστημάτων (LPIS) του Εργαστηρίου Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού, στα πλαίσια του προπτυχιακού προγράμματος του τμήματος πληροφορικής του Αριστοτέλειου Πανεπιστημίου Θεσσαλονίκης, κατά το ακαδημαϊκό έτος Καταρχάς θα ήθελα να εκφράσω τις αληθινές ευχαριστίες μου προς τον επιβλέπων της πτυχιακής εργασίας κ. Βλαχάβα Ιωάννη, για την εμπιστοσύνη που μου έδειξε κατά την ανάθεση της πτυχιακής εργασίας, αλλά και για την αμέριστη συμπαράσταση καθ όλη τη διάρκεια υλοποίησής της. Ακόμα θα ήθελα να ευχαριστήσω τον κ. Τσουμάκα Γρηγόριο, Λέκτορα του τμήματος Πληροφορικής του Αριστοτέλειου πανεπιστημίου, για τη συνεχή καθοδήγηση και υποστήριξη καθόλη τη διάρκεια της χρονιάς. Χωρίς τη δική του βοήθεια και ενθάρρυνση η εκπόνηση της πτυχιακής εργασίας θα ήταν αδύνατη. Θα ήθελα ακόμα να ευχαριστήσω τους φίλους μου και συμφοιτητές μου Κατσάνο Ευάγγελο, Βαρλάμη Χρυσόστομο, Τζέλη Δέσποινα, Μπίνο Ευάγγελο, Φαρδέλλα Γεώργιο και Σπανό Γεώργιο, για την ηθική αλλά και πολλές φορές έμπρακτη βοήθειά τους κατά τη διάρκεια εκπόνησης της παρούσας πτυχιακής εργασίας. Τέλος θα ήθελα να ευχαριστήσω την οικογένεια μου και τους γονείς μου, για την ηθική και οικονομική βοήθεια που μου προσέφεραν κατά τη διάρκεια των τελευταίων ετών. Η αμέριστη συμπαράστασή τους όλα αυτά τα χρόνια υπήρξε επιπλέον κίνητρο για την ολοκλήρωση των σπουδών μου. Τότλης Ιωάννης i-

4

5 Πρόλογος Ο τίτλος της πτυχιακής εργασίας «Ανακάλυψη Γνώσης στον Τομέα του Αθλητισμού» αναφέρεται σε ένα νέο σχετικά επιστημονικό πεδίο της Πληροφορικής. Πρόκειται ουσιαστικά για την εφαρμογή τεχνικών εξόρυξης δεδομένων και ανακάλυψης γνώσης σε δεδομένα του αθλητισμού. Στις σελίδες που ακολουθούν θα αναλυθούν ο επιστημονικός τομέας, το πρόβλημα που ζητήθηκε να αντιμετωπιστεί, πως αυτό προσεγγίστηκε, η εφαρμογή που υλοποιήθηκε στα πλαίσια της εργασίας αλλά και τα αποτελέσματα που αυτή παρείχε. Πιο συγκεκριμένα στο πρώτο κεφάλαιο της πτυχιακής εργασίας θα γίνει μια σύντομη ανάλυση του επιστημονικού τομέα της ανακάλυψης γνώσης σε βάσεις δεδομένων. Θα γίνει καταγραφή των σταδίων της ανακάλυψης γνώσης αλλά και των πιθανών προβλημάτων που αυτή μπορεί να συναντήσει. Στο δεύτερο κεφάλαιο θα αναφερθούμε στον τομέα της Μηχανικής Μάθησης, και ποιες είναι οι σημαντικότερες μέθοδοι του τομέα για την κατασκευή ευφυών συστημάτων. Πρόκειται για τις Ταξινόμηση και Παρεμβολή, Ομαδοποίηση, Εξόρυξη Κανόνων Συσχέτισης και η Ενισχυτική Μάθηση. Στο τρίτο κεφάλαιο θα γίνει παρουσίαση κάποιων παραδειγμάτων από τον τομέα του αθλητισμού όπου χρησιμοποιούνται τεχνικές εξόρυξης δεδομένων. Πρόκειται για εφαρμογές όπως είναι οι Advanced Scout, ISBC, Dance Cart και Score Card, που ασχολούνται με το μάρκετινγκ αθλητικών εταιριών, την προπονητική, και την πρόβλεψη αθλητικών δεδομένων ( αποτελέσματα αγώνων, επιλογές ομάδων για άνοδο κατηγορίας κ.α. ). Στόχος του κεφαλαίου είναι η ανάδειξη των πλεονεκτημάτων που οι αθλητικοί σύλλογοι αποκομίζουν με την χρήση τέτοιου είδους εφαρμογών. Στο τέταρτο κεφάλαιο θα οριστεί το πρόβλημα που θα αντιμετωπιστεί και ποιοι είναι οι στόχοι της πτυχιακής. Στην συνέχεια θα γίνει καταγραφή του τρόπου αναπαράστασης του προβλήματος, περιγραφή της αρχιτεκτονικής του συστήματος, περιγραφή της βάσεις δεδομένων αλλά και αναλυτική τεχνική ανάλυση του κώδικα της εφαρμογής που υλοποιήθηκε. -iii-

6 Στο πέμπτο κεφάλαιο θα γίνει παρουσίαση της εφαρμογής που υλοποιήθηκε μέσω συγκεκριμένων παραδειγμάτων. Θα γίνει ακόμα μια αναλυτική καταγραφή όλων των λειτουργιών που η εφαρμογή προσφέρει και πώς αυτές υλοποιούνται σε επίπεδο κώδικα. Έπειτα στο έκτο κεφάλαιο θα παρουσιαστούν τα αποτελέσματα που επιτεύχθηκαν με την χρήση της εφαρμογής. Θα αναλυθούν και θα σχολιαστούν οι επιδόσεις της εφαρμογής και θα αποτιμηθεί εάν και κατά πόσο επιτεύχθηκαν οι αρχικοί στόχοι της πτυχιακής εργασίας. Τέλος στο έβδομο κεφάλαιο θα γίνει η καταγραφή των μελλοντικών σχεδίων σχετικά με την περαιτέρω ενασχόληση με το συγκεκριμένο πρόβλημα. -iv-

7 Περιεχόμενα ΕΥΧΑΡΙΣΤΙΕΣ... I ΠΡΟΛΟΓΟΣ...III ΠΕΡΙΕΧΟΜΕΝΑ...V 1 ΑΝΑΚΑΛΥΨΗ ΓΝΩΣΗΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΑ ΣΤΑΔΙΑ ΤΗΣ ΑΝΑΚΑΛΥΨΗΣ ΓΝΩΣΗΣ Επιλογή Προεπεξεργασία Μετασχηματισμός Επιλογή αλγορίθμου και εφαρμογή του Ερμηνεία και αξιολόγηση ΠΡΟΒΛΗΜΑΤΑ ΣΤΗΝ ΑΝΑΚΑΛΥΨΗ ΓΝΩΣΗΣ Ακατάλληλα δεδομένα Ελλιπή δεδομένα Θόρυβος Αραιά δεδομένα Μέγεθος βάσης δεδομένων Δείγματα Πρόσφατα δεδομένα ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΣΤΗΝ ΑΝΑΚΑΛΥΨΗ ΓΝΩΣΗΣ Σύνθετοι τύποι δεδομένων Κατανεμημένα δεδομένα ΜΗΧΑΝΙΚΗ ΜΑΘΗΣΗ ΤΑΞΙΝΟΜΗΣΗ ΚΑΙ ΠΑΡΕΜΒΟΛΗ Δένδρα Απόφασης Μάθηση κανόνων Μάθηση κατά Bayes Μάθηση με βάση τις περιπτώσεις ΟΜΑΔΟΠΟΙΗΣΗ Αλγόριθμοι βασισμένοι σε διαχωρισμούς v-

8 2.2.2 Ιεραρχικοί αλγόριθμοι ΕΞΟΡΥΞΗ ΚΑΝΟΝΩΝ ΣΥΣΧΕΤΙΣΗΣ Αλγόριθμοι εύρεσης κανόνων συσχέτισης ΕΝΙΣΧΥΤΙΚΗ ΜΑΘΗΣΗ Το Πλαίσιο της Ενισχυτικής Μάθησης Μοντέλα Βέλτιστης Συμπεριφοράς ΕΠΙΛΟΓΟΣ AΘΛΗΤΙΣΜΟΣ ΚΑΙ ΕΞΟΡΥΞΗ ΔΕΔΟΜΕΝΩΝ ΕΙΣΑΓΩΓΗ ΑΘΛΗΤΙΚΟ ΜΑΡΚΕΤΙΝΓΚ ΠΡΟΠΟΝΗΤΙΚΗ Advanced Scout: Εξόρυξη Δεδομένων και Ανακάλυψη Γνώσης σε δεδομένα του NBA Intelligent Scout Basket ΠΡΟΒΛΕΨΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΑΓΩΝΩΝ Score Card ΆΛΛΑ ΠΑΡΑΔΕΙΓΜΑΤΑ ΕΦΑΡΜΟΓΩΝ Dance Card Η ΕΦΑΡΜΟΓΗ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ Η ΠΡΟΣΕΓΓΙΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ Επιλογή Εργαλείων - Αρχιτεκτονική Συστήματος Η επιλογή του πρωταθλήματος Η επιλογή των χαρακτηριστικών ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ Ο πίνακας match_result Ο πίνακας main_prediction Ο πίνακας team Ο πίνακας dates Οι πίνακες της προϊστορίας Άλλοι πίνακες ΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΚΩΔΙΚΑ vi-

9 4.4.1 Η κλάση mainwin Η κλάση Add_Confirmation Η κλάση Queries Η κλάση operation Η ΕΦΑΡΜΟΓΗ ΣΤΗΝ ΠΡΑΞΗ H ΚΑΡΤΕΛΑ ADD NEW MATCH RESULT Εισαγωγή ενός αγώνα στην βάση δεδομένων Ανανέωση της βάσης δεδομένων Η ΚΑΡΤΕΛΑ VIEW RESULTS-STATISTICS Προεπισκόπηση αποτελεσμάτων και συμπληρωματικών στοιχείων ΗΚΑΡΤΕΛΑ GENERATE PREDICTION Πρόβλεψη αποτελέσματος αγώνα ΑΠΟΤΕΛΕΣΜΑΤΑ ΠΑΡΑΤΗΡΗΣΕΙΣ ΑΝΑΣΚΟΠΗΣΗ ΣΤΟΧΩΝ ΚΑΙ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΑΠΟΤΕΛΕΣΜΑΤΑ ΠΑΡΑΤΗΡΗΣΕΙΣ ΠΑΝΩ ΣΕ ΔΙΑΦΟΡΕΤΙΚΑ ΣΥΝΟΛΑ ΔΕΔΟΜΕΝΩΝ Το τυπικό σύνολο δεδομένων Σύνολο δεδομένων βασισμένο στις διαφορές των χαρακτηριστικών Σύνολο δεδομένων βασισμένο στο χαρακτηριστικό rating Σύνολο δεδομένων βασισμένο στο χαρακτηριστικό form Σύνολο δεδομένων βασισμένο στο χαρακτηριστικό διακεκριμένης φόρμας Σύνολα δεδομένων βασισμένο στο μήνα διεξαγωγής ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ ΒΙΒΛΙΟΓΡΑΦΙΑ vii-

10

11 1 Ανακάλυψη Γνώσης σε Βάσεις Δεδομένων Εισαγωγή Η ανακάλυψη γνώσης σε βάσεις δεδομένων (Knowledge Discovery in Databases KDD) είναι μια σύνθετη διαδικασία για τον προσδιορισμό έγκυρων, νέων, χρήσιμων και κατανοητών σχέσεων-προτύπων σε δεδομένα. Αν και ως όρος είναι σχετικά πρόσφατος, αποτελεί μια σημαντική εφαρμογή σε πραγματικές συνθήκες και σε μεγάλη κλίμακα των ερευνητικών αποτελεσμάτων της μηχανικής μάθησης και της στατιστικής. Η διαδικασία ανακάλυψης γνώσης είναι μια ολοκληρωμένη διαδικασία που περιλαμβάνει την επεξεργασία των δεδομένων, την εφαρμογή των αλγορίθμων ανακάλυψης γνώσης και τέλος την ερμηνεία των αποτελεσμάτων. Χρησιμοποιεί τεχνικές από πολλούς τομείς, όπως στατιστική, μηχανική μάθηση, βάσεις δεδομένων, αναγνώριση προτύπων, πράκτορες, επεξεργασία φυσικής γλώσσας κτλ. Οι πιο σημαντικές διαφορές μεταξύ ανακάλυψης γνώσης και μηχανικής μάθησης οφείλονται στο γεγονός ότι η πρώτη εφαρμόζεται σε ένα μεγάλο όγκο δεδομένων τα οποία οργανώνονται σε βάσεις δεδομένων που συνήθως έχουν σχεδιαστεί για άλλο σκοπό. Αντίθετα, στη μηχανική μάθηση τα δεδομένα είναι πολύ λιγότερα και προσεκτικά επιλεγμένα ώστε να εξυπηρετούν καλύτερα τον εκάστοτε σκοπό. Σε μια βάση δεδομένων, ένα σύστημα ανακάλυψης γνώσης προσπαθεί να δημιουργήσει μοντέλα ή να ανακαλύψει πρότυπα τα οποία αξιολογούνται συνήθως μέσω κάποιων κριτηρίων ποιότητας. Επειδή όμως η δημιουργία όλων των δυνατών περιγραφών (μοντέλων ή προτύπων) είναι υπολογιστικά αδύνατη, το πρόβλημα της ανακάλυψης γνώσης σε βάσεις δεδομένων είναι ουσιαστικά ένα πρόβλημα αναζήτησης ή εύρεσης της καλύτερης περιγραφής από το σύνολο των δυνατών περιγραφών. Η γνώση που προκύπτει υποστηρίζεται από τη βάση δεδομένων, χωρίς αυτό όμως να σημαίνει ότι ισχύει οπωσδήποτε και στον πραγματικό κόσμο. Για παράδειγμα, από μια βάση δεδομένων με καταγραμμένα μόνο κόκκινα αυτοκίνητα, θα προκύψει η γνώση ότι -1-

12 «όλα τα αυτοκίνητα είναι κόκκινα». Αυτό, αν και είναι σωστό για τον κόσμο της βάσης δεδομένων, δεν ισχύει προφανώς στην πραγματικότητα. Τεχνικές ανακάλυψης γνώσης χρησιμοποιούνται ευρέως σε τομείς όπως οικονομία, ιατρική, μάρκετινγκ, κτλ. Μερικά παραδείγματα εφαρμογής είναι: Εταιρία κινητής τηλεφωνίας θέλει να προβλέψει ποιοι από τους συνδρομητές της δε θα ανανεώσουν τη συνδρομή τους, ώστε ενδεχομένως να τους κάνει κάποια περισσότερο ελκυστική προσφορά. Εταιρεία πώλησης ηλεκτρονικών συσκευών θέλει να μελετήσει τις αγοραστικές συνήθειες των πελατών της, ώστε να προγραμματίσει ανάλογα την επόμενη διαφημιστική της εκστρατεία. Ιατρικά εργαστήρια θέλουν να συσχετίσουν ασθένειες με χαρακτηριστικά των ασθενών όπως τόπος διαμονής, διατροφικές συνήθειες, παλιότερες ασθένειες, κ.τ.λ., ώστε να οδηγηθούν σε ιατρικές ανακαλύψεις. Η ανακάλυψη γνώσης σε βάσεις δεδομένων απαιτεί συνήθως τη συνδρομή ενός ειδικού του τομέα, όπου θα εφαρμοστεί η διαδικασία (για παράδειγμα ενός ιατρού). Πρόκειται για αλληλεπιδραστική και επαναληπτική διαδικασία, στη διάρκεια των επιμέρους σταδίων της οποίας ο ειδικός σε θέματα ανακάλυψης γνώσης καλείται να πάρει συγκεκριμένες αποφάσεις. Τυπικά μεγέθη του όγκου δεδομένων στα οποία εφαρμόζονται διαδικασίες ανακάλυψης γνώσης είναι εκατομμύρια εγγραφές και δεκάδες Gigabytes. 1.1 Τα Στάδια της Ανακάλυψης γνώσης Η ανακάλυψη γνώσης αρχίζει με την κατανόηση του τομέα στον οποίο θα εφαρμοστεί και τον προσδιορισμό του στόχου της από την σκοπιά του χρήστη των αποτελεσμάτων. Ο ειδικός επί θεμάτων ανακάλυψης γνώσης πρέπει να συνεργαστεί με τον ειδικό του τομέα ώστε το πρόβλημα να καθοριστεί με αρκετή ακρίβεια και να είναι επιλύσιμο, τα αποτελέσματα να είναι μετρήσιμα και να είναι δυνατή η εφαρμογή τους, (για παράδειγμα σε αποδεκτά χρονικά όρια). Στην συνέχεια περιγράφονται τα επιμέρους στάδια. -2-

13 Εικόνα 1.1 Τα βασικά στάδια της διαδικασίας ανακάλυψης γνώσης. Πρέπει να σημειωθεί ότι τις περισσότερες φορές κάποια από τα επί μέρους βήματα είναι αναγκαίο να επαναληφθούν, καθώς στην πορεία ενδέχεται να προκύψουν προβλήματα που σχετίζονται με τις αρχικές επιλογές και τα οποία δεν είναι δυνατό να εντοπιστούν αρχικά Επιλογή Στο στάδιο της επιλογής δημιουργείται το σύνολο δεδομένων στο οποίο θα εφαρμοστούν οι αλγόριθμοι αποκάλυψης γνώσης. Επειδή τα δεδομένα είναι σχεδόν πάντα οργανωμένα για άλλη χρήση και οι αλγόριθμοι που εκτελούν την ανακάλυψη γνώσης συνήθως δεν μπορούν να εφαρμοστούν σε πολλαπλούς πίνακες δεδομένων, απαιτείται η εξαγωγή των δεδομένων από αυτούς και η οργάνωσή τους σε απλούστερες δομές. Συνήθως αυτή η απαίτηση καλύπτεται από συστήματα αποθήκευσης δεδομένων (data warehouse) τα οποία παρέχουν στους αλγόριθμους ανακάλυψη γνώσης μια ευκολότερα προσβάσιμη όψη (view) των δεδομένων Προεπεξεργασία Στο στάδιο της προεπεξεργασίας (preprocessing) των δεδομένων αντιμετωπίζονται περιπτώσεις ελλιπών δεδομένων (για παράδειγμα, άδεια πεδία), πεδίων με τιμές που ουσιαστικά τα καθιστούν κενά (για παράδειγμα, Οδός = Άγνωστο), πεδίων με τιμές που υπονοούν (κατά σύμβαση) κάτι άλλο (για παράδειγμα, καταχώριση της ημερομηνίας «1/1/1900» σε πεδίο ημερομηνίας που απαιτούσε τιμή αλλά αυτή δεν ήταν διαθέσιμη), -3-

14 κτλ. Λόγω της φύσης των εργασιών που πραγματοποιούνται, το στάδιο αυτό ονομάζεται και στάδιο καθαρισμού δεδομένων (data cleaning) Μετασχηματισμός Στο στάδιο του μετασχηματισμού (transformation) τα δεδομένα μετασχηματίζονται ώστε να διευκολύνουν την ανακάλυψη γνώσης. Τέτοιοι μετασχηματισμοί μπορεί να περιλαμβάνουν: την ομοιόμορφη κωδικοποίηση της ποιοτικά ίδιας πληροφορίας (για παράδειγμα, ενοποίηση ενός πεδίου με τίτλο salary σε ένα σε έναν πίνακα με το πεδίο payment σε κάποιον άλλο πίνακα). τη μείωση του αριθμού των υπό εξέταση χαρακτηριστικών (dimensionality reduction) με επιλογή ορισμένων εξ αυτών (feature selection ή attribute selection), τη διακριτοποίηση (discretization), δηλαδή τη μετατροπή συνεχόμενων αριθμητικών τιμών σε διακριτές, κτλ. Η επιλογή χαρακτηριστικών είναι μια απαραίτητη διαδικασία γιατί συνήθως τα δεδομένα περιλαμβάνουν χαρακτηριστικά τα οποία είναι είτε περιττά στη διαδικασία ανακάλυψης γνώσης (όπως για παράδειγμα τα ονόματα των ασθενών ή των πελατών μιας επιχείρησης) ή ακατάλληλα. Αν και οι περισσότεροι αλγόριθμοι σχεδιάζονται για να μαθαίνουν ποια είναι τα πιο σημαντικά χαρακτηριστικά για η λήψη μιας απόφασης, όπως για παράδειγμα στα δένδρα απόφασης, όπου επιλέγεται σε κάθε κόμβο το πιο κατάλληλο χαρακτηριστικό για να γίνει ο διαχωρισμός, εντούτοις η ύπαρξη μεγάλου αριθμών μη σχετικών ή ακατάλληλων χαρακτηριστικών μειώνει σημαντικά την απόδοση των αλγορίθμων. Για παράδειγμα, αποδείχτηκε πειραματικά ότι η απόδοση του αλγορίθμου μάθησης δένδρων ταξινόμησης/απόφασης C4.5, μειώθηκε κατά 5%- 10%, όταν προστέθηκε ένα χαρακτηριστικό με τυχαίες δυαδικές τιμές. Αυτό οφείλεται στο γεγονός ότι σε κάποια φάση της δημιουργίας του δένδρου, αποφασίζεται να γίνει διακλάδωση βάσει του χαρακτηριστικού αυτού, οδηγώντας τελικά σε λανθασμένη ταξινόμηση. Επιπλέον η μείωση του αριθμού των δεδομένων, αφαιρώντας ορισμένα κατάλληλα χαρακτηριστικά, μπορεί να βελτιώσει την απόδοση των αλγορίθμων όσον αφορά την ταχύτητά τους, αλλά και την ποιότητα της εξαγόμενης γνώσης, εστιάζοντας στα πιο σχετικά/σημαντικά χαρακτηριστικά. Η επιλογή χαρακτηριστικών μπορεί να γίνει με -4-

15 αυτόματες μεθόδους, αλλά ο καλύτερος τρόπος είναι να γίνει από τον ειδικό του τομέα, που κατανοεί καλύτερα τη σημασία κάθε χαρακτηριστικού. Διακριτοποίηση είναι η διαδικασία μετασχηματισμού ενός χαρακτηριστικού που παίρνει (συνεχείς) αριθμητικές τιμές, σε ένα πεπερασμένο σύνολο διακριτών διαστημάτων. Η διαδικασία αυτή απαιτείται είτε γιατί ο αλγόριθμος δεν μπορεί να χειριστεί αριθμητικά δεδομένα ή δεν τα χειρίζεται σε ικανοποιητικό βαθμό, όπως ορισμένες στατιστικές μέθοδοι ομαδοποίησης και ο απλός ταξινομητής Bayes Επιλογή αλγορίθμου και εφαρμογή του Στο στάδιο αυτό καθορίζεται το είδος της γνώσης που θα αναζητηθεί, κάτι που έμμεσα προσδιορίζει και την κατηγορία αλγορίθμου που θα χρησιμοποιηθεί. Η εφαρμογή του αλγορίθμου είναι ένα καθαρά υπολογιστικό στάδιο, στο οποίο γίνεται η ουσιαστική ανακάλυψη της γνώσης από τα δεδομένα. Περιγράφεται και με τον όρο εξόρυξη σε δεδομένα (data mining), ο οποίος συχνά χρησιμοποιείται καταχρηστικά για να περιγράψει ολόκληρη η διαδικασία ανακάλυψης γνώσης. Υπάρχουν δύο είδη γνώσης που προκύπτουν ως αποτελέσματα μιας διαδικασίας ανακάλυψης γνώσης: τα μοντέλα πρόβλεψης (predictive models) και τα πρότυπα πληροφόρησης (informative patterns). Πολλές φορές προτιμούνται αλγόριθμοι που έχουν ισχυρά χαρακτηριστικά πληροφόρησης, αν και έχουν χειρότερη δυνατότητα πρόβλεψης, διότι τα αποτελέσματά τους γίνονται πιο εύκολα αντιληπτά από τον ειδικό του τομέα. Οι αλγόριθμοι που χρησιμοποιούνται συχνά προέρχονται από τον τομέα της μηχανικής μάθησης, προσαρμοσμένοι κατάλληλα στις απαιτήσεις της διαδικασίας της ανακάλυψης γνώσης σε βάσεις δεδομένων Ερμηνεία και αξιολόγηση Στο στάδιο αυτό γίνεται ερμηνεία (interpretation) και αξιολόγηση (evaluation) της γνώσης που προκύπτει, πιθανώς με υποβοήθηση γραφικών απεικονίσεων των περιγραφών ή και των δεδομένων που περιγράφονται (visualization). Η γνώση που παράγεται μπορεί να χρησιμοποιηθεί σε ένα σύστημα γνώσης, περίπτωση κατά την οποία ίσως να απαιτείται και η επίλυση πιθανών συγκρούσεων (conflicts) με την υπάρχουσα γνώση. -5-

16 Αξίζει τέλος να αναφερθεί ότι πολλές φορές, τα αποτελέσματα που προκύπτουν μετά από έναν κύκλο εφαρμογής των παραπάνω βημάτων, δίνουν ερέθισμα για νέου είδους αναζητήσεις, δηλαδή οδηγούν σε επανάληψη ολόκληρης της διαδικασίας με σκοπό την ανακάλυψη νέας γνώσης. 1.2 Προβλήματα στην ανακάλυψη γνώσης Τα συστήματα ανακάλυψης γνώσης βασίζονται στην παροχή δεδομένων εισόδου από βάσεις δεδομένων οι οποίες τείνουν να είναι δυναμικές, μεγάλου μεγέθους, ελλιπείς και να περιέχουν εσφαλμένα δεδομένα. Επιπλέον προβλήματα προκύπτουν από το πόσο σχετική και επαρκής είναι η αποθηκευμένη πληροφορία. Αναφέρονται στη συνέχεια τα σημαντικότερα προβλήματα που υπεισέρχονται στην ανακάλυψη γνώσης σε βάσεις δεδομένων Ακατάλληλα δεδομένα Οι βάσεις δεδομένων δεν είναι πάντοτε σχεδιασμένες για ανακάλυψη γνώσης και μερικές φορές τα πεδία που θα οδηγούσαν σε σημαντικές ανακαλύψεις όχι μόνο λείπουν, αλλά και δεν είναι δυνατόν να συλλεχθούν από τον χρήστη. Για παράδειγμα, δεν είναι δυνατόν να διαγνωστεί ελονοσία σε μια βάση δεδομένων ασθενειών, όταν η βάση δεν περιέχει τον αριθμό των ερυθρών αιμοσφαιρίων τους. Επιπλέον, αν πρόκειται για παλιές καταχωρήσεις, δεν είναι δυνατό να συλλεχθεί αυτή η πληροφορία Ελλιπή δεδομένα Πολλές φορές η τιμή κάποιων πεδίων απουσιάζει (ελλιπή δεδομένα missing data). Για παράδειγμα, κάποιο μέγεθος μπορεί να μη μετρήθηκε, κάποια ερώτηση να μην απαντήθηκε, κάποια καταχωρημένη τιμή να διαγράφηκε, κτλ. Ο χειρισμός τέτοιων δεδομένων ποικίλλει και οι μεθοδολογίες που έχουν αναπτυχθεί ενδεικτικά περιλαμβάνουν την απόρριψη των εγγραφών με τα πεδία που δεν έχουν τιμή, τον υπολογισμό των τιμών που λείπουν με βάση άλλες εγγραφές, τον καθορισμό κάποιας ειδικής τιμής που να αντιστοιχεί στις τιμές που δεν υπάρχουν κτλ. -6-

17 1.2.3 Θόρυβος Οι βάσεις δεδομένων συχνά περιέχουν λάθη. Πεδία των οποίων η τιμή προέρχεται από υποκειμενικές κρίσεις ή μετρήσεις μπορεί να προκαλέσουν λάθη, όπως για παράδειγμα εσφαλμένη ταξινόμηση ορισμένων περιπτώσεων. Τα λάθη στις τιμές των πεδίων είναι γνωστά ως θόρυβος (noise noise data) και είναι σημαντικό να αποβάλλεται, γιατί επηρεάζει τη συνολική ακρίβεια της παραγόμενης γνώσης Αραιά δεδομένα Στην αναζήτηση γνώσης σε βάσεις δεδομένων, ο χώρος αναζήτησης ορίζεται από το δυναμοσύνολο των συνόλων στα οποία ορίζονται τα πεδία. Υπάρχουν περιπτώσεις που για διάφορους λόγους τα διαθέσιμα δεδομένα καλύπτουν μικρό ποσοστό του χώρου αναζήτησης (αραιά δεδομένα sparse data), με αποτέλεσμα να δημιουργούνται προβλήματα στην αναζήτηση γνώσης. Για παράδειγμα σε ένα πρόβλημα ταξινόμησης τα δεδομένα μπορεί να μην επιτρέπουν τον ακριβή προσδιορισμό των ορίων των διαφόρων κατηγοριών Μέγεθος βάσης δεδομένων Η ύπαρξη μεγάλου αριθμού εγγραφών στη βάση δεδομένων κάνει χρονοβόρα την εκτέλεση του αλγορίθμου για την ανακάλυψη της γνώσης και τον έλεγχο της ποιότητας της γνώσης που προκύπτει. Επίσης, η ύπαρξη μεγάλου αριθμού πεδίων ανά εγγραφή, αν και πολλές φορές θεωρείται πλεονέκτημα για την ακρίβεια της παραγόμενης γνώσης, εντούτοις επηρεάζει αρνητικά την απόδοση του αλγορίθμου καθώς και την ποιότητα της παραγόμενης γνώσης, στις περιπτώσεις που περιλαμβάνονται περιττά πεδία. Τέλος, υπάρχει μεγαλύτερη πιθανότητα να δημιουργηθούν πολλές και περίπλοκες περιγραφές, όπως για παράδειγμα ένας τεράστιος αριθμός κανόνων ταξινόμησης, που θα πρέπει να εξεταστούν Δείγματα Η λήψη ενός δείγματος από τη βάση δεδομένων, με χρήση του οποίου θα ανακαλυφθεί γνώση, απαιτεί μεγάλη προσοχή και εφαρμογή στατιστικών τεχνικών, ώστε να -7-

18 αντιπροσωπεύει ικανοποιητικά την αρχική βάση και να περιλαμβάνει χρήσιμα δεδομένα. Η δειγματοληψία αποτελεί συνήθη πρακτική, καθώς και οι πραγματικές βάσεις δεδομένων έχουν τεράστιο αριθμό εγγραφών ενώ ορισμένοι αλγόριθμοι ανακάλυψης γνώσης, για λόγους απόδοσης, απαιτούν τα δεδομένα εκπαίδευσης να είναι όλα στη μνήμη. Αυτό όμως δεν είναι εφικτό λόγω του περιορισμένου μεγέθους της μνήμης Πρόσφατα δεδομένα Επειδή οι βάσεις δεδομένων είναι δυναμικές, προκύπτει το πρόβλημα του κατά πόσο μπορεί να θεωρηθεί ότι η γνώση που παρήχθη κάποτε, ανταποκρίνεται στην πλέον ενημερωμένη και πρόσφατη έκδοση της βάσης δεδομένων. Αυτό απαιτεί έναν περιοδικό έλεγχο για την εγκυρότητα των αποτελεσμάτων. Επιπλέον δημιουργείται η ανάγκη ύπαρξης αλγορίθμων σταδιακής εξόρυξης σε δεδομένα (incremental data mining) που θα λαμβάνουν υπόψη τους την πληροφορία νέων εγγραφών καθώς αυτές θα γίνονται διαθέσιμες, χωρίς να απαιτείται η επανάληψη της διαδικασίας από την αρχή για το σύνολο των εγγραφών. 1.3 Ειδικά Θέματα στην Ανακάλυψη Γνώσης Υπάρχουν κάποιες ειδικές περιπτώσεις δεδομένων, όπως για παράδειγμα τα δεδομένα που είναι διάσπαρτα σε κατανεμημένες βάσεις δεδομένων ή σύνθετοι τύποι δεδομένων, που δεν αντιμετωπίζονται με τις κλασικές μεθόδους αποκάλυψης γνώσης, αλλά απαιτούν ειδικές τεχνικές, μερικές από τις οποίες εξετάζονται στη συνέχεια Σύνθετοι τύποι δεδομένων Τις τελευταίες δυο δεκαετίες η πρόοδος των νέων τεχνολογιών οδήγησε στη δημιουργία νέων, σύνθετων τύπων δεδομένων, όπως τα χωρικά, χρονικά και τα δεδομένα πολυμέσων. Στην τελευταία κατηγορία ανήκουν τα δεδομένα εικόνων, ήχου, βίντεο και συνδυασμού αυτών με κείμενο, τα οποία χαρακτηρίζονται ως ημιδομημένα ή αδόμητα δεδομένα. Χαρακτηριστικότερο τέτοιο παράδειγμα αποτελούν οι ιστοσελίδες του -8-

19 παγκόσμιου ιστού. Τέτοιοι τύποι δεδομένων έχουν ξεχωριστές απαιτήσεις κατά την αναπαράσταση, αποθήκευση και επεξεργασία τους και οι παραδοσιακές σχεσιακές βάσεις δεδομένων αδυνατούν να ανταπεξέλθουν. Αυτό είχε ως αποτέλεσμα να δοθεί ώθηση στην έρευνα και στη ανάπτυξη νέων τύπων συστημάτων διαχείρισης βάσεων δεδομένων, όπως οι πολυμεσικές, οι χρονικές και οι αντικειμενοστραφείς, ή υβριδικά συστήματα, όπως οι αντικειμενο-σχεσικές βάσεις δεδομένων (object-relational databases). Φυσιολογικά, δημιουργήθηκε και η ανάγκη για εργαλεία ικανά να ανακαλύπτουν γνώση σε τέτοιου είδους δεδομένα, καθώς οι κλασικές στατιστικές μέθοδοι και οι παραδοσιακοί αλγόριθμοι αναζήτησης γνώσης δεν μπορούσαν να αποδώσουν ικανοποιητικά. Σαν αποτέλεσμα, αναπτύχθηκαν νέες τεχνικές καθαρισμού, επιλογής, μετασχηματισμού και μάθησης Κατανεμημένα δεδομένα Τα τελευταία χρόνια παρατηρείται ραγδαία εξέλιξη στην τεχνολογία των δικτύων κάτι που έχει οδηγήσει στην εμφάνιση γεωγραφικά κατανεμημένων δεδομένων. Σε αυτές τις περιπτώσεις, οι υπάρχουσες τεχνικές εξόρυξης σε δεδομένα είναι ανεπαρκείς ή αναποτελεσματικές, γιατί είναι κατασκευασμένες να λειτουργούν με ένα μόνο, τοπικά εντοπισμένο, σύνολο δεδομένων. Υπάρχουν όμως αρκετές εφαρμογές στις οποίες η πληροφορία είναι αποθηκευμένη σε διάφορους υπολογιστές (για παράδειγμα, σε πολυεθνικές εταιρείες ή αλυσίδες καταστημάτων), οπότε αυτοί θα πρέπει να «συνεργαστούν» μεταξύ τους για να εξάγουν καθολική γνώση. Η προφανής λύση είναι η συσσώρευση όλων των δεδομένων που βρίσκονται στους υπολογιστές σε ένα κεντρικό σταθμό εργασίας, στον οποίο θα γίνεται η εξόρυξη. Κάτι τέτοιο βέβαια, δεν είναι εφικτό ή επιθυμητό για πολλούς λόγους: Το υπολογιστικό σύστημα που θα φιλοξενήσει το σύνολο των δεδομένων πρέπει να έχει πολύ μεγάλη χωρητικότητα και αυξημένη υπολογιστική ισχύ. Το κόστος μεταφοράς και αποθήκευσης των δεδομένων ίσως είναι απαγορευτικά μεγάλο. Μπορεί να παρατηρηθεί πρόβλημα συγχρονισμού σε περιπτώσεις κατά τις οποίες μια «τοπική» βάση δεδομένων ενημερώνεται, οπότε καθίσταται απαραίτητη η ταυτόχρονη ενημέρωση και των δεδομένων στον κεντρικό Η/Υ. Λόγοι ασφαλείας και αυτονόμησης μπορεί να απαγορεύουν την μετακίνηση των τοπικών δεδομένων, όπως για παράδειγμα συμβαίνει με τα τραπεζικά δεδομένα των οπίων η «αποκάλυψη» δεν είναι επιθυμητή. -9-

20 Σε περιπτώσεις σαν τις παραπάνω, απαιτείται η χρήση κατανεμημένης εξόρυξης σε δεδομένα (distributed data mining), προκειμένου να γίνει καλύτερη αξιοποίηση των δεδομένων και των διαθέσιμων υπολογιστικών πόρων. -10-

21 2 Μηχανική Μάθηση Όπως αναφέρθηκε στο πρώτο κεφάλαιο, η μηχανική μάθηση χρησιμοποιείται κατά την διαδικασία ανακάλυψης γνώσης σε βάσεις δεδομένων. Η ερευνητική περιοχή της μηχανικής μάθησης ασχολείται με υπολογιστικές μεθόδους για την κατασκευή συστημάτων με ικανότητα μάθησης. Τι εννοούμε όμως με τον όρο μάθηση? Έχουν προταθεί διάφοροι ορισμοί, όπως: Η μάθηση σηματοδοτεί αλλαγές σε ένα σύστημα που είναι προσαρμοστικές με την έννοια ότι επιτρέπουν στο σύστημα να κάνει την ίδια εργασία, ή εργασίες της ίδιας κατηγορίας, πιο αποδοτικά και αποτελεσματικά από την επόμενη φορά. Μάθηση είναι η δημιουργία ή αλλαγή αναπαραστάσεων των εμπειριών που βιώνουμε. Θα μπορούσαμε να πούμε ότι οι παραπάνω ορισμοί είναι συμπληρωματικοί, γιατί μαζί καλύπτουν δύο βασικές ικανότητες του ανθρώπου που σχετίζονται με τη μάθηση, όπως αυτές γίνονται αντιληπτές στην καθημερινή ζωή: α) τη βελτίωση της αποτελεσματικότητας στην εκτέλεση μιας εργασίας την εμπειρία β) την απόκτηση νέας γνώσης ή την οργάνωση της ήδη υπάρχουσας. Υπάρχει πολύ και πολυποίκιλη ερευνητική δουλεία στη περιοχή της μηχανικής μάθησης. Έχουν γίνει διάφορες προσπάθειες ταξινόμησης αυτής της δουλείας βάσει διαφορετικών κριτηρίων. Εδώ η παρουσίαση των διαφορετικών μεθόδων μηχανικής μάθησης οργανώνεται με βάση το πρόβλημα που αντιμετωπίζουν. Τα βασικά προβλήματα είναι: 1. Η προσέγγιση μιας συνάρτησης από δεδομένα με παρατηρήσεις τιμών εισόδου και εξόδου της. Αν η συνάρτηση έχει έξοδο ως διακριτές τιμές, τότε το πρόβλημα ονομάζεται ταξινόμηση ή κατηγοριοποίηση (classification), ενώ αν έχει συνεχείς τιμές ονομάζεται παρεμβολή (regression). 2. Η εύρεση φυσικών οργανώσεων των δεδομένων σε ομάδες, έτσι ώστε δεδομένα της ίδιας ομάδας να μοιάζουν όσο το δυνατόν περισσότερο και δεδομένα διαφορετικών ομάδων να διαφέρουν όσο το δυνατόν περισσότερο. Το πρόβλημα αυτό ονομάζεται ομαδοποίηση (clustering). -11-

22 3. Η εύρεση κανόνων συσχέτισης μεταξύ αντικειμένων σε συναλλακτικές (transactional) βάσεις δεδομένων. Το πρόβλημα αυτό ονομάζεται εξόρυξη κανόνων συσχέτισης (associaton rule mining) και προέκυψε τη δεκαετία του 90 από τον τομέα της ανάλυσης καλαθιών αγορών. 4. Η εύρεση της βέλτιστης συμπεριφοράς ενός πράκτορα με βάση την ανταμοιβή που παίρνει σε μια τελική κατάσταση σε κάποιο περιβάλλον έχοντας ξεκινήσει από μια αρχική κατάσταση στο ίδιο περιβάλλον και ακολουθώντας μια σειρά από ενέργειες και ενδιάμεσες καταστάσεις. Το πρόβλημα αυτό ονομάζεται ενισχυτική μάθηση (reinforcement learning). Στη μηχανική μάθηση υπήρχαν παραδοσιακά οι όροι μάθηση με επίβλεψη (supervised learning) και μάθηση χωρίς επίβλεψη (unsupervised learning). Η μάθηση με επίβλεψη ταυτίζεται με την πρώτη κατηγορία προβλημάτων, δηλαδή της ταξινόμησης και παρεμβολής.το όνομα προέρχεται από το γεγονός ότι σε αυτά τα προβλήματα υπάρχει κάποιος «επιβλέπων», ο οποίος μας παρέχει την τιμή εξόδου της συνάρτησης για τα δεδομένα που εξετάζουμε. Η μάθηση χωρίς επίβλεψη ταυτιζόταν παραδοσιακά με το πρόβλημα της ομαδοποίησης. Ο λόγος είναι ότι στην ομαδοποίηση δεν υπάρχει κάποιος «επιβλέπων», αφού δεν γνωρίζουμε πόσες, ποιες και αν υπάρχουν ομάδες. Η εξόρυξη κανόνων συσχέτισης εμφανίστηκε αρκετά αργότερα από την μηχανική μάθηση, και έχει περισσότερες επιρροές από την ερευνητική περιοχή των βάσεων δεδομένων. Ωστόσο θα μπορούσαμε να την εντάξουμε στη μάθηση χωρίς επίβλεψη, αφού και πάλι δεν γνωρίζουμε εκ των προτέρων αν υπάρχουν κάποιες συσχετίσεις στα δεδομένα και ποιες είναι αυτές. Τέλος, η ενισχυτική μάθηση έχει επιρροές και από τα δύο είδη μάθησης. Όπως στη μάθηση με επίβλεψη, υπάρχει κάποιος εξωτερικός παράγων (το περιβάλλον), που δίνει μια αριθμητική ανταμοιβή στον πράκτορα για κάθε ενέργεια του. Ωστόσο, η συμπεριφορά του περιβάλλοντος είναι άγνωστη στον πράκτορα, και πρέπει να την ανακαλύψει μέσω δοκιμής και αποτυχίας, κάτι που θυμίζει την μάθηση χωρίς επίβλεψη. Ένας άλλος διαχωρισμός των μεθόδων μάθησης που συναντάται στη διεθνή βιβλιογραφία είναι αυτός σε περιγραφική μοντελοποίηση (descriptive modelling) και μοντελοποίηση πρόβλεψης (predictive modelling). Η περιγραφική μοντελοποίηση περιλαμβάνει την εξόρυξη κανόνων συσχέτισης και την ομαδοποίηση επειδή η γνώση που προκύπτει έχει την ικανότητα της περιγραφής των δεδομένων. Στη μοντελοποίηση πρόβλεψης ανήκουν η ταξινόμηση και η παρεμβολή, επειδή η γνώση που προκύπτει -12-

23 μπορεί να χρησιμοποιηθεί για πρόβλεψη. Ωστόσο ορισμένες μέθοδοι ταξινόμησης (π.χ. κανόνες ταξινόμησης, δένδρα απόφασης) έχουν και περιγραφικό χαρακτήρα, οπότε αυτός ο διαχωρισμός δεν είναι κάθετος. Το ίδιο ισχύει και για την ενισχυτική μάθηση, όπου η γνώση που αποκτάται μπορεί να χρησιμοποιηθεί τόσο για την πρόβλεψη της πιο κατάλληλης ενέργειας του πράκτορα για μια κατάσταση όσο και την περιγραφή του περιβάλλοντος στο οποίο δραστηριοποιείται ο πράκτορας. Κάποιοι άλλοι όροι που εμφανίζονται στη διεθνή βιβλιογραφία είναι το πρότυπο (pattern) και το μοντέλο (model). Ο όρος πρότυπο έχει την έννοια της γνώσης που αφορά ένα τοπικό κομμάτι των δεδομένων. Για παράδειγμα, πρότυπο αποτελεί ένας κανόνας συσχέτισης, ένας κανόνας ταξινόμησης ή μια ομάδα. Αντίθετα το μοντέλο έχει την έννοια της γνώσης που αφορά σε όλα τα δεδομένα. Για παράδειγμα, μοντέλο αποτελεί ένα σύνολο κανόνων ταξινόμησης, ένα δένδρο απόφασης, ένα νευρωνικό δίκτυο, ή μια γραμμική συνάρτηση. 2.1Ταξινόμηση και παρεμβολή Στη μάθηση με επίβλεψη το πρόβλημα που αντιμετωπίζεται είναι η εύρεση μιας συνάρτηση μέσα από ένα σύνολα δεδομένων με ζευγάρια τιμών της εισόδου και εξόδου της. Η συνάρτηση αυτή ονομάζεται συνάρτηση στόχος (target function) και συμβολίζεται συνήθως με c. Η συνάρτηση στόχος χρησιμοποιείται για την πρόβλεψη της τιμής μιας εξαρτημένης μεταβλητής που ονομάζεται μεταβλητής στόχος με βάση τις τιμές ενός συνόλου από ανεξάρτητες μεταβλητές που ονομάζονται χαρακτηριστικά (attributes ή features). Το σύνολο των διαφορετικών δυνατών τιμών εισόδου της συνάρτησης στόχος, δηλαδή το πεδίο ορισμού της, ονομάζεται σύνολο των περιπτώσεων ή στιγμιότυπων (instances), και συμβολίζεται με Χ. Ένα σύστημα μάθησης με επίβλεψη, κατά την εκπαίδευσή του, έχει ως είσοδο ένα υποσύνολο του συνόλου των περιπτώσεων, για το οποίο είναι γνωστή η τιμή της μεταβλητής εξόδου και το οποίο ονομάζεται σύνολο εκπαίδευσης και συμβολίζεται με D. Ένα στοιχείο του συνόλου εκπαίδευσης ονομάζεται παράδειγμα (example). Σκοπός του συστήματος είναι να προσεγγίσει όσο καλύτερα μπορεί τη συνάρτηση στόχο δοθέντος ενός συνόλου εκπαίδευσης. Για να το κάνει αυτό εξετάζει διαφορετικές συναρτήσεις, οι οποίες ονομάζονται υποθέσεις ( Hypotheses), και συμβολίζονται με h. -13-

24 Το σύνολο όλων των δυνατών διαφορετικών υποθέσεων που το σύστημα μάθησης ενδέχεται να εξετάσει ονομάζεται σύνολο των υποθέσεων, και συμβολίζεται με Η. Η πιο απλή λύση στο πρόβλημα της μάθησης με επίβλεψη είναι η μάθηση με απομνημόνευση (learning by memorization, rote learning). Το σύστημα μάθησης απλά αποθηκεύει το σύνολο των δεδομένων και μπορεί να δώσει την τιμή της μεταβλητής εξόδου για μια νέα περίπτωση μόνο αν αυτή η ίδια είναι ήδη αποθηκεμένη. Είναι ευνόητο ότι η μάθηση με απομνημόνευση δεν είναι αποτελεσματική όταν το σύνολο των δεδομένων περιλαμβάνει ένα μικρό υποσύνολο του συνόλου των περιπτώσεων, όπως συμβαίνει στη πράξη. Στη πράξη απαιτείται η προσέγγιση της συνάρτησης στόχος μέσω μιας διαδικασίας επαγωγής. Το σύστημα μάθησης εξετάζοντας μόνο ένα μέρος του συνόλου των περιπτώσεων (το σύνολο εκπαίδευσης) καλείται να επάγει μια συνάρτηση που θα ισχύει για όλο το σύνολο των περιπτώσεων. Αυτή η λύση στο πρόβλημα της μάθησης με επίβλεψη καλείται επαγωγική μάθηση (inductive learning). H επαγωγική μάθηση στηρίζεται σε μια υπόθεση που είναι γνωστή ως υπόθεση της επαγωγικής μάθησης: «Κάθε συνάρτηση που έχει βρεθεί να προσεγγίζει τη συνάρτηση στόχο καλά για ένα αρκετά μεγάλο σύνολο εκπαίδευσης, θα προσεγγίζει το ίδιο καλά την συνάρτηση στόχο και για άλλες περιπτώσεις που δεν έχει εξετάσει». Για να μπορέσει να γενικεύσει ένα σύστημα μάθησης πέρα από τα δεδομένα εκπαίδευσης θα πρέπει να κάνει κάποιες παραδοχές σε σχέση με την συνάρτηση στόχο. Αυτές οι παραδοχές αποτελούν την επαγωγική μεροληψία (inductive bias) του συστήματος μάθησης. Υπάρχουν δύο είδη μεροληψίας. Στη μεροληψία περιορισμού το σύστημα μάθησης κάνει κάποια παραδοχή για το χώρο υποθέσεων που θα ψάξει, δηλαδή για την μορφή της συνάρτησης στόχος, έτσι ώστε να περιορίσει αυτό τον χώρο. Στη μεροληψία προτίμησης το σύστημα μάθησης κάνει κάποια παραδοχή σχετικά με τις υποθέσεις έτσι ώστε να μπορεί να προτιμά κάποιες από αυτές έναντι κάποιων άλλων, έτσι ώστε να μην κάνει εξαντλητική όλων των υποθέσεων. Όπως αναφέρθηκε στην αρχή του κεφαλαίου, τα προβλήματα μάθησης με επίβλεψη διακρίνονται σε δύο είδη ανάλογα με την τιμή της μεταβλητής εξόδου, στα προβλήματα ταξινόμησης (classificatioin) και στα προβλήματα παρεμβολής (regresssion). Στα προβλήματα ταξινόμησης ή κατηγοριοποίησης (classification) η μεταβλητή εξόδου παίρνει διακριτές τιμές (π.χ. τα γράμματα της αλφαβήτου). Τα προβλήματα παρεμβολής αφορούν τη μάθηση μιας συνάρτησης στόχου με πεδίο τιμών τους πραγματικούς -14-

25 αριθμούς, δηλαδή προβλήματα όπου η μεταβλητή εξόδου παίρνει συνεχόμενες τιμές (π.χ. τιμή μετοχής). Οι κυριότερες τεχνικές μηχανικής μάθησης με επίβλεψη είναι: Δένδρα Απόφασης (Decision Trees) Μάθηση Κανόνων (Rule Learning) Μάθηση κατά Bayes (Bayesian Learning) Μάθηση με Βάση τις Περιπτώσεις (Instance-Based Learning) Νευρωνικά δίκτυα (Neural Networks) Μηχανές διανυσμάτων υποστήριξης (Support Vector Machines) Δένδρα Απόφασης Η μάθηση δένδρων απόφασης είναι ένα από τα πιο δημοφιλή είδη μάθησης και έχει εφαρμοστεί αποτελεσματικά σε διάφορους τομείς, όπως διάγνωση ιατρικών περιστατικών, αξιολόγηση ρίσκου αποδοχής αίτησης για πιστωτική κάρτα και εύρεση αιτίας δυσλειτουργίας μηχανημάτων. Το χαρακτηριστικό σε αυτό το είδος μάθησης είναι ότι το μοντέλο που προκύπτει αναπαρίσταται ως ένα δένδρο, που ονομάζεται δένδρο απόφασης (decision tree). Κάθε κόμβος σε ένα δένδρο απόφασης ορίζει μια συνθήκη ελέγχου της τιμής κάποιου χαρακτηριστικού αυτού αν είναι διακριτό (π.χ. φύλο = θήλυ), ή σε ένα περιορισμό του εύρους τιμών αν είναι συνεχές (π.χ. ηλικία > 18). Μια νέα περίπτωση ταξινομείται αρχίζοντας από τη ρίζα και ακολουθώντας τα κλαδιά του δένδρου προς κάποιο φύλλο, το οποίο περιέχει μια διακριτή τιμή της μεταβλητής εξόδου. Σε κάθε κόμβο ελέγχεται η τιμή της περίπτωσης για το χαρακτηριστικό του κόμβου και ακολουθείται το αντίστοιχο κλαδί. Στο σχήμα 2.1 βλέπουμε ένα παράδειγμα δένδρου απόφασης για την συνάρτηση στόχο «καλή μέρα για τένις». -15-

26 Ουσιαστικά η αναπαράσταση που χρησιμοποιείται από τα δένδρα απόφασης είναι διάζευξη που αποτελείται από συζεύξεις περιορισμών στις τιμές των χαρακτηριστικών. Κάθε μονοπάτι από τη ρίζα προς ένα φύλλο αντιστοιχεί σε συζεύξεις περιορισμών στις τιμές των χαρακτηριστικών. Το δένδρο συνολικά εκφράζει τη διάζευξη των συζεύξεων, αφού αποτελείται από όλα τα εναλλακτικά μονοπάτια. Γενικά η μάθηση δένδρων απόφασης είναι κατάλληλη για προβλήματα όπου: Η συνάρτηση στόχος παίρνει διακριτές τιμές εξόδου, δηλαδή προβλήματα ταξινόμησης. Με κάποιες σημαντικές επεκτάσεις στη βασική μεθοδολογία, μπορεί να χρησιμοποιηθεί και για προβλήματα παρεμβολής, αλλά δεν συνηθίζεται. Οι περιπτώσεις αποτελούνται από ζευγάρια χαρακτηριστικών και τιμών. Η απλούστερη περίπτωση είναι οι τιμές να είναι διακριτές. Ωστόσο υπάρχουν επεκτάσεις της βασικής μεθοδολογίας και για πραγματικές τιμές. Η έννοια στόχος είναι πιθανό να αποτελείται από διαζεύξεις συζεύξεων από περιορισμούς σε τιμές των χαρακτηριστικών. Τα δεδομένα εκπαίδευσης είναι πιθανό να περιέχουν σφάλματα. Είναι πιθανό κάποιες τιμές χαρακτηριστικών στα δεδομένα εκπαίδευσης να λείπουν. Κατασκευή δένδρων απόφασης Η πλειονότητα των αλγορίθμων μάθησης δένδρων απόφασης κατασκευάζουν το δένδρο άπληστα από πάνω προς τα κάτω. Αρχικά πρέπει να επιλεγεί το πιο κατάλληλο χαρακτηριστικό για έλεγχο στη ρίζα. Η επιλογή στηρίζεται σε κάποιο στατιστικό μέτρο που υπολογίζεται από τα δεδομένα. Θα αναφερθούν διάφορα τέτοια μέτρα στη συνέχεια. Έπειτα, για κάθε δυνατή τιμή του χαρακτηριστικού δημιουργούνται οι -16-

27 αντίστοιχοι απόγονοι της ρίζας και τα δεδομένα μοιράζονται στους νέους κόμβους ανάλογα με την τιμή που έχουν για το χαρακτηριστικό που ελέγχεται στη ρίζα. Η όλη διαδικασία επαναλαμβάνεται για κάθε νέο κόμβο. Το μέτρο επιλογής του πιο κατάλληλου χαρακτηριστικού για έλεγχο σε ένα νέο κόμβο θα υπολογιστεί και πάλι, αυτή τη φορά όμως χρησιμοποιώντας μόνο τα δεδομένα που ανήκουν σε αυτόν το κόμβο. Ένας κόμβος γίνεται φύλλο όταν όλα τα δεδομένα που ανήκουν σε αυτόν ανήκουν στην ίδια κατηγορία. Η κατηγορία αυτή γίνεται και η τιμή του φύλλου. Αν σε κάποιο βάθος τελειώσουν τα χαρακτηριστικά προς έλεγχο, τότε ο κόμβος γίνεται φύλλο και σαν τιμή παίρνει εκείνη που έχει την πλειοψηφία με βάση τα δεδομένα του κόμβου αυτού. Μέτρα επιλογής χαρακτηριστικού Το σημαντικό σημείο ενός αλγορίθμου μάθησης δένδρων απόφασης είναι η επιλογή του χαρακτηριστικού που θα ελέγχεται σε κάθε κόμβο για το σκοπό αυτό έχουν προταθεί διάφορα στατιστικά μέτρα, με βάση τα οποία αξιολογούνται τα χαρακτηριστικά και επιλέγεται το καλύτερο. Ένας από τους πρώτους αλγόριθμους, ο ID3, χρησιμοποιεί το μέτρο κέρδος πληροφορίας (information gain), το οποίο στηρίζεται στην έννοια της εντροπίας (entropy). Η εντροπία χαρακτηρίζει την ανομοιογένεια ενός συνόλου παραδειγμάτων και εκφράζει το αναμενόμενο μήκος κωδικοποίησης πληροφορίας μετρημένο σε bit. Έστω ένα σύνολο παραδειγμάτων S. an p c είναι το ποσοστό των παραδειγμάτων του S που ανήκουν στην κατηγορία c ε C, τότε η εντροπία E(Σ) του συνόλου είναι: ES ( ) = -pclog2p c C Το κέρδος πληροφορίας μετράει τη μείωση της εντροπίας που θα προκληθεί αν χωριστούν τα παραδείγματα ενός συνόλου με βάση κάποιο χαρακτηριστικό. Έστω λοιπόν ένα σύνολο παραδειγμάτων S και ένα χαρακτηριστικό A με σύνολο τιμών V(A). Το κέρδος πληροφορίας IG(S,A) σε σχέση με αυτό το χαρακτηριστικό είναι: Su IG(S,A)=E(S) - E(S u ) S u V( A) c -17-

28 Ο πρώτος όρος της διαφοράς είναι η εντροπία του συνόλου των παραδειγμάτων. Ο δεύτερος όρος είναι η εντροπία των παραδειγμάτων μετά το διαχωρισμό τους ανάλογα με την τιμή του χαρακτηριστικού Α. αποτελείται από το άθροισμα της εντροπίας για το κάθε σύνολο S u που προκύπτει μετά το διαχωρισμό του S, ανάλογα με την τιμή u του χαρακτηριστικού Α. To χαρακτηριστικό με το μεγαλύτερο κέρδος πληροφορίας είναι αυτό που επιλέγεται από τον αλγόριθμο ID3 για έλεγχο σε κάθε κόμβο. Ένα πρόβλημα του κέρδους πληροφορίας είναι ότι επιλέγει με μεγαλύτερη πιθανότητα χαρακτηριστικά που έχουν πολλές διακριτές τιμές. Μια λύση σε αυτό τι πρόβλημα είναι η χρήση ενός διαφορετικού μέτρου που θα μειώνει τη πιθανότητα επιλογής ενός χαρακτηριστικού ανάλογα με τον αριθμό των τιμών του. ένα τέτοιο μέτρο είναι ο λόγος κέρδους (gain ratio), το οποίο στηρίζεται στην έννοια της πληροφορίας διαχωρισμού (split information). Η πληροφορία διαχωρισμού είναι ένα μέτρο ευαίσθητο στο εύρος και την ομοιομορφία διαχωρισμού των δεδομένων από ένα χαρακτηριστικό. Έστω ένα σύνολο παραδειγμάτων S και ένα χαρακτηριστικό Α με ένα σύνολο τιμών V(A). Η πληροφορία διαχωρισμού SI(S,A) είναι: SI(S,A)= - u V( A) Su Su log2 S S Όπου S u είναι το σύνολο που προκύπτει από το διαχωρισμό του S ανάλογα με την τιμή u του χαρακτηριστικού Α. Ας σημειωθεί ότι η πληροφορία διαχωρισμού ενός συνόλου με βάση κάποιο χαρακτηριστικό Α ταυτίζεται με την εντρoπία του αν αυτό το χαρακτηριστικό ήταν η εξαρτημένη μεταβλητή. Ο λόγος κέρδους GR(S,A) ορίζεται με βάση το κέρδος πληροφορίας IG(S,A) και την πληροφορία διαχωρισμού SI(S,A) ως εξής: IG(S,A) GR(S,A)= SI(S,A) O αλγόριθμος C4.5 χρησιμοποιεί εξ ορισμού το λόγο κέρδους, αλλά υποστηρίζει και το κέρδος πληροφορίας. Έχουν προταθεί κι άλλα στατιστικά μέτρα στη βιβλιογραφία της μάθησης δένδρων απόφασης. -18-

29 Κατάλληλο μέγεθος δένδρου Οι αλγόριθμοι κατασκευής δένδρων απόφασης στηρίζουν την επέκταση του κάθε κόμβου αποκλειστικά και μόνο στα δεδομένα εκπαίδευσης που υπάρχουν σε αυτόν το κόμβο. Αυτό όμως μπορεί να οδηγήσει σε δένδρα που έχουν μεγάλη ακρίβεια πρόβλεψης στα δεδομένα εκπαίδευσης αλλά μικρότερη σε νέα άγνωστα δεδομένα. Αυτό το πρακτικό πρόβλημα εμφανίζεται τόσο στη μάθηση δένδρων απόφασης όσο και σε άλλες μεθόδους μάθησης και ονομάζεται υπερμοντελοποίηση (overfitting): Σε ένα χώρο υποθέσεων Η, μια υπόθεση h ε H υπερμοντελοποιεί τα δεδομένα αν υπάρχει μια άλλη υπόθεση h ε H με μεγαλύτερο σφάλμα από την h στα δεδομένα εκπαίδευσης, αλλά μικρότερο σε όλο το σύνολο των περιπτώσεων. Στους αλγόριθμους μάθησης δένδρων απόφασης, ο κίνδυνος της υπερμοντελοποίησης ελλοχεύει όταν: Υπάρχει θόρυβος στα δεδομένα εκπαίδευσης, δηλαδή λάθη είτε στις τιμές των χαρακτηριστικών είτε ακόμα χειρότερα στην τιμή του χαρακτηριστικού πρόβλεψης. Τα δεδομένα αυτά δεν αποτελούν ένα αντιπροσωπευτικό δείγμα της έννοιας στόχου. Αν πολύ λίγα δεδομένα σχετίζονται με ένα κόμβο του δένδρου τότε μπορεί κατά τύχη ένα χαρακτηριστικό που είναι άσχετο με την έννοια στόχο να διαχωρίζει πολύ καλά τα δεδομένα αυτά. Η πιο συνηθισμένη λύση στο πρόβλημα της εύρεσης του πιο κατάλληλου μεγέθους για τα δένδρα απόφασης και την αποφυγή με αυτό τον τρόπο της υπερμοντελοποίησης είναι το κλάδεμα (prunning): Το δένδρο μεγαλώνει πλήρως και μετά κλαδεύεται με διάφορους τρόπους. Το κλάδεμα ενός κόμβου του δένδρου συνιστάται στην αφαίρεση του υποδένδρου που κρέμεται από αυτόν και στη μετατροπή του σε τερματικό κόμβο με τιμή για την εξαρτημένη μεταβλητή την πιο κοινή στα δεδομένα που ανήκουν στον κόμβο. Μια κατηγορία μεθόδων κλαδέματος στηρίζεται στη δέσμευση ενός υποσυνόλου των δεδομένων εκπαίδευσης, το σύνολο κλαδέματος (pruning set), για το σκοπό της αξιολόγησης των εναλλακτικών δένδρων. Μια γνωστή μέθοδος αυτής της κατηγορίας ονομάζεται cost-complexity pruning. Αυτή η μέθοδος λειτουργεί σε 2 φάσεις. Στην, αναπτύσσεται ένα σύνολο από δένδρα Τ 0, Τ 1,., Τ κ, ξεκινώντας από το πλήρως δένδρο Τ 0 και προχωρώντας σε όλο και μικρότερα κλαδεύοντας κάθε φορά έναν ή παραπάνω κόμβους. Το τελευταίο δένδρο Τ κ αποτελείται μόνο από τη ρίζα. Στη δεύτερη φάση ένα -19-

30 από τα δένδρα αυτά επιλέγεται με βάση την ακρίβεια πρόβλεψης τους στο σύνολο κλαδέματος. Μια άλλη γνωστή μέθοδος κλαδέματος της ίδιας κατηγορίας ονομάζεται reduced error pruning. Αυτή θεωρεί κάθε μη τερματικό κόμβο του δένδρου ως υποψήφιο για κλάδεμα. Κάθε φορά επιλέγεται για κλάδεμα ο κόμβος που αυξάνει περισσότερο την ακρίβεια του δένδρου με βάση το σύνολο κλαδέματος. Όπως και προηγούμενη μέθοδος κατασκευάζει μια σειρά από δένδρα, αλλά το τελευταίο δένδρο της σειράς είναι και το μικρότερο δυνατό με την μεγαλύτερη ακρίβεια στο σύνολο κλαδέματος. Για το λόγο αυτό θεωρείται πιο άμεση και ξεκάθαρη μέθοδος από την προηγούμενη. Η χρήση ενός ξεχωριστού συνόλου κλαδέματος έχει το μειονέκτημα της μείωσης των διαθέσιμων δεδομένων εκπαίδευσης, κάτι ιδιαίτερα αρνητικό ειδικά σε περιπτώσει όπου τα διαθέσιμα δεδομένα είναι λίγα. Για να αντιμετωπιστεί αυτό το πρόβλημα έχει προταθεί μια διαδικασία που αποφεύγει τη δέσμευση δεδομένων για το κλάδεμα αλλά έχει υψηλή υπολογιστική πολυπλοκότητα. μια άλλη λύση είναι ο υπολογισμός μίας πεισματικής εκδοχής του μέτρου της ακρίβειας στα δεδομένα. Για παράδειγμα ο αλγόριθμος C4.5 υπολογίζει την ακρίβεια στα δεδομένα εκπαίδευσης acc και μαζί με αυτή και την τυπική απόκλιση της std θεωρώντας διωνυμική κατανομή. Για κάποιο διάστημα εμπιστοσύνης η ακρίβεια υπολογίζεται ως το κάτω άκρο της εκτίμησης της ακρίβειας στα δεδομένα εκπαίδευσης(π.χ. για διάστημα εμπιστοσύνης 95% η ακρίβεια υπολογίζεται ως acc-1.96std). Μια διαφορετική προσέγγιση στο κλάδεμα ονομάζεται rule post pruning και εκτελείται σε 4 φάσεις: α) κατασκευή του πλήρους δένδρου με υπερμοντελοποίηση των δεδομένων, β) μετατροπή του δένδρου σε ένα ισοδύναμο σύνολο κανόνων, δημιουργώντας ένα κανόνα για κάθε διαδρομή από τη ρίζα προς κάποιο φύλλο (είτε με βάση κάποιο σύνολο κλαδέματος, είτε χρησιμοποιώντας μια πεισματική εκδοχή της ακρίβειας στο σύνολο εκπαίδευσης), και δ) αν για ένα νέο δεδομένο ικανοποιούνται οι συνθήκες για παραπάνω από ένα κανόνα, τότε εκτελείται αυτός με τη μεγαλύτερη ακρίβεια. Τιμές που λείπουν Σε πολλές περιπτώσεις (π.χ. ιατρικά δεδομένα) είναι πιθανό να λείπουν οι τιμές για κάποια χαρακτηριστικά. Το πρόβλημα σε μια τέτοια περίπτωση είναι ο υπολογισμός του μέτρου επιλογής χαρακτηριστικού σε τέτοιου είδους δεδομένα. -20-

31 Έστω ότι σε ένα κόμβο του δένδρου θέλουμε να υπολογίσουμε την καταλληλότητα του χαρακτηριστικού Α για έλεγχο. Ανάμεσα στα δεδομένα του κόμβου είναι το < x, c(x)>, για το οποίο η τιμή του Α είναι άγνωστη. Μια λύση είναι να του αναθέσουμε την πιο κοινή τιμή που έχουν τα δεδομένα του τρέχοντος κόμβου. Εναλλακτικά θα μπορούσαμε να του αναθέσουμε την πιο κοινή τιμή που έχουν τα δεδομένα του κόμβου με την ίδια τιμή c(x) για την εξαρτημένη μεταβλητή. Στον αλγόριθμο C4.5 ακολουθείται μια πιο σύνθετη στρατηγική. Αναθέτουμε πιθανότητες για την κάθε ξεχωριστή τιμή του χαρακτηριστικού με βάση το ποσοστό εμφάνισης των τιμών αυτών στα δεδομένα του κόμβου. Οι πιθανότητες συνεισφέρουν στον υπολογισμό του στατιστικού μέτρου, ενώ το δεδομένο μοιράζεται σε όλους τους κόμβους που ακολουθούν μαζί με την αντίστοιχη πιθανότητα. Η ίδια στρατηγική μπορεί τμηματικά να κατέβει από διάφορα κλαδιά του δένδρου, ενώ στο τέλος αθροίζουμε τις πιθανότητες για την κάθε απόφαση Μάθηση κανόνων Μια από τις πιο εκφραστικές και κατανοητές από τον άνθρωπο αναπαραστάσεις γνώσεις που μαθαίνει ένα σύστημα με επίβλεψη είναι τα σύνολα if-then-else. Ένας τρόπος μάθησης τέτοιων κανόνων είναι η κατασκευή ενός δένδρου απόφασης και η μετατροπή του σε σύνολο κανόνων. Ένας άλλος τρόπος είναι η κωδικοποίηση των κανόνων ως σειρές από bit (bitstrings) και η χρήση γενετικών αλγορίθμων για την αναζήτηση ενός καλού συνόλου κανόνων. Στην ενότητα αυτή θα παρουσιαστεί μια άλλη κατηγορία αλγορίθμων μάθησης κανόνων απευθείας από τα δεδομένα, που είναι και η πιο διαδεδομένη. Ονομάζεται στρατηγική διαίρει και βασίλευε (separate and conquer) ή σειριακής κάλυψης (sequential covering). Οι αλγόριθμοι αυτής της κατηγορίας μαθαίνουν ένα κανόνα που «καλύπτει» ένα τμήμα των δεδομένων εκπαίδευσης και αναδρομικά μαθαίνουν και άλλον έναν κανόνα που καλύπτει ένα τμήμα των υπολοίπων δεδομένων μέχρις ότου καλυφθούν όλα τα δεδομένα. Το πλεονέκτημα των αλγορίθμων αυτής της κατηγορίας είναι ότι μπορούν να χρησιμοποιηθούν για την μάθηση διαφόρων ειδών κανόνων, μεταξύ αυτών και κανόνων πρώτης τάξης (first order rules). Οι κλασικοί αλγόριθμοι σειριακής κάλυψης μαθαίνουν προτασιακούς κανόνες (propositional rules) για προβλήματα μάθησης εννοιών. Παραλλαγές αυτών των αλγορίθμων μαθαίνουν διατεταγμένα σύνολα -21-

32 κανόνων, που ονομάζονται λίστες απόφασης (decision list), για προβλήματα με περισσότερες από 2 κατηγορίες. Προβλήματα με πραγματικές τιμές για την εξαρτημένη μεταβλητή μπορούν επίσης να αντιμετωπιστούν με την μάθηση κανόνων παρεμβολής (regression rules). Τέλος, η ερευνητική περιοχή του επαγωγικού λογικού προγραμματισμού (inductive logic programming) έχει προτείνει αλγόριθμους σειριακής κάλυψης για την μάθηση λογικών προγραμμάτων που αποτελούνται από κανόνες πρώτης τάξης για προβλήματα τόσο ταξινόμησης όσο και παρεμβολής. Ο αλγόριθμος ΣΕΙΡΙΑΚΗΚΑΛΥΨΗ παρουσιάζει τα βασικά βήματα μάθησης κανόνων με την μέθοδο της σειριακής κάλυψης. Χρησιμοποιεί διάφορες συναρτήσεις μέσω των οποίων υλοποιούνται συγκεκριμένοι αλγόριθμοι της βιβλιογραφίας. Ο αλγόριθμος ξεκινάει με ένα άδειο σύνολο κανόνων. Αν υπάρχουν θετικά δεδομένα στο σύνολο εκπαίδευσης τότε καλεί τη συνάρτηση ΕΥΕΡΕΣΗΒΕΛΤΙΣΤΟΥΚΑΝΟΝΑ για την μάθηση ενός κανόνα που θα καλύπτει ένα υποσύνολο των θετικών δεδομένων. Στη συνέχεια όλα τα καλυμμένα δεδομένα αφαιρούνται από το σύνολο εκπαίδευσης, ο προηγούμενος κανόνας προστίθεται στο σύνολο των κανόνων και η διαδικασία επαναλαμβάνεται με τα υπόλοιπα δεδομένα που έχουν καλυφθεί. Η διαδικασία αυτή συνεχίζεται μέχρι να τελειώσουν τα θετικά δεδομένα ή να ικανοποιηθεί το κριτήριο παύσης κανόνα (ΚΡΙΤΗΡΙΟΠΑΥΣΗΣΚΑΝΟΝΑ). Πολλές φορές το σύνολο κανόνων που προκύπτει σε μια διαδικασία μετα-επεξεργασίας (ΜΕΤΑΕΠΕΞΕΡΓΑΣΙΑ). Η συνάρτηση ΕΥΕΡΕΣΗΒΕΛΤΙΣΤΟΥΚΑΝΟΝΑ εκτελέι αναζήτηση στο χώρο των υποθέσεων (στην περίπτωσή μας στον χώρο των δυνατών κανόνων) για να βρεί έναν κανόνα που βελτιστοποιεί το κριτήριο ποιότητας που ορίζεται στη συνάρτηση ΑΞΙΟΛΟΓΗΣΗΚΑΝΟΝΑ. Η τιμή αυτής της ευριστικής συνάρτησης είναι συνήθως -22-

33 ανάλογη με τον αριθμό των θετικών παραδειγμάτων και αντιστρόφως ανάλογη του αριθμού των αρνητικών παραδειγμάτων που καλύπτονται από τον υποψήφιο κανόνα. Η συνάρτηση διατηρεί την ταξινομημένη λίστα υποψηφίων κανόνων ΚΑΝΟΝΕΣ, η οποία αρχικοποιείται από τη συνάρτηση ΑΡΧΙΚΟΠΟΙΗΣΗΚΑΝΟΝΑ. Νέοι κανόνες θα τοποθετηθούν στο σωστό μέρος στη λίστα (ΤΑΞΙΝΟΜΗΣΗ), έτσι ώστε η λίστα ΚΑΝΟΝΕΣ να είναι πάντα ταξινομημένη σε φθίνουσα σειρά ανάλογα με την ευριστική αξιολόγηση των κανόνων. Σε κάθε κύκλο, η συνάρτηση ΕΠΙΛΟΓΗΥΠΟΨΗΦΙΩΝ επιλέγει ένα υποσύνολο των υποψηφίων κανόνων, οι οποίοι επεκτείνονται με τη συνάρτηση ΕΠΕΚΤΑΣΗΚΑΝΟΝΑ. Κάθε επέκταση αξιολογείται στη ταξινομημένη λίστα ΚΑΝΟΝΕΣ εκτός και αν η ΚΡΙΤΗΡΙΟΠΑΥΣΗ το εμποδίσει. Αν η αξιολόγηση του Νέος Κανόνας είναι καλύτερη από τον καλύτερο κανόνα που έχει βρεθεί, τότε εξισώνεται με τον ΒέλτιστοςΚανόνας. Η συνάρτηση ΦΙΛΤΡΑΡΙΣΜΑΚΑΝΟΝΩΝ επιλέγει το υποσύνολο της ταξινομημένης λίστας κανόνων που θα χρησιμοποιηθεί σε επόμενες ςπαναλήψεις. Όταν όλοι οι υποψήφιοι κανόνες έχουν επεξεργαστεί, επιστρέφεται ο καλύτερος κανόνας. -23-

34 Οι διάφοροι αλγόριθμοι σειριακής κάλυψης που υπάρχουν μπορούν να ταξινομηθούν με βάση τα εξής 3 χαρακτηριστικά: α) Αναπαράσταση των κανόνων, β) Κατεύθυνση αναζήτησης, και γ) Αλγόριθμο αναζήτησης. Αυτά τα χαρακτηριστικά αποτελούν αντικείμενο παρουσίασης στις επόμενες ενότητες της μάθησης κανόνων. Αναπαράσταση των κανόνων Όπως προαναφέρθηκε, οι αλγόριθμοι σειριακής κάλυψης μπορούν να μάθουν τόσο προτασιακούς όσο και κανόνες πρώτης τάξης. Η συνάρτηση ΕΠΕΚΤΑΣΗΚΑΝΟΝΑ θα επεκτείνει έναν κανόνα προκειμένου να δημιουργήσει έναν άλλο. Στους προτασιακού κανόνες αυτή η επέκταση θα μπορούσε να είναι η προσθήκη ενός περιορισμού σε κάποιο χαρακτηριστικό (π.χ. φύλο= θήλυ, ηλικία>18, κ.α.). Τέτοιους περιορισμούς χρησιμοποιούν οι περισσότεροι αλγόριθμοι σειριακής κάλυψης, μεταξύ των οποίων και οι γνωστοί AQ, CN2, RIPPER, PRISM. Στους κανόνες πρώτης τάξης αυτή η τροποποίηση θα μπορούσε να αφορά εκτός από περιορισμούς στα χαρακτηριστικά και σχέσεις (relations) μεταξύ των χαρακτηριστικών ή και άλλων μεταβλητών. Τις σχέσεις αυτές τις προσδιορίζει ο χρήστης στο σύστημα ως background knowledge. Τέτοιου είδους κανόνων μαθαίνει το σύστημα FOIL. Ένα πρόβλημα με τη δυνατότητα χρήσης όλων των συνδυασμών μεταβλητών ως παραμέτρους στις σχέσεις που προσδιορίζει ο χρήστης, είναι ότι ο χώρος αναζήτησης μεγαλώνει εκθετικά με τον αριθμό των χαρακτηριστικών στο σύνολο εκπαίδευσης. Αυτό έχει ως αποτέλεσμα την αύξηση του υπολογιστικού κόστους και τη μείωση της ακρίβειας. Για το σκοπό αυτό κάποια άλλα συστήματα και αλγόριθμοι περιόρισαν τις δυνατές τροποποιήσεις ενός κανόνα επιβάλλοντας κάποιους απλούς συντακτικούς περιορισμούς που σχετίζονται με τον τύπο των μεταβλητών ή τη θέση που μπορούν να εμφανιστούν νέες μεταβλητές σε μια σχέση, αλλά και άλλους συντακτικούς περιορισμούς όπως συμμετρίες, μέγιστο μήκος κανόνα και μέγιστος αριθμός μεταβλητών. Τέτοιους συβτακτικούς περιορισμούς υποστηρίζουν τα συστήματα PROLOG και mfoil. -24-

35 Κατεύθυνση αναζήτησης Ο χώρος των δυνατών κανόνων μπορεί να διαταχθεί ανάλογα με τη γενικότητά τους, όπως ένας κανόνας Α είναι «πιο γενικός ή ίσος» με ένα κανόνα Β, αν και μόνο αν ο Α καλύπτει όλα τα δεδομένα που καλύπτει ο Β. Αντίστοιχα ο Β λέγεται ότι είναι «πιο ειδικός» από τον Α. Ένας αλγόριθμος σειριακής κάλυψης μπορεί να εκτελέσει αναζήτηση σε αυτόν τον χώρο. Από πάνω προς τα κάτω (top-down), όπου η αναζήτηση για έναν κανόνα ξεκινά από τον πιο γενικό, ο οποίος σταδιακά εξειδικεύεται. Η αναζήτηση από πάνω προς τα κάτω είναι και η πιο συνηθισμένη αφού συναντάται στα περισσότερα γνωστά συστήματα σειριακής κάλυψης, όπως τα AQ, CN2, RIPPER, Prism, FOIL. Από κάτω προς τα πάνω (bottom-up), όπου η αναζήτηση ξεκινάει από έναν συγκεκριμένο ειδικό κανόνα, ο οποίος σταδιακά γενικεύεται. Διπλής κατεύθυνσης (bidirectional). Οι διαφορετικές κατευθύνσεις αναζήτησης υλοποιούνται στη συνάρτηση ΕΠΕΚΤΑΣΗΚΑΝΟΝΑ, η οποία γενικεύει ή εξειδικεύει έναν κανόνα ανάλογα με τη στρατηγική αναζήτησης. Αρχικά βέβαια η συνάρτηση ΑΡΧΙΚΟΠΟΙΗΣΗΚΑΝΟΝΑ θα θέσει ως αρχικό κανόνα είτε τον πιο γενικό είτε έναν ειδικό κανόνα. Αλγόριθμος αναζήτησης Η τυφλή αναζήτηση στο χώρο των δυνατών κανόνων έχει απαγορευτικό υπολογιστικό κόστος. Γι αυτό το λόγο οι αλγόριθμοι σειριακής κάλυψης χρησιμοποιούν ευριστικές συναρτήσεις για τη διάταξη των κανόνων. Ο αλγόριθμος αναζήτησης που χρησιμοποιείται συχνότερα είναι η αναρρίχηση λόφων (hill climbing). Ο αλγόριθμος αυτός επιλέγει κάθε φορά την επέκταση του κανόνα που έχει το μεγαλύτερο όφελος και συνεχίζει με την μεγαλύτερη επέκταση μέχρι να μην μπορεί πλέον να επεκτείνει τον κανόνα ή να μην υπάρχει περισσότερο όφελος με κάποια επέκταση. Η αναρρίχηση λόφων υλοποιείται μέσω της συνάρτησης ΦΙΛΤΡΑΡΙΣΜΑ ΚΑΝΟΝΩΝ της συνάρτησης ΕΥΡΕΣΗΒΕΛΤΙΣΤΟΥΚΑΝΟΝΑ, η -25-

36 οποί =α θα πρέπει να επιστρέφει μόνο τον πρώτο και καλύτερο κανόνα της ταξινομημένης λίστας με τους τροποποιημένος κανόνες. Η αναρρίχηση λόφων χρησιμοποιείται από τους αλγόριθμους AQ, CN2, RIPPER, FOIL και Prism. Ένας άλλος αλγόριθμος αναζήτησης που χρησιμοποιείται συχνά είναι η ακτινωτή αναζήτηση (beam search).σε αυτή την περίπτωση οι αλγόριθμοι σειριακής κάλυψης διατηρούν μια «ακτίνα» από b κανόνες αντί μόνο του καλύτερου κανόνα. Έτσι εξερευνούν μεγαλύτερο μέρος του χώρου αναζήτησης από ότι με την αναρρίχηση λόφων και έχουν περισσότερες πιθανότητες εύρεσης καλύτερων κανόνων. Παράλληλα το υπολογιστικό κόστος διατηρείται κοντά στα χαμηλά επίπεδα της αναρρίχησης λόφων. Η ακτινωτή αναζήτηση υλοποιείται μέσω της συνάρτησης ΦΙΛΤΡΑΡΙΣΜΑΚΑΝΟΝΩΝ της συνάρτησης ΕΥΡΕΣΗΒΕΛΤΙΣΤΟΥΚΑΝΟΝΑ, η οποία θα πρέπει να επιστρέφει τους b καλύτερους κανόνες της ταξινομημένης λίστας με τους τροποποιημένους κανόνες. Η ακτινωτή αναζήτηση χρησιμοποιείται από τους αλγόριθμους AQ, CN2, και mfoil. Η αναρρίχηση λόφων και η ακτινωτή αναζήτηση πάσχουν από το φαινόμενο της «μυωπίας», επειδή αποθηκεύουν μόνο ένα συγκεκριμένο αριθμό από υποψήφιους κανόνες και κλαδεύουν τους υπόλοιπους. Ένας τρίτος αλγόριθμος αναζήτησης που αντιμετωπίζει αυτό το πρόβλημα είναι η αναζήτηση πρώτα στο καλύτερο best-first search. Σε αυτόν τον αλγόριθμο η συνάρτηση ΦΙΛΤΡΑΡΙΣΜΑΚΑΝΟΝΩΝ δεν αφαιρεί κανένα κανόνα. Η αναζήτηση πρώτα στο καλύτερο χρησιμοποιείται στα συστήματα ML-SMART και PROGOL Μάθηση κατά Bayes Η συλλογιστική κατά Bayes προσεγγίζει το θέμα της εξαγωγής συμπερασμάτων με βάση τις πιθανότητες. Στηρίζεται στην υπόθεση ότι οι ποσότητες που μας ενδιαφέρουν διέπονται από κατανομές πιθανοτήτων και ότι η εξαγωγή συμπερασμάτων με αυτές τις πιθανότητες σε συνδυασμό με δεδομένα που παρατηρούνται μπορούν να οδηγήσουν στη λήψη βέλτιστων αποφάσεων. Η συλλογιστική κατά Bayes είναι πολύ σημαντική στη μηχανική μάθηση για δύο λόγους. Παρέχει τη βάση για τη ανάπτυξη πρακτικών και αποτελεσματικών αλγορίθμων μάθησης που χειρίζονται πιθανότητες. Οι αλγόριθμοι μάθησης κατά Bayes έχουν σε -26-

37 ορισμένα προβλήματα την ίδια απόδοση με άλλες γνωστές μεθόδους, όπως τα δένδρα απόφασης και τα νευρωνικά δίκτυα. Επιπλέον είναι από τους πιο αποτελεσματικούς αλγορίθμους για ταξινόμηση κειμένων. Παρέχει ένα πλαίσιο ανάλυσης άλλων αλγορίθμων που δεν χειρίζονται πιθανότητες. Μπορεί να δώσει απαντήσεις σε ερωτήματα όπως «Πότε οι αλγόριθμοι μάθησης εννοιών καταλήγουν στην πιο πιθανή υπόθεση;» και «Πως μπορεί να εξηγηθεί με πιθανότητες η μεροληψία (bias) των αλγορίθμων δένδρων απόφασης;». Στη μάθηση κατά Bayes κάθε παράδειγμα μπορεί προοδευτικά να αυξήσει ή να μειώσει την πιθανότητα να είναι σωστή μια υπόθεση. Το γεγονός αυτό παρέχει έναν πιο ευέλικτο τρόπο μάθησης σε σχέση με άλλους αλγόριθμους που διαγράφουν τελείως μια υπόθεση αν είναι ασύμβατη έστω και με ένα παράδειγμα. Ένα άλλο χαρακτηριστικό της μάθησης κατά Bayes είναι ότι τα δεδομένα μπορούν να συνδυαστούν με προϋπάρχουσα γνώση για την εξαγωγή της τελικής υπόθεσης. Η προϋπάρχουσα γνώση παρέχεται είτε ως αρχικές τιμές πιθανότητας για την κάθε υποψήφια υπόθεση είτε ως κατανομή πιθανοτήτων των υποψήφιων υποθέσεων στα δεδομένα εκπαίδευσης. Εκτός από το στάδιο της εκπαίδευσης, η μάθηση κατά Bayes δίνει ευελιξία και στο στάδιο της εφαρμογής της γνώσης. Τα μοντέλα που προκύπτουν από μια διαδικασία μάθησης κατά Bayesμπορούν να κάνουν προβλέψεις με πιθανότητα. Για παράδειγμα μια πρόβλεψη τέτοιου τύπου είναι «αυτός ο ασθενής με πνευμονία έχει 93% πιθανότητα να θεραπευθεί τελείως». Ένα μειονέκτημα της μάθησης κατά Bayes είναι ότι απαιτεί τη γνώση αρκετών πιθανοτήτων. Αν οι τιμές αυτών των πιθανοτήτων δεν είναι γνωστές, τότε πρέπει να υπολογιστούν με βάση εμπειρική γνώση σχετικά με το πεδίο εφαρμογής, διαθέσιμα δεδομένα και υποθέσεις για τη μορφή της κατανομής αυτών των πιθανοτήτων. Ένα άλλο μειονέκτημα είναι ότι παρουσιάζουν πολύ υψηλή πολυπλοκότητα. Στη γενικότερη περίπτωση η πολυπλοκότητα είναι γραμμική σε σχέση με τον αριθμό των υποψηφίων υποθέσεων. Αλλά, σε κάποιες ειδικές περιπτώσεις το κόστος μπορεί να μειωθεί σημαντικά. Ωστόσο ακόμα και σε περιπτώσεις που η υπολογιστική -27-

38 πολυπλοκότητα της μάθησης κατά Bayes καθιστά απαγορευτική τη χρήση της, μπορεί να χρησιμοποιηθεί ως κριτήριο για τον έλεγχο της απόδοσης άλλων μεθόδων. Θεώρημα Bayes Το θεώρημα του Bayes ορίζεται ως εξής: Ph ( D) = PD ( hph ) ( ) PD ( ) όπου: P(h) είναι η προϋπάρχουσα πιθανότητα να ισχύει η υπόθεση h, χωρίς να έχουμε παρατηρήσει δεδομένα. Εκφράζει τη γνώση που μπορεί να έχουμε για τη συγκεκριμένη εφαρμογή υπό μορφή πιθανοτήτων για τις εναλλακτικές υποθέσεις. Αν δεν έχουμε καθόλου γνώση, τότε δίνουμε την ίδια πιθανότητα σε όλες τις υποθέσεις. (Π.χ. η πιθανότητα να έχει κάποιος γρίπη). P(D) είναι η προϋπάρχουσα πιθανότητα να παρατηρηθούν τα δεδομένα D, χωρίς να γνωρίζουμε ποια υπόθεση ισχύει. (Π.χ. η πιθανότητα να έχει κάποιος πυρετό). P(D/h)είναι η υπό συνθήκη πιθανότητα να παρατηρηθούν τα δεδομένα D, όταν ισχύει η υπόθεση h. (Π.χ. η πιθανότητα να έχει κάποιος πυρετό, όταν έχει γρίπη). P(h/D) είναι η υπό συνθήκη πιθανότητα να ισχύει η υπόθεση h, όταν έχουν παρατηρηθεί τα δεδομένα D. Αυτή είναι η πιθανότητα που μας ενδιαφέρει στη Μηχανική Μάθηση. Εκφράζει τη βεβαιότητα ότι ισχύει η υπόθεση h έπειτα από την παρατήρηση των δεδομένων εκπαίδευσης D.(Π.χ. η πιθανότητα να έχει κάποιος γρίπη, όταν έχει πυρετό). -28-

39 Αφελής ταξινόμηση Bayes Έστω μια περίπτωση x που περιγράφεται από τις εξής τιμές για τα χαρακτηριστικά < α 1, α 2, α n >. Σύμφωνα με τη μάθηση κατά Bayes η κατηγορία της περίπτωσης αυτής θα είναι η πιο πιθανή c Cμε βάση τα δεδομένα εκπαίδευσης: c = arg max{ P( c a, a,..., a )} B c C 1 2 n Με τη βοήθεια του θεωρήματος Bayes η παραπάνω έκφραση ξαναγράφεται: c B = Pa (, a,..., a cpc ) ( ) 1 2 n argc C max{ } Pc ( a1, a2,..., an) Επειδή ο παρονομαστής είναι σταθερός, αρκεί να υπολογιστούν οι όροι του αριθμητή από τα δεδομένα εκπαίδευσης, για να αποφασιστεί η πιο πιθανή κατηγορία. Ο όρος P(c) μπορεί να υπολογιστεί εύκολα, μετρώντας τη συχνότητα εμφάνισης της κάθε κατηγορίας c στα δεδομένα εκπαίδευσης. Αντίθετα ο όρος P(α 1, α 2, α n c), πρακτικά δεν μπορεί να υπολογιστεί, εκτός και αν είναι διαθέσιμο ένα πάρα πολύ μεγάλο σύνολο δεδομένων εκπαίδευσης. Ο λόγος είναι ότι ο αριθμός όλων των δυνατών όρων P(α 1, α 2, α n c) που μπορεί να προκύψουν είναι ίσος με τον αριθμό των δυνατών περιπτώσεων επί των αριθμών των κατηγοριών. Επομένως, για να υπολογιστεί μια καλή προσέγγιση του κάθε όρου θα πρέπει αυτός να εμφανίζεται πολλές φορές στα δεδομένα εκπαίδευσης. Για να αντιμετωπίσει αυτό το πρόβλημα ο αφελής ταξινομητής Bayes (naïve Bayes classifier NB) κάνει τη θεώρηση ότι οι τιμές των χαρακτηριστικών δεδομένης μιας κατηγορίας, είναι ανεξάρτητες μεταξύ τους. Η θεώρηση αυτή θεωρείται «αφελής» επειδή στην πράξη τα χαρακτηριστικά δεν είναι ανεξάρτητα μεταξύ τους. Παρόλα αυτά, ο αφελής ταξινομητή Bayes έχει σε ορισμένες εφαρμογές απόδοση παρόμοια με τα δένδρα απόφασης και τα νευρωνικά δίκτυα. Δεδομένης μιας κατηγορίας c, η πιθανότητα να παρατηρηθούν οι τιμές < α 1, α 2,...,α n > είναι ίση με το γινόμενο των πιθανοτήτων να παρατηρηθεί η κάθε μια από τις τιμές αυτές ξεχωριστά: -29-

40 Pa ( 1, a2,..., an c) = npa ( i c) Επομένως, η πρόβλεψη του αφελούς ταξινομητή Bayes είναι: i= 1 n c = arg max{ P( c) P( a c )} NB c C i i= 1 Παρατηρούμε ότι πλέον το πλήθος των όρων P(α i c) που πρέπει να υπολογιστούν από τα δεδομένα εκπαίδευσης είναι το γινόμενο των διαφορετικών τιμών όλων των χαρακτηριστικών επί τον αριθμό των κατηγοριών. Ο αριθμός αυτός είναι πολύ μικρότερος σε σχέση με τον προηγούμενο αριθμό των όρων P(α 1, α 2, α n c). Όταν ισχύει η θεώρηση της ανεξαρτησίας των τιμών των χαρακτηριστικών, τότε η απόφαση του ΝΒ, ισούται με την ποιο πιθανή κατηγορία c NB. Η μάθηση σύμφωνα με τον αλγόριθμο ΝΒ συνίσταται στον υπολογισμό των πιθανοτήτων P(α i c) και P(c) με βάση τη συχνότητα εμφάνισης των τιμών στα δεδομένα εκπαίδευσης. Αν το α i είναι αριθμητικό χαρακτηριστικό, τότε αρχικά υπολογίζεται ο μέσος όρος μ c και η τυπική απόκλιση σ c των τιμών του χαρακτηριστικού για τα παραδείγματα με τιμή c για την εξαρτημένη μεταβλητή. Η ποσότητα P(α i c) ισούται με g(α i, μ c, σ c ), όπου η g είναι η συνάρτηση πυκνότητας πιθανότητας για την κατανομή πιθανότητας (π.χ. κανονική ή Gauss), την οποία θεωρούμε ότι ακολουθούν οι τιμές του χαρακτηριστικού. Οι πιθανότητες που υπολογίζονται αποτελούν την υπόθεση που «έμαθε» ο αλγόριθμος. Στη συνέχεια, κάθε νέα περίπτωση ταξινομείται σύμφωνα με τον παραπάνω τύπο. Μια άλλη λύση στο πρόβλημα των αριθμητικών χαρακτηριστικών είναι η διακριτοποίησή τους. Σε μια μελέτη σχετικά με την διακριτοποίηση αριθμητικών χαρακτηριστικών, έγινε σύγκριση της απόδοσης του ΝΒ σε 16 σύνολα δεδομένων, τόσο υποθέτοντας κατανομή Gauss για τα αριθμητικά χαρακτηριστικά όσο και διακριτοποιώντας τα με διάφορες μεθόδους. Τα αποτελέσματα έδειξαν ότι η χρήση της διακριτοποίησης αύξησε κατά πολύ τη μέση ακρίβεια του ΝΒ. Ο αφελής ταξινομητής Bayes απαιτεί απλά ένα πέρασμα σε μια βάση δεδομένων για τον υπολογισμό των πιθανοτήτων και επομένως για τη φάση της εκπαίδευσης, οπότε είναι ένας σχετικά γρήγορος αλγόριθμος. Ωστόσο το κύριο μειονέκτημά του είναι ότι η αποδοτικότητα πρόβλεψης των μοντέλων που παράγει είναι μειωμένη όταν -30-

41 υπάρχουν αλληλεπιδράσεις μεταξύ δύο ή περισσότερων χαρακτηριστικών (πεδίων), διότι βασίζεται στην ακριβώς αντίθετη παραδοχή Μάθηση με βάση τις περιπτώσεις Αντίθετα με τις περισσότερες μεθόδους της μηχανικής μάθησης που αναζητούν μια γενική περιγραφή των δεδομένων, οι αλγόριθμοι της Μάθησης με Βάση τις Περιπτώσεις (Instance-Based Learning-IBL) απλά αποθηκεύουν τα παραδείγματα εκπαίδευσης. Η μάθηση αναβάλλεται μέχρι να χρειαστεί να γίνει πρόβλεψη για μια νέα περίπτωση. Για το λόγο αυτό οι αλγόριθμοι αυτοί ονομάζονται και οκνηροί (lazy). Η πρόβλεψη της τιμής της εξαρτημένης μεταβλητής μιας νέας περίπτωσης, στηρίζεται σε έναν αριθμό αποθηκευμένων παραδειγμάτων που μοιάζουν με τη νέα περίπτωση. Στη συνέχεια θα παρουσιαστεί ο πιο διαδεδομένος αλγόριθμος μάθησης με βάση τις περιπτώσεις. k Πλησιέστεροι Γείτονες Ο αλγόριθμος των κ Πλησιέστερων Γειτόνων (κ Nearest Neighbor knn) κάνει πρόβλεψη για μια νέα περίπτωση με βάση τα k πλησιέστερα υποθηκευμένα παραδείγματα, όπου k είναι μια παράμετρος που καθορίζει ο χρήστης. Αρχικά πρέπει να ανακτηθούν τα k πλησιέστερα παραδείγματα. Αυτό γίνεται υπολογίζοντας την απόσταση κάθε αποθηκευμένου παραδείγματος με τη νέα περίπτωση, και επιλέγοντας τα k παραδείγματα με την μικρότερη απόσταση. Έστω μια νέα περίπτωση x : < α 1 (x ),, α m (x ) > και αποθηκευμένα παραδείγματα x i :<α 1 (xi),,α m (x i ),y(x i )>. Τυπικά μέτρα απόστασης είναι : Η Ευκλείδεια απόσταση 2 ( aj( xi) aj( x')) (2.10) j -31-

42 Η απόσταση Manhattan ή city-block aj( xi) aj( x') (2.11) j Στη συνέχεια γίνεται η πρόβλεψη. Ο αλγόριθμος kνν μπορεί να χρησιμοποιηθεί τόσο σε προβλήματα ταξινόμησης όσο και σε προβλήματα παρεμβολής. Η πρόβλεψη της τιμής μιας νέας περίπτωσης x με βάση τα k πλησιέστερα παραδείγματα n i είναι: η πιο κοινή κατηγορία c από το σύνολο κατηγοριών C ανάμεσα στα πλησιέστερα παραδείγματα για προβλήματα ταξινόμησης όπου δ(a,b) = 1 να a = b και δ(a,b) = 0 αν a b k arg max δ c C ( cyn, ( i)) (2.12) i= 1 ο μέσος όρος της τιμής της εξαρτημένης μεταβλητής στα πλησιέστερα παραδείγματα για προβλήματα παρεμβολής k i= 1 y( n ) k i (2.13) Το σχήμα 2.3 δείχνει ένα σύνολο από δυσδιάστατα δεδομένα εκπαίδευσης για ένα πρόβλημα ταξινόμησης με δύο τάξεις (+ και -). Στο σχήμα βλέπουμε και μια νέα περίπτωση x q η οποία πρόκειται να ταξινομηθεί σύμφωνα με τον αλγόριθμο kνν. Παρατηρούμε ότι για k=1 η πρόβλεψη του αλγόριθμου είναι η κατηγορία +, ενώ για k=5 έχουμε την κατηγορία

43 Σχήμα 2.3 Παράδειγμα ταξινόμησης με τη χρήση του αλγόριθμου κνν. Ο αλγόριθμος kνν δεν παράγει στην πραγματικότητα ποτέ ένα μοντέλο της συνάρτησης στόχου από τα δεδομένα εκπαίδευσης. Αντίθετα, όταν ζητείται πρόβλεψη για μια νέα περίπτωση, τότε εκείνη τη στιγμή υπολογίζει την τιμή της εξαρτημένης μεταβλητής. Ωστόσο, έμμεσα υπάρχει ένα μοντέλο που αποτελείται από τις προβλέψεις του αλγόριθμου για κάθε δυνατή είσοδο. Μια διαδεδομένη επέκταση του kνν είναι η στάθμιση της συνεισφοράς του κάθε γείτονα, έτσι ώστε όσο πιο κοντά βρίσκεται ένας γείτονας τόσο μεγαλύτερο να είναι το βάρος του. Για μια νέα περίπτωση x q, μπορούμε να ορίσουμε το βάρος ενός γείτονα x i, ως: w d x x 2 i = 1/ ( q, i ) (2.14) Η απόφαση του knn γίνεται σε αυτή την περίπτωση: Για προβλήματα ταξινόμησης: k arg max w δ ( c, f( x )) (2.15) c C i i i= 1 όπου δ(α,b) = 1 αν α=b και δ(α,b) = 0 αν α b -33-

44 Για προβλήματα παρεμβολής: k i= 1 wf( x) k i i= 1 w i i (2.16) Ο Αλγόριθμος knn υπολογίζει την απόσταση μεταξύ των περιπτώσεων με βάση όλα τα χαρακτηριστικά. Αυτό μπορεί να μειώσει σημαντικά την απόδοση του αλγορίθμου, όταν υπάρχουν πολλά χαρακτηριστικά που δεν επηρεάζουν την εξαρτημένη μεταβλητή. Το φαινόμενο της ύπαρξης πολλών άσχετων χαρακτηριστικών ονομάζεται κατάρα των διαστάσεων (curse of dismentionality). Για να αντιμετωπιστεί αυτό το πρόβλημα έχουν προταθεί μέθοδοι τόσο για τη στάθμιση των χαρακτηριστικών, όσο και για την επιλογή ενός υποσυνόλου χαρακτηριστικών. Ένα άλλο πρακτικό πρόβλημα του knn είναι η μεγάλη υπολογιστική πολυπλοκότητα κατά την επεξεργασία νέων περιπτώσεων. Το πρόβλημα αυτό αντιμετωπίζεται με αποτελεσματικές μεθόδους δεικτοδότησης, όπως το kd-tree. 2.2 Ομαδοποίηση Η ομαδοποίηση (Clustering) στοχεύει στην εύρεση υπαρκτών φυσικών διαχωρισμών ενός συνόλου (συνήθως πολυδιάστατων) δεδομένων σε υποσύνολα έτσι ώστε τα δεδομένα που ανήκουν στο ίδιο υποσύνολο να μοιάζουν όσο το δυνατόν περισσότερο και δεδομένα που ανήκουν σε διαφορετικά υποσύνολα να διαφέρουν όσο το δυνατόν περισσότερο. Αυτά τα υποσύνολα δεδομένων ονομάζονται ομάδες (clusters). Στο σχήμα 2.4 απεικονίζεται γραφικά το αποτέλεσμα μιας διαδικασίας ομαδοποίησης σε δεδομένα αγοραστών σπορ αυτοκινήτων, με βάση την ηλικία (άξονας x ), το ετήσιο εισόδημα (άξονας y) και το φύλο. Διακρίνονται τρεις ομάδες: «αγοραστές νεαρής ηλικίας», «άνδρες αγοραστές με υψηλό εισόδημα» και «άνδρες αγοραστές ηλικία περίπου 44». -34-

45 Σχήμα 2.4 Παράδειγμα ομαδοποίησης αγοραστών σπορ αυτοκινήτων Η ομαδοποίηση απαιτεί κάποιο μέτρο της ομοιότητας ή διαφοράς μεταξύ των δεδομένων. Συνήθως μετράμε την «απόσταση» μεταξύ των δεδομένων. Έστω ένα σύνολο δεδομένων D, και δύο δεδομένα του x, y που περιγράφονται από m χαρακτηριστικά (x 1, x 2,, x m ), (y 1, y 2,, y m ). Τυπικά μέτρα απόστασης d(xy) αυτών των δύο δεδομένων είναι: Η Ευκλείδεια απόσταση 2 ( xi yi) (2.17) i Η απόσταση Manhattan ή city-block xi yi (2.18) i Αν κάποια χαρακτηριστικά είναι διακριτά, τότε θεωρούμε την απόσταση τιμών τους 0 αν πρόκειται για την ίδια τιμή και 1 αν πρόκειται για διαφορετικές τιμές. Τα αριθμητικά χαρακτηριστικά θα πρέπει να ομογενοποιούνται ώστε η απόστασή τους να πέφτει μέσα στο διάστημα [0..1]. Αν min και max είναι η ελάχιστη και μέγιστη τιμή ενός αριθμητικού χαρακτηριστικού, και x i είναι η τιμή του για κάποιο δεδομένο, τότε αυτή μετατρέπεται εύκολα στο διάστημα [0..1] με τον τύπο: x min ' i x = max min (2.19) -35-

46 Υπάρχουν δύο γενικές κατηγορίες αλγορίθμων ομαδοποίησης: Βασισμένοι σε διαχωρισμούς (Partition-based). Προσπαθούν να βρουν τον καλύτερο διαχωρισμό ενός συνόλου δεδομένων σε ένα συγκεκριμένο αριθμό ομάδων. Ιεραρχικοί. Προσπαθούν με ιεραρχικό τρόπο να ανακαλύψουν τον αριθμό και τη δομή των ομάδων Αλγόριθμοι βασισμένοι σε διαχωρισμούς Ένας από τους πιο γνωστούς αλγόριθμους ομαδοποίησης αυτής της κατηγορίας είναι ο k-μέσοι (k-means). Ο αριθμός k των ομάδων καθορίζεται πριν την εκτέλεση του αλγόριθμου. Ο αλγόριθμος ξεκινά διαλέγοντας k τυχαία σημεία από τα δεδομένα ως τα κέντρα ων ομάδων. Έπειτα αναθέτει κάθε σημείο στην ομάδα της οποίας το κέντρο είναι πιο κοντά (μικρότερη απόσταση) σε αυτό το σημείο. Στη συνέχεια υπολογίζει τα μέσα διανύσματα των σημείων που ανήκουν σε κάθε ομάδα, και ορίζει αυτά ως νέα κέντρα των ομάδων. Τα δύο τελευταία βήματα επαναλαμβάνονται για ένα προκαθορισμένο αριθμό βημάτων ή μέχρι να μην υπάρχει αλλαγή στο διαχωρισμό των σημείων σε ομάδες. Έστω για παράδειγμα τα σημεία του σχήματος 2.5. Αν θεωρήσουμε ότι θα τρέξουμε τον αλγόριθμο για k=2, τότε αρχικά επιλέγουμε δύο τυχαία κέντρα για τις δύο ομάδες. Έστω τα σημεία 3 και 4. Στη συνέχεια, υπολογίζουμε τις αποστάσεις όλων των σημείων από τα κέντρα και αναθέτουμε τα σημεία στα πιο κοντινά κέντρα. Τα σημεία 1,2,3 και 5 θα ανήκουν στην ομάδα Α με κέντρο το 3, ενώ τα σημεία 4,6,7 στην ομάδα Β με κέντρο -36-

47 το 4. Έπειτα υπολογίζουμε ξανά τα κέντρα σύμφωνα με τα σημεία των ομάδων, υπολογίζοντας το μέσο όρο των τιμών τους. Τα νέα κέντρα συμβολίζονται στο σχήμα μας με ρόμβο. Επαναλαμβάνουμε τον υπολογισμό των αποστάσεων όλων των σημείων από τα νέα κέντρα και αναθέτουμε τα σημεία στα πιο κοντινά. Παρατηρούμε ότι το σημείο 2 ανήκει πλέον στην ομάδα Β. Έπειτα υπολογίζουμε ξανά τα κέντρα σύμφωνα με τα νέα σημεία των ομάδων, υπολογίζοντας το μέσο όρο τους. Τα νέα κέντρα συμβολίζονται στο σχήμα μας με τετράγωνα. Επαναλαμβάνουμε τον υπολογισμό των αποστάσεων όλων των σημείων από τα νέα κέντρα και δεν παρατηρείται καμία αλλαγή, οπότε η διαδικασία τερματίζει. Σχήμα 2.5: Παράδειγμα εκτέλεσης αλγορίθμου k-means Η έκδοση του αλγορίθμου k-means που περιγράφηκε παραπάνω είναι η κατά δέσμες (batch), στην οποία όλα τα δεδομένα ανατίθενται σε κέντρα και μετά υπολογίζονται τα νέα κέντρα. Υπάρχει και η συνεχόμενη (online) έκδοση, όπου τα κέντρα ενημερώνονται αμέσως μόλις κάποιο στοιχείο δεδομένων ανατεθεί σε διαφορετική ομάδα από αυτήν που ήταν πριν. Τα δεδομένα εξετάζονται το ένα πίσω από το άλλο κυκλικά μέχρι να μην προκύψουν αλλαγές στις ομάδες. Η πολυπλοκότητα του k-means είναι O(KnI), όπου I είναι ο αριθμός των επαναλήψεων και n ο αριθμός των δεδομένων. Σε κάθε επανάληψη, υπολογίζουμε για κάθε σημείο τις αποστάσεις του από τα κέντρα (άρα συνολικά Kn αποστάσεις) και επιλέγουμε την ελάχιστη απόσταση. Στη συνέχεια για τον υπολογισμό των νέων κέντρων η πολυπλοκότητα είναι Ο(n) Ιεραρχικοί αλγόριθμοι -37-

48 Η ιεραρχική ομαδοποίηση αποτελεί έναν ελκυστικό τρόπο ομαδοποίησης δεδομένων, ο οποίος συναντάται μεταξύ άλλων περιοχών στη βιολογία και συγκεκριμένα στην οργάνωση των ειδών της χλωρίδας και πανίδας. Οι ιεραρχικοί αλγόριθμοι ομαδοποίησης συνδυάζουν ομάδες σε μεγαλύτερες ομάδες ή διαιρούν μεγάλες ομάδες σε μικρότερες. Το αποτέλεσμα των αλγορίθμων αυτών είναι μια ιεραρχία από διαφορετικές ομαδοποιήσεις των δεδομένων στο ένα άκρο της οποίας βρίσκεται μια μόνο ομάδα με όλα τα δεδομένα, και το άλλο τόσες ομάδες όσες και ο αριθμός των δεδομένων. Με βάση την κατεύθυνση ανάπτυξης της ιεραρχίας που ακολουθούν, οι ιεραρχικοί αλγόριθμοι ομαδοποίησης χωρίζονται στους συγχωνευτικούς (agglomerative) και στους διαιρετικούς (divisive).οι συγχωνευτικοί αλγόριθμοι είναι οι πιο σημαντικοί και διαδεδομένοι από τους δύο. Βασίζονται σε μετρικές απόστασης ανάμεσα σε ομάδες. Δεδομένου μιας αρχικής ομαδοποίησης (π.χ. κάθε σημείο αποτελεί μια ομάδα), βρίσκουν τις δύο πιο κοντινές ομάδες και τις αντικαθιστούν με μία (συγχωνεύουν). Η διαδικασία συνεχίζεται μέχρις ότου προκύψει μία μόνο ομάδα. Βέβαια θα πρέπει να προσδιοριστούν κάποιες λεπτομέρειες του αλγορίθμου, όπως: Πως υπολογίζεται η απόσταση μεταξύ δύο ομάδων; Μια επιλογή είναι να υπολογίσουμε την απόσταση μεταξύ των μέσων διανυσμάτων των σημείων που ανήκουν στην κάθε ομάδα. Δύο άλλες επιλογές είναι να υπολογίσουμε την απόσταση μεταξύ των δύο πιο κοντινών ή πιο απομακρυσμένων σημείων των ομάδων. Ποια ομαδοποίηση από όλη την ιεραρχία ομαδοποιήσεων είναι η καλύτερη; Μια επιλογή είναι αυτή για την οποία το «πλάτος» κάθε ομάδας είναι σημαντικά μικρότερο από την απόσταση της από τον κοντινότερο γείτονα. Εναλλακτικά μπορεί κάποιος να μελετήσει περισσότερο ορισμένες ομαδοποιήσεις των δεδομένων, ανάλογα με την εφαρμογή και ον αριθμό των ομάδων που υποψιάζεται. Η πολυπλοκότητα της συγχωνευτικής ιεραρχικής ομαδοποίησης είναι στην καλύτερη περίπτωση Ο(n 2 ), επειδή έχουμε n επαναλήψεις του βασικού βρόγχου και σε κάθε επανάληψη πρέπει να υπολογιστεί η μικρότερη απόσταση ανάμεσα σε n k + 1 ομάδες. Οι ιεραρχίες που προκύπτουν από τους αλγορίθμους ιεραρχικής ομαδοποίησης μπορούν να απεικονιστούν με έναν πρακτικό και εύκολο τρόπο μέσω ενός γραφήματος δενδρικής μορφής, το οποίο ονομάζεται δενδρόγραμμα. Στο σχήμα 2.6, αριστερά -38-

49 φαίνονται κάποια σημεία στο διδιάστατο χώρο και δεξιά το δενδρόγραμμα που προκύπτει μέσω ιεραρχικής ομαδοποίησης. 2.6: Δενδρόγραμμα ιεραρχικής ομαδοποίησης 2.3 Εξόρυξη Κανόνων Συσχέτισης Οι κανόνες συσχέτισης (association rules) πρωτοεμφανίστηκαν τη δεκαετία του 90. Η ιδέα της εξόρυξης κανόνων συσχέτισης προέκυψε από την ανάλυση καλαθιών αγοράς (market basket analysis) όπου προκύπτουν κανόνες της μορφής «Ένας πελάτης που αγοράζει το προϊόν x 1 και x 2 θα αγοράσει και το προϊόν y με πιθανότητα c%». Το γεγονός ότι η εξόρυξη κανόνων συσχέτισης είναι εφαρμόσιμη σε μια μεγάλη γκάμα εμπορικών εφαρμογών σε συνδυασμό με την εύκολη κατανόηση των κανόνων που προκύπτουν από τους ανθρώπους των επιχειρήσεων συνέβαλε στη μεγάλη δημοτικότητα τους μέχρι και σήμερα. Στο πρόβλημα αυτό έχουμε ένα μεγάλο αριθμό διαφορετικών αντικειμένων (items) I = {x1,,xn}.ένα σύνολο Q I με k = Q αντικείμενα ονομάζεται k-αντικείμενοσύνολο (k-itemset) ή απλά αντικειμενοσύνολο itemset. Έστω D μια βάση δεδομένων από συναλλαγές Τ, όπου κάθε συναλλαγή είναι ένα αντικειμενοσύνολο του Ι. Θα λέμε ότι μια συναλλαγή Τ υποστηρίζει ένα αντικειμενοσύνολο X, αν ισχυει X T. Το ποσοστό -39-

50 των συναλλαγών Τ μιας βάσης δεδομένων D που υποστηρίζουν ένα αντικειμενοσύνολο X, ονομάζεται υποστήριξη του X, supp(x) = T D X T / D. Ένας κανόνας συσχέτισης είναι μια πρόταση της μορφής X => Y, όπου X,Y είναι αντικειμενοσύνολα και ισχύει X Y = Ø. Για παράδειγμα, ένας τέτοιος κανόνας θα μπορούσε να λέει : «όποιος αγοράζει καφέ και ζάχαρη (X) αγοράζει και αναψυκτικά (Y)». Βέβαια, απλή αναφορά ενός τέτοιου κανόνα δεν έχει και μεγάλη αξία αν δεν συνοδεύεται από κάποια ποσοτικά μεγέθη που να τον χαρακτηρίζουν. Τέτοια μεγέθη είναι η υποστήριξη (support) και η εμπιστοσύνη (confidence) που ορίζονται ως εξής: Η υποστήριξη (support) ή κάλυψη (coverage) εκφράζει την πιθανότητα να βρούμε τα αντικειμενοσύνολα X,Y στην ίδια συναλλαγή στη βάση μας. Είναι ο λόγος των συναλλαγών που περιλαμβάνουν τα X,Y προς το σύνολο των συναλλαγών: supp(x=>y) = supp(xuy). Η εμπιστοσύνη (confidence) ή ακρίβεια (accuracy) εκφράζει την πιθανότητα να βρούμε το U σε μια συναλλαγή που περιέχει το X. Είναι ο λόγος των συναλλαγών που περιλαμβάνουν τα X,Y προς τις συναλλαγές που περιλαμβάνουν μόνο το X: conf(χ=>υ) = supp(xuy)/supp(x). Κρίνοντας ποιοτικά τα παραπάνω μεγέθη μπορεί να ειπωθεί ότι η εμπιστοσύνη καθορίζει το πόσο ισχυρό είναι το πρότυπο που εντοπίστηκε, ενώ η υποστήριξη καθορίζει πόσο συχνό είναι στη βάση δεδομένων. Για παράδειγμα, ας θεωρήσουμε ότι έχουμε τα ακόλουθα τρία καλάθια αγορών (συναλλαγές) στη βάση δεδομένων μας: (καφές, ζάχαρη, καλαμάκια, γάλα), (καφές, ζάχαρη, γάλα, τσάι), καφές, ζάχαρη, τσάι). Από τα δεδομένα αυτά προκύπτουν διάφοροι κανόνες συσχέτισης όπως: καφές => ζάχαρη με 100% υποστήριξη και 100% εμπιστοσύνη. καλαμάκια => γάλα με 33% υποστήριξη και 100% εμπιστοσύνη. -40-

51 ζάχαρη => καλαμάκια, με 33% υποστήριξη και 33% εμπιστοσύνη. καφές, ζάχαρη => γάλα με 66% υποστήριξη και 66% εμπιστοσύνη. και πολλοί άλλοι Η μεγαλύτερη δυσκολία στην εξόρυξη κανόνων συσχέτισης προκύπτει από το γεγονός ότι ο αριθμός των κανόνων συσχέτισης που υπάρχουν σε μια βάση δεδομένων είναι πολύ μεγάλος. Ο αριθμός αυτός αυξάνεται εκθετικά με τον αριθμό των διαφορετικών αντικειμένων Ι. Απαιτείται λοιπόν ο περιορισμός τους ώστε ο τελικός χρήστης να εξετάσει τους πιο ενδιαφέροντες. Στην πράξη, αυτό επιτυγχάνεται θέτοντας κάποιο κάτω όριο στις τιμές των μεγεθών υποστήριξη και εμπιστοσύνη, που ονομάζονται minsupp και minconf αντίστοιχα. Ο περιορισμός αυτός μας επιτρέπει να χωρίσουμε το πρόβλημα της εύρεσης κανόνων συσχέτισης σε δύο μέρη. Το πρώτο μέρος αφορά στην εύρεση όλων των συχνών αντικειμενοσυνόλων (frequent itemsets). Ένα αντικειμενοσύνολο X ονομάζεται συχνό αν supp(x) minsupp.επομένως το σύνολο όλων των συχνών αντικειμενοσυνόλων είναι F = X C I/supp(X) minsupp.το δεύτερο μέρος αφορά στην εύρεση των κανόνων συσχέτισης που προκύπτουν από τα συχνά αντικειμενοσύνολα και έχουν μεγαλύτερη εμπιστοσύνη από minconf. Το δεύτερο μέρος είναι ουσιαστικά πολύ απλό αν έχει ολοκληρωθεί το πρώτο. Για κάθε X F ελέγχουμε την εμπιστοσύνη όλων των κανόνων X\Y => Y, Y X, Y X και κρατάμε εκείνους για τους οποίους είναι μεγαλύτερη η ίση με minsupp. Σύμφωνα με τον ορισμό της εμπιστοσύνης αρκεί να ξέρουμε την υποστήριξη όλων των υποσυνόλων του Χ για να βρούμε την εμπιστοσύνη κάθε κανόνα που προκύπτει από το Χ. Αυτές οι τιμές όμως θα μας είναι γνωστές εγγυημένα από το πρώτο μέρος, λόγω μιας ιδιότητας της υποστήριξης που ονομάζεται κάτω κλειστότητα (downward closure): Όλα τα υποσύνολα ενός συχνού αντικειμενοσυνόλου είναι επίσης συχνά. Μια αποτελεσματική υλοποίηση του δευτέρου μέρους με βάση αυτά που αναφέρθηκαν υπάρχει στην εργασία. Σύμφωνα με όσα αναφέραμε παραπάνω, το πρόβλημα της εύρεσης κανόνων συσχέτισης μπορεί να περιοριστεί στο πρόβλημα της εύρεσης όλων των συχνών -41-

52 αντικειμενοσυνόλων. Στη συνέχεια θα αναφερθούμε σε κάποιους αλγόριθμους εύρεσης κανόνων συσχέτισης με διαφορετικές προσεγγίσεις στο πρόβλημα της εύρεσης όλων των συχνών αντικειμενοσυνόλων Αλγόριθμοι εύρεσης κανόνων συσχέτισης Γενικά, σε έναν αλγόριθμο εύρεσης κανόνων συσχέτισης μας ενδιαφέρει κυρίως ο αριθμός των περασμάτων στα δεδομένα που απαιτεί κατά την εκτέλεσή του. Υποθέτουμε πως τα δεδομένα δε χωράνε στην κύρια μνήμη και γι αυτό το σημαντικότερο κόστος είναι το πόσες φορές χρειάζεται αυτά να προσπελαστούν στο δίσκο. Υπάρχουν δύο βασικές μεθοδολογίες (οικογένειες αλγορίθμων) για την ανακάλυψη κανόνων συσχέτισης. Στην πρώτη προχωράμε από επίπεδο σε επίπεδο, βρίσκοντας αρχικά όλα τα συχνά αντικείμενα (σύνολα με μέγεθος 1), κατόπιν τα συχνά ζεύγη (σύνολα με μέγεθος 2), νέες τριάδες, κ.ο.κ. Η εύρεση συχνών ζευγαριών είναι σημαντικό στάδιο του αλγορίθμου για δύο λόγους: α) Πολλές φορές το να βρει κανείς συχνά ζεύγη είναι αρκετό, β) Σε πολλά σύνολα δεδομένων η ανακάλυψη ζευγαριών είναι το δυσκολότερο κομμάτι, ενώ από εκεί και πέρα, η ανακάλυψη τριάδων, τετράδων κ.λ.π. θέλει λιγότερο χρόνο. Οι αλγόριθμοι αυτού του είδους απαιτούν ένα πέρασμα στα δεδομένα για κάθε επίπεδο. Αντιπροσωπευτικό παράδειγμα είναι ο αλγόριθμος Apriori. Στη δεύτερη βρίσκουμε όλα τα μέγιστα συχνά σύνολα αντικειμένων (maximum frequent itemsets), δηλαδή τα σύνολα εκείνα των οποίων κανένα υπερσύνολο δεν είναι συχνό, με ένα ή ελάχιστα περάσματα. Αυτές οι μέθοδοι έχουν συνήθως μεγάλες απαιτήσεις σε μνήμη λόγω του ότι βασίζονται σε πολύπλοκες (συνήθως δενδρικές) δομές δεδομένων για να αποθηκεύσουν πληροφορίες για τα δεδομένα. Αντιπροσωπευτικό παράδειγμα είναι ο αλγόριθμος FP-growth. 2.4 Ενισχυτική Μάθηση Η Ενισχυτική Μάθηση (Reienforcement Learning) εισάγει το ερώτημα πως ένας αυτόνομος πράκτορας που έχει αισθήσεις και ενεργεί σε ένα περιβάλλον μπορεί να -42-

53 μάθει να επιλέγει τις βέλτιστες ενέργειες για να πετύχει τους στόχους του. Αυτό το πολύ γενικό πρόβλημα καλύπτει εφαρμογές όπως ο έλεγχος κίνησης ενός ρομπότ, βελτιστοποίηση εργασιών σε εργοστάσια και μάθηση επιτραπέζιων παιχνιδιών. Η ενισχυτική μάθηση περιλαμβάνει μια οικογένεια τεχνικών στις οποίες το σύστημα μάθησης προσπαθεί να μάθει από την άμεση αλληλεπίδραση με το περιβάλλον. Η έννοια της ενισχυτικής μάθησης έχει τις ρίζες της στην ψυχολογία της συμπεριφοράς καθώς είναι εμπνευσμένη από τα αντίστοιχα ανάλογα της μάθησης με επιβράβευση και τιμωρία που συναντώνται ως μοντέλα μάθησης των έμβιων ζώων. Η βασική ιδέα είναι ότι το σύστημα μάθησης αξιολογείται με βάση μια βαθμωτή ποσότητα που ονομάζεται σήμα ενίσχυσης (reinforcement) το οποίο λαμβάνεται από το περιβάλλον ως αποτίμηση της επίδοσης του συστήματος. Σκοπός του συστήματος είναι η μεγιστοποίηση κάποιας συνάρτησης του ενισχυτικού σήματος Το Πλαίσιο της Ενισχυτικής Μάθησης Στο βασικό πλαίσιο της ενισχυτικής μάθησης αυτός που μαθαίνει και παίρνει αποφάσεις ονομάζεται πράκτορας. Αυτό με το οποίο αλληλεπιδρά, που εμπεριέχει οτιδήποτε έξω από τον πράκτορα, ονομάζεται περιβάλλον. Ο πράκτορας και το περιβάλλον αλληλεπιδρούν συνεχώς, με τον πράκτορα να επιλέγει ενέργειες και το περιβάλλον να αποκρίνεται σε αυτές και να παρουσιάζει καινούργιες καταστάσεις στον πράκτορα. Το περιβάλλον δίνει στον πράκτορα ανταμοιβές (rewards), ειδικές αριθμητικές τιμές τις οποίες ο πράκτορας προσπαθεί να μεγιστοποιήσει μακροπρόθεσμα. Ο πράκτορας και το περιβάλλον αλληλεπιδρούν σε μια ακολουθία διακριτών χρονικών στιγμών, t = 0,1,2,3, Σε κάθε χρονική στιγμή t, ο πράκτορας λαμβάνει μια αναπαράσταση της κατάστασης του περιβάλλοντος, s t S, όπου Σ είναι το σύνολο των πιθανών καταστάσεων στις οποίες μπορεί να βρεθεί ο πράκτορας, και διαλέγει μια ενέργεια, α t Α(s t ), όπου Α(s t ) είναι το σύνολο των ενεργειών που είναι διαθέσιμες στην κατάσταση s t. Την επόμενη χρονική στιγμή, σαν αποτέλεσμα της ενέργειάς του, ο πράκτορας λαμβάνει μια αριθμητική ανταμοιβή r t +1 R και μεταβαίνει σε μια καινούργια κατάσταση, s t +1. Το σχήμα 2.7 δείχνει την αλληλεπίδραση του πράκτορα με το περιβάλλον. -43-

54 Σχήμα 2.7: Αλληλεπίδραση πράκτορα περιβάλλοντος στην ενισχυτική μάθηση. Σε κάθε χρονική στιγμή ο πράκτορας πραγματοποιεί μια απεικόνιση από τις καταστάσεις σε πιθανότητες επιλογής κάθε δυνατής ενέργειας. Η απεικόνιση αυτή ονομάζεται πολιτική του πράκτορα και υποδηλώνεται ως π t, όπου π(s, α) είναι η πιθανότητα να επιλεγεί η ενέργεια α t στην κατάσταση s t. Όπως προκύπτει από τα παραπάνω η ενισχυτική μάθηση πραγματοποιείται σε πραγματικό χρόνο (online) μέσω της αλληλεπίδρασης του πράκτορα με το περιβάλλον. Ο πράκτορας δεν έχει καμία εκ των προτέρων γνώση σχετικά με τη συμπεριφορά του περιβάλλοντος (τη συνάρτηση μετάβασης από μια κατάσταση σε μια άλλη μέσω της εκτέλεσης ενεργειών) ούτε με ποιον τρόπο υπολογίζεται το σήμα ενίσχυσης που λαμβάνει. Ο μόνος τρόπος για να ανακαλύψει ο πράκτορας τη συμπεριφορά του περιβάλλοντος είναι μέσω της δοκιμής και της αποτυχίας (trial-and-error). Για το λόγο αυτό θα πρέπει να υπάρχει η δυνατότητα της εξερεύνησης για την ανακάλυψη των καλύτερων ενεργειών που αντιστοιχούν σε κάθε κατάσταση. Στα προβλήματα αυτά είναι βασική η αντιμετώπιση του διλήμματος μεταξύ εκμετάλλευσης και αναζήτησης (exploitation vs exploration), δηλαδή της ανάγκης να εκμεταλλευτούμε γρήγορα κάποιο καλό αποτέλεσμα και της ανάγκης να συνεχίσουμε την αναζήτηση για κάτι καλύτερο. Το πλαίσιο που παρουσιάστηκε παραπάνω είναι αφηρημένο και ευέλικτο και μπορεί να εφαρμοστεί σε πολλά διαφορετικά προβλήματα με πολλούς διαφορετικούς τρόπους. Για παράδειγμα, οι χρονικές στιγμές δεν είναι αναγκαίο να είναι σταθερά διαστήματα πραγματικού χρόνου, αλλά μπορούν να είναι αυθαίρετα επιτυχημένα στάδια αποφάσεων και ενεργειών. Τέλος για ότι παρουσιάζεται στις ακόλουθες παραγράφους γίνεται υπόθεση ότι το περιβάλλον είναι διαδικασία απόφασης Markov (Markov decision process) (MDP) δηλαδή ότι ικανοποιείται η ιδιότητα Markov, η οποία λέει ότι η απόκριση του περιβάλλοντος της χρονική στιγμή t + 1 εξαρτάται μόνο από την -44-

55 κατάσταση και την ενέργεια που επιλέχθηκε τη χρονική στιγμή t: Pr{s t+1 = s, r t+1 = r s t,α t } Μοντέλα Βέλτιστης Συμπεριφοράς Όπως έχει αναφερθεί σκοπός του συστήματος μάθησης είναι η μεγιστοποίηση κάποιας συνάρτησης του σήματος ενίσχυσης. Πρέπει δηλαδή να οριστεί πως ο πράκτορας θα εκλαμβάνει το μέλλον έτσι ώστε να παίρνει αποφάσεις για το πώς θα συμπεριφερθεί στο παρόν. Τρία είναι τα μοντέλα, τα οποία έχουν μελετηθεί περισσότερο. Το πρώτο είναι το μοντέλο του πεπερασμένου ορίζοντα (finite horizon) όπου ο σκοπός είναι η μεγιστοποίηση της αναμενόμενης τιμής του σήματος ενίσχυσης στις επόμενες h χρονικές στιγμές (h το μήκος του ορίζοντα) E( rt ). Το μοντέλο αυτό μπορεί να χρησιμοποιηθεί με δύο τρόπους. Στον πρώτο, ο πράκτορας ακολουθεί μία μη-στατική πολιτική, όπου στο πρώτο βήμα διαλέγει βέλτιστη ενέργεια με μήκος ορίζοντα h. Στο επόμενο βήμα ενεργεί με μήκος ορίζοντα h 1, και συνεχίζει μέχρι h = 1. Στο δεύτερο τρόπο, το μήκος του ορίζοντα είναι σταθερό. Το μοντέλο του πεπερασμένου δεν είναι πάντα κατάλληλο γιατί σε πολλές περιπτώσεις μπορεί να μη γνωρίζουμε το ακριβές μήκος ζωής του πράκτορα. Το δεύτερο μοντέλο είναι του άπειρου ορίζοντα όπου σκοπός του πράκτορα είναι η μεγιστοποίηση του σταθμισμένου μέσου των τιμών του σήματος ενίσχυσης που h 1 t= 0 πρόκειται να ληφθούν σε άπειρα μελλοντικά χρονικά βήματα, Ε = είναι ο συντελεστής βάρους και 0 < γ < 1). t γ r t= 0 t (όπου γ Ένα άλλο κριτήριο βελτιστοποίησης είναι το μοντέλο της μέσης ανταμοιβής (average reward model) όπου ο πράκτορας προσπαθεί να μεγιστοποιήσει τη συνάρτηση: h 1 lim E( rt ) h Το πρόβλημα του μοντέλου αυτού είναι ότι δεν υπάρχει τρόπος να ξεχωρίσει κανείς δύο πολιτικές, όπου στη μία υπάρχει μεγάλο κέρδος ανταμοιβών στις αρχικές φάσεις και t= 0-45-

56 στην άλλη όχι. Η ανταμοιβή που κερδίζει ο πράκτορας στο αρχικό στάδιο της ζωής του υπερκαλύπτεται από τη μέση μακροπρόθεσμη απόδοση. 2.5 Επίλογος Το κεφάλαιο αυτό παρουσίασε μια εισαγωγή στην περιοχή της Μηχανικής Μάθησης Αρχικά αναφέρθηκαν τα προβλήματα με τα οποία ασχολείται η περιοχή αυτή και στη συνέχεια περιγράφηκαν οι πιο σημαντικές μέθοδοι για την αντιμετώπιση αυτών των προβλημάτων. Λόγω της μεγάλης έκτασης του χώρου δόθηκε έμφαση στις βασικές έννοιες που είναι απαραίτητες για την κατανόηση των κεφαλαίων που ακολουθούν. -46-

57 3 Aθλητισμός και Εξόρυξη Δεδομένων Σκοπός του κεφαλαίου αυτού είναι η ανάδειξη και καταγραφή των πλεονεκτημάτων που προσφέρουν οι τεχνικές εξόρυξης δεδομένων στου αθλητικούς οργανισμούς που τις χρησιμοποιούν, μέσα από συγκεκριμένα παραδείγματα εμπορικών ή μη εφαρμογών. 3.1 Εισαγωγή Ενώ η εξόρυξη δεδομένων χρησιμοποιείται ευρέως και με επιτυχία στον τομέα των επιχειρήσεων, η εφαρμογή της στον αθλητισμό είναι ακόμα στα πρώτα στάδια. Πράγματι, τα παραδείγματα χρήσης της εξόρυξης δεδομένων στη βιομηχανία του αθλητισμού είναι λίγα. Στη πλειοψηφία τους, οι αθλητικές ομάδες δεν έχουν ακόμα ανακαλύψει τα πλεονεκτήματα που η χρήση εφαρμογών εξόρυξης δεδομένων μπορεί να προσφέρει. Είναι γενικά αποδεκτό ότι δεν υπάρχουν πολλές εμπορικές ή μη εφαρμογές που χρησιμοποιούν την εξόρυξη δεδομένων πάνω σε θέματα του αθλητισμού, καθώς και ότι λίγες δημοσιεύσεις σχετικά με το θέμα αυτό μπορούν να βρεθούν στα επιστημονικά περιοδικά. Θα μπορούσαμε να πούμε ότι σε πολλές χώρες η βιομηχανία του αθλητισμού είναι ακόμα ένα παρθένο πεδίο για τις τεχνικές εξόρυξης δεδομένων. Ωστόσο, προβλέπεται ότι στο μέλλον η εξόρυξη δεδομένων θα αποβεί ένα κρίσιμο σημείο υπεροχής των αθλητικών ομάδων έναντι των αντιπάλων τους, τόσο στον τομέα των πωλήσεων και του μάρκετινγκ, όσο και στον αγωνιστικό τομέα. Έτσι, προβλέπεται ότι σε μερικά χρόνια οι τεχνικές εξόρυξης δεδομένων θα κυριαρχήσουν στον τομέα του αθλητισμού ως ένα αποτελεσματικό συμπληρωματικό εργαλείο. Παρόλο που, όπως προαναφέρθηκε, η εξόρυξη δεδομένων στον τομέα του αθλητισμού δεν είναι τόσο διαδεδομένη τεχνική όσο στις επιχειρήσεις, υπάρχουν μερικές πετυχημένες εφαρμογές και στον αθλητισμό. Οι παρακάτω παρατηρήσεις αποδεικνύουν πόσο αποτελεσματική μπορεί να αποδειχθεί η εξόρυξη δεδομένων για τους αθλητικούς οργανισμούς, και πως αυτοί μπορούν να επωφεληθούν χρησιμοποιώντας τέτοιου είδους τακτικές. Οι πλειοψηφία των προσπαθειών αυτών, επικεντρώνονται κυρίως σε τρεις τομείς: το μάρκετινγκ, την προπονητική, και την πρόβλεψη αποτελέσματος αγώνων. -47-

58 3.2 Αθλητικό Μάρκετινγκ Πληθώρα ερευνών που έχουν πραγματοποιηθεί με θέμα τις τεχνικές μάρκετινγκ στο NBA, έχουν αποδείξει ότι ο πιο αποτελεσματικός και επαρκής τρόπος για την επιτυχία της διαφημιστικής στρατηγικής μιας αθλητικής εταιρίας, είναι η χρήση τεχνικών εξόρυξης δεδομένων. Ορισμένες ομάδες του NBA όπως οι Cleveland Cavaliers, οι Seattle SuperSonics, οι Portland Trail Blazers, και οι Miami Heat έχουν χρησιμοποιήσει επιτυχώς την εξόρυξη δεδομένων, με στόχο την εξατομίκευση της διαφημιστικής στρατηγικής ανάλογα με τη συμπεριφορά του καταναλωτή. Οι Cleveland Cavaliers δημιούργησαν μια βάση δεδομένων που περιέχει στοιχεία πελατών όπως: ονόματα, διευθύνσεις, τηλεφωνικούς αριθμούς καθώς και άλλες λεπτομερείς πληροφορίες για τα προϊόντα που αγόρασαν. Αναλύοντας τη βάση δεδομένων, οι Cleveland Cavaliers τηλεφωνούσαν συστηματικά σε αυτούς που είχαν αγοράσει εισιτήρια από το Ticketmaster (η μεγαλύτερη εταιρία εμπορίας εισιτηρίων παγκοσμίως) για να καθορίσουν αν ενδιαφερόντουσαν για άλλα παιχνίδια ή εκδηλώσεις. Οι Seattle Super Sonics ανέπτυξαν μια εφαρμογή εξόρυξης δεδομένων με σκοπό να αυξήσουν τα έσοδά τους, αυξάνοντας τον αριθμό των κατόχων εισιτηρίων διαρκείας. Οι Portland Trail Blazers ανέλυσαν τη βάση δεδομένων των πελατών τους για να βοηθήσουν την πρόβλεψη των διαφημιστικών εσόδων και να εντοπίσουν τις τάσεις στην αγορά εισιτηρίων. Τέλος, η διοίκηση των Miami Heat αναγνώρισε ότι η εξόρυξη δεδομένων προτείνει ένα πιο αποτελεσματικό target group πελατών, απ ότι οι παραδοσιακές τεχνικές διαφήμισης και μάρκετινγκ. Χρησιμοποιώντας τεχνικές εξόρυξης δεδομένων, το συνολικό ποσοστό ανανέωσης των εισιτηρίων διαρκείας των Miami Heat το 2005 ήταν πάνω από 85%. 3.3 Προπονητική Η εξόρυξη δεδομένων μπορεί να χρησιμοποιηθεί και από τους προπονητές των ομάδων. Αυτό θα βοηθήσει ανακαλύπτοντας πληροφορίες και υποδείγματα για τους παίκτες και τα συστήματα της ομάδας, που δύσκολα θα μπορούσαν να βρεθούν μέσω μιας απλής ανάλυσης των στατιστικών πινάκων. Έτσι η ομάδα καταφέρνει να κερδίσει παιχνίδια εξάγοντας πολλές και χρήσιμες σχετικές πληροφορίες από τη βάση δεδομένων. Στο μπάσκετ, σε σχέση με άλλα αθλήματα, η τακτική κατέχει ένα πολύ ουσιαστικό και θεμελιώδη ρόλο, και επομένως μπορεί να επηρεάσει την έκβαση ενός αγώνα. Σε ένα αγώνα μπάσκετ ο προπονητής έχει την ευχέρεια να αντικαθιστά παίκτες πολύ συχνά, -48-

59 ενώ έχει και τη δυνατότητα συνεχούς επικοινωνίας με τους παίκτες κατά τη διάρκεια των συχνών time out. Οι στρατηγικές αποφάσεις του προπονητή μπάσκετ κατά τη διάρκεια του αγώνα, λοιπόν, μπορεί να είναι καθοριστικές για την έκβαση του αγώνα. Αυτό στην πραγματικότητα γίνεται πολύ συχνά, αν σκεφτούμε ότι στο μπάσκετ το σκορ κατά κανόνα είναι «ρευστό» και είναι δυνατή η κάλυψη μιας πιθανής διαφοράς με τη λήψη σωστών στρατηγικών αποφάσεων την κατάλληλη στιγμή. Αυτά όλα τα δεδομένα καθιστούν σαφές το τεράστιο πλεονέκτημα που μπορεί να έχει η χρησιμοποίηση στο μπάσκετ νέων λογισμικών εφαρμογών, ικανών να βελτιώσουν τις αποφάσεις των προπονητών. Τέτοιου είδους βοηθητικά λογισμικά παρέχουν τη δυνατότητα επεξεργασίας πολύτιμων στατιστικών πληροφοριών, με στόχο τη σωστή ανάλυση του αγώνα και την επιλογή των κατάλληλων στρατηγικών επιλογών, ακόμα και σε πραγματικό χρόνο. Κατά τη διάρκεια των playoff του 1997, για παράδειγμα, οι Orlando Magic ανακάλυψαν το ταλέντο του Darrell Armstrong μέσω τεχνικών εξόρυξης δεδομένων και τον τοποθέτησαν στην αρχική πεντάδα της ομάδας. Ο προπονητής αύξησε τις ευθύνες του Armstrong κατά τη διάρκεια των playoff, επειδή τα δεδομένα έδειξαν ότι εάν ο Armstrong βρισκόταν στο γήπεδο, η πιθανότητα να κερδίσουν οι Orlando Magic αυξανόταν. Τελικά, οι Orlando Magic κέρδισαν δύο συνεχόμενα παιχνίδια, και ο Armstrong προσωπικά κέρδισε το βραβείο του έκτου καλύτερου παίκτη (Sixth Man Award) το Επίσης, ο Brian James, βοηθός προπονητή των Toronto Raptors, χρησιμοποίησε μία εφαρμογή εξόρυξης δεδομένων, για να ανακαλύψει τι είδους συστήματα θα χρησιμοποιήσουν οι αντίπαλοι. O Δρ. S.Bhandari, δημιουργός του Advanced Scout της IBM έχει σημειώνει ότι η χρησιμοποίηση τεχνικών εξόρυξης δεδομένων προσδίδει νέο νόημα στα δεδομένα. Για παράδειγμα, η εξόρυξη δεδομένων μπορεί να βοηθήσει στην εύρεση ενός έξυπνου προτύπου που με τη χρήση παραδοσιακών τεχνικών δεν θα είχε ανακαλυφθεί. Κατά την διάρκεια των playoff του 1999 το Advanced Scout έδειξε ότι όταν οι New York Knicks είχαν το ψηλότερο τους παίκτη στην πεντάδα, και οι Chicago Bulls έπαιζαν με μια κοντή πεντάδα δίνοντας βάση στη ταχύτητα, οι Bulls πήγαιναν πολύ καλύτερα από τους Knicks. Χωρίς την εξόρυξη δεδομένων αυτό το πρότυπο δεν θα είχε ανακαλυφθεί. Χρησιμοποιώντας με αυτό τον τρόπο την εξόρυξη δεδομένων γίνεται πιο εύκολο για τους προπονητές να πάρουν αποφάσεις για το πότε και το πώς θα τοποθετήσουν τους παίκτες τους ούτως ώστε να μεγιστοποιηθεί η απόδοση της ομάδας. -49-

60 Σε έναν αγώνα μπάσκετ τα δεδομένα αλλάζουν με μεγάλη ταχύτητα και αφορούν σε ένα τεράστιο όγκο πληροφοριών. Είναι φυσικό, λοιπόν, ένας προπονητής να δυσκολεύεται πολύ να παρακολουθήσει όλους τους πιθανούς συνδυασμούς όλων των κρίσιμων παραγόντων που μπορούν ανά πάσα στιγμή να κρίνουν το αποτέλεσμα του αγώνα. Συνεπώς, τέτοιου είδους εργαλεία χρίζονται απαραίτητα, αφού έχουν τη δυνατότητα να αναλύσουν όλες τις πηγές δεδομένων ενός πρωταθλήματος μπάσκετ με σκοπό την ανακάλυψη έξυπνων και άγνωστων ως τότε προτύπων, που πιθανώς να υπάρχουν στα δεδομένα που αφορούν τόσο στην επίδοση ενός παίκτη, όσο και στα γεγονότα που συμβαίνουν και αλληλεπιδρούν εκείνη τη στιγμή στο γήπεδο. Είναι πλέον δεδομένο ότι οι εφαρμογές εξόρυξης δεδομένων βοηθούν στην ανάλυση τεράστιων ποσοτήτων δεδομένων, αποκαλύπτοντας στους προπονητές νικηφόρους συνδυασμούς παικτών. Επιπρόσθετα, ο σχεδιασμός της στρατηγικής που θα ακολουθηθεί στον επερχόμενο αγώνα είναι λιγότερο χρονοβόρος όταν γίνεται μέσω της εξόρυξης δεδομένων, απ ότι με τις παραδοσιακές τεχνικές, όπως για παράδειγμα το «γύρισμα» της βιντεοκασέτας. Η εξόρυξη δεδομένων, δηλαδή, κάνει την ανάλυση πιο γρήγορη, πιο εύκολη και πιο αποτελεσματική. Ακολουθεί μια συνοπτική παρουσίαση κάποιων χαρακτηριστικών πετυχημένων εφαρμογών εξόρυξης δεδομένων, που εστιάζουν στον τομέα της προπονητικής ανάλυσης Advanced Scout: Εξόρυξη Δεδομένων και Ανακάλυψη Γνώσης σε δεδομένα του NBA Το Advanced Scout είναι μία εφαρμογή εξόρυξης δεδομένων που χρησιμοποιείται από τις προπονητικές ομάδες των συλλόγων της αμερικάνικης Εθνικής Ομοσπονδίας Μπάσκετ ( National Basketball Association- NBA) για να ανακαλύψουν ενδιαφέροντα πρότυπα στα δεδομένα του σχετίζονται με το μπάσκετ. Δημιουργήθηκε από τον Dr. Inderpal Bhandari, πρώην επιστήμονα της IBM. Ιδρυτής της Virtual Gold Inc. 1 (που ηγείται στον τομέα της νοημοσύνης επιχειρήσεων και εξόρυξης δεδομένων) ο Dr. Inderpal Bhandari πρόκειται για μία από τις εξέχουσες προσωπικότητες παγκοσμίως

61 στον τομέα της εξόρυξης δεδομένων. Το λογισμικό Advanced Scout (AS) αναζητά και ανακαλύπτει ενδιαφέρουσες πληροφορίες στα δοθέντα δεδομένα. Μ αυτές τις πληροφορίες, ο προπονητής μπορεί να αποτιμήσει τα αποτελέσματα συγκεκριμένων προπονητικών αποφάσεων και να σχεδιάσει στρατηγικές παιξίματος, για τα επόμενα παιχνίδια. Σκοπός του Advanced Scout είναι να βοηθήσει τους προπονητές του NBA να χρησιμοποιήσουν τεχνικές νοημοσύνης επιχειρήσεων και εξόρυξης δεδομένων για να ανακαλύψουν ενδιαφέροντα πρότυπα, κρυμμένα μέσα σε τεράστιες ποσότητες πληροφοριών. Η ανακάλυψη των προτύπων αυτών μπορεί να κάνει τη διαφορά για τη νίκη ή την ήττα σε ένα επαγγελματικό παιχνίδι μπάσκετ. Χρησιμοποιώντας δεδομένα γεγονότων που έλαβαν χώρα και συλλέχθηκαν στο παρκέ, καθώς και μη δομημένες πηγές πληροφορίας όπως multimedia δεδομένα από έναν αγώνα, το Advanced Scout βοηθά τους προπονητές στην προετοιμασία πριν τον αγώνα, στην ανάλυση μετά τον αγώνα αλλά και ανάλυση σε πραγματικό χρόνο, για την καλύτερη κατανόηση επιτυχών ή μη συνδυασμών παικτών, επιδόσεις στα σουτ, διαγράμματα σουτ, κατοχή μπάλας, επιδόσεις παικτών, και επιδόσεις στα rebound. Το Advanced Scout είναι πλέον αναπόσπαστο κομμάτι της προπονητικής σε πολλές ομάδες στο NBA, υποβοηθώντας τη γρήγορη και αποτελεσματική ανάπτυξη στρατηγικών παιχνιδιού, σε συνδυασμό με την επεξεργασία βίντεο. Αυτή η εφαρμογή έχει φιλοξενηθεί στις σελίδες των μεγαλύτερων εφημερίδων και περιοδικών, αλλά και από τα μεγαλύτερα τηλεοπτικά δίκτυα όπως Wall Street Journal, Washington Post, U.S. News and World Report, Computer World, PC Week, CNN, Fox, Discovery, και MSNBC Την περίοδο , το λογισμικό AS είχε διανεμηθεί στις δεκαέξι από τις είκοσι εννιά ομάδες του NBA. Ενώ μερικές από τις ομάδες μόλις είχαν αρχίσει να αποτιμούν την χρήση του, άλλες (όπως οι New York Knicks, οι Orlando Magic και οι Seattle Supersonics) γρήγορα ενσωμάτωσαν το λογισμικό στη διαδικασία προετοιμασίας του παιχνιδιού της ομάδας και στις διαδικασίες ανάλυσης. Οι θετικές αντιδράσεις των προπονητών αποδείκνυε ότι ήταν ένα χρήσιμο εργαλείο. Ο Bob Salmi (όταν ήταν στο προπονητικό team των NY Knicks), το παρομοίαζε με το να έχει έναν ακόμα προπονητή στην ομάδα. Η υποδοχή που δέχθηκε από την ομοσπονδία του NBA ήταν επίσης πολύ καλή, καθώς συνέβαλλε στην βελτίωση της ποιότητας παιχνιδιού, κάνοντας τους θεατές να εκτιμούν περισσότερο το παιχνίδι. Παρακάτω παρουσιάζεται η μεθοδολογία που ακολουθεί το Advance Scout, αλλά και πως αυτό χρησιμοποιείται από τους προπονητές των ομάδων του NBA. -51-

62 Συλλογή Δεδομένων Τα πρωτογενή δεδομένα από τα παιχνίδια του NBA συλλέγονται αρχικά χρησιμοποιώντας ένα ειδικό σύστημα σχεδιασμένο για να κατηγοριοποιεί δεδομένα μπάσκετ. Δεδομένα όπως ποιος έκανε ένα σουτ, το είδος του σουτ, το αποτέλεσμα, τα rebounds κτλ. Κάθε ενέργεια συσχετίζεται με μια μονάδα χρόνου. Στο τέλος κάθε παιχνιδιού, τα δεδομένα «ανεβάζονται» και αποθηκεύονται δημόσια στο διαδίκτυο. Κάθε ομάδα μπορεί να έχει πρόσβαση και να ανακτήσει τα δεδομένα κάθε άλλης ομάδας μέσω του διαδικτύου, καθώς και να δημιουργήσει ένα αντίγραφο των δεδομένων στην έκδοση του Advanced Scout που χρησιμοποιεί για ανάλυση. Έλεγχος και Εμπλουτισμός Δεδομένων Αφού τα δεδομένα έχουν «κατεβαστεί» από τον παγκόσμιο ιστό, το Advanced Scout πραγματοποιεί μια σειρά από ελέγχους συνέπειας για να διασφαλίσει ότι τα δεδομένα είναι όσο το δυνατόν πιο ακριβή πριν την οποιαδήποτε ανάλυση. Υπάρχουν διάφορες απόψεις για τον καθαρισμό των δεδομένων. Στο Advanced Scout, οι έλεγχοι συνέπειας είναι σχεδιασμένοι να ανακαλύπτουν λάθη που έχουν γίνει κατά την διάρκεια συλλογής των δεδομένων. Ένα λάθος στα δεδομένα μπορεί να είναι μία ελλιπής ενέργεια ή ένα απίθανο γεγονός. Οι διορθώσεις γίνονται χρησιμοποιώντας μια βάση κανόνων, και πιθανώς με τη βοήθεια ενός ειδικού, συνήθως ενός προπονητή. Για παράδειγμα, εάν δύο σουτ εμφανίζονται να έχουν γίνει διαδοχικά και κανένας δεν έχει πιστωθεί με rebound, το πρόγραμμα θα υποθέσει ότι ο αθλητής που επιχείρησε το δεύτερο σουτ πήρε και το rebound. Εάν χρειαστούν διορθώσεις μπορούν να γίνουν και με τη χρησιμοποίηση του βίντεο του αγώνα. Μετά από τους ελέγχους συνέπειας, τα δεδομένα μετατρέπονται και επαναμορφοποιούνται. Αυτό γίνεται για να διευκολυνθεί η εποπτεία του προπονητή στα πρωτογενή δεδομένα και να επιλεγεί η κατάλληλη μονάδα ανάλυσης που θα είναι σύμφωνη με την οπτική γωνία του. Το Advanced Scout επαναμορφοποιεί τα πρωτογενή δεδομένα διακριτών περιστατικών σε μια συγκεκριμένη δομή, όπου η περιγραφή του γεγονότος γίνεται με παρόμοιο τρόπο με αυτό του φύλλου αγώνα. Από τη στιγμή που οι προπονητές είναι εξοικειωμένοι με τα φύλλα αγώνος, μπορούν γρήγορα να εξετάσουν τα διακριτά γεγονότα του αγώνα που τους παρέχονται από το Advanced Scout. Από προτάσεις που έχουν δώσει οι ίδιοι οι προπονητές, ανακαλύφθηκε ότι η κατάλληλη μονάδα ανάλυσης είναι η κατοχή της μπάλας, συμπληρωμένη από τις ενέργειες και τα -52-

63 επιμέρους γεγονότα που προηγούνται μιας προσπάθειας για καλάθι. Επομένως επιπρόσθετοι μετασχηματισμοί είναι απαραίτητοι για να ομαδοποιηθούν τα γεγονότα σύμφωνα με την κατοχή. Ο εμπλουτισμός των δεδομένων αφορά τη χρήση επιπρόσθετων πληροφοριών που προσφέρουν αξία στην ανάλυση. Τα δεδομένα εμπλουτίζονται μέσω συμπερασματικών κανόνων και με την εισαγωγή νέων δεδομένων. Ο ρόλος κάθε παίχτη στο γήπεδο (π.χ. power forward, 1-guard, κ.τ.λ.) συμπεραίνεται από το Advanced Scout με την βοήθεια ενός πίνακα παικτών-ρόλων. Τα συμπεράσματα αυτά επιτρέπουν χρήσιμες αναλύσεις για στους παίκτες και τους ρόλους τους στην έκβαση του αγώνα. Τα συστήματα Τα συστήματα που αποφασίζει η ομάδα να ακολουθήσει έχουν σχέση με την τοποθέτηση των παικτών στο γήπεδο και τους ρόλους τους στον τρόπο παιχνιδιού της ομάδας. Το σύστημα που θα ακολουθήσει μια ομάδα είναι από τους πιο σημαντικούς παράγοντες για την απόδοση της ομάδας. Οι αναλύσεις λοιπόν των περιστατικών γύρω από την επιτυχία ή αποτυχία των συστημάτων είναι σημαντικές. Επειδή τα συστήματα μιας ομάδας είναι εμπιστευτικά και άγνωστα σ αυτούς που δημοσιεύουν τα δεδομένα, οι πληροφορίες σχετικά με τα συστήματα δεν είναι μέρος των πρωτογενών δεδομένων. Οι πληροφορίες αυτές τοποθετούνται από τον προπονητή της ομάδας σε δευτερογενές στάδιο, και είναι μη προσιτές σε τρίτους αποτελώντας έτσι εμπιστευτική πηγή δεδομένων. Πως χρησιμοποιεί το Advanced Scout την Εξόρυξη Δεδομένων Η εξόρυξη δεδομένων μπορεί να θεωρηθεί ως η αυτόματη εφαρμογή αλγορίθμων με σκοπό την ανακάλυψη προτύπων στα δεδομένα. Στο Advanced Scout, ο προπονητής έχει τη δυνατότητα να κάνει μια γενική ερώτηση εξόρυξης δεδομένων, με την οποία το πρόγραμμα αυτομάτως θα αρχίσει την αναζήτηση ενδιαφερόντων προτύπων, τόσο για την γηπεδούχο όσο και για τη φιλοξενούμενη ομάδα. Η αναζήτηση αυτή γίνεται είτε βάσει του ποσοστού επιτυχίας των σουτ εντός πεδιάς για τον εντοπισμό προτύπων σχετικά με την ευστοχία των σουτ, είτε βάσει της κατοχής της μπάλας, καθορίζοντας βέλτιστους συνδυασμούς πεντάδων. Επόμενες αναλύσεις μπορεί να περιέχουν πιο -53-

64 συγκεκριμένες ερωτήσεις, στις οποίες καθορίζονται άλλοι παράμετροι και συνθήκες, πάντα από το χρήστη του συστήματος, δηλαδή τον προπονητή της ομάδας. Οι αλγόριθμοι που βρίσκονται κάτω από τη βάση δεδομένων του Advanced Scout χρησιμοποιούν μια τεχνική που ονομάζεται Attribute Focusing (AF), (Bhandari, 1995). Η ολική κατανομή ενός χαρακτηριστικού συγκρίνεται με την κατανομή αυτού του χαρακτηριστικού σε διαφορετικά υποσύνολα του συνόλου των δεδομένων. Εάν ένα συγκεκριμένο υποσύνολο δεδομένων έχει μία χαρακτηριστικά διαφορετικά κατανομή για το εξεταζόμενο χαρακτηριστικό, τότε αυτός ο συνδυασμός χαρακτηριστικών (οι συνθήκες που ορίζουν το υποσύνολο) καταγράφεται ως ενδιαφέρων. Ερμηνεία και Ανακάλυψη Γνώσης Τα αποτελέσματα της εξόρυξης δεδομένων παρουσιάζονται στο χρήστη με δύο τρόπους: με παρουσίαση περιγραφικού κειμένου και με γραφήματα. Το αυτομάτως παραγόμενο κείμενο περιγράφει τα πρότυπα. Ένα παράδειγμα είναι το εξής: Όταν ο Price ήτανpoint-guard,ο J.Williams αστόχησε 0% (0)από τις προσπάθειες jump σουτ εντός πεδιάς και ευστόχησε 100% (4) από τις προσπάθειες jump σουτ εντός πεδιάς. Το σύνολο τέτοιων προσπαθειών jump σουτ εντός πεδιάς ήταν 4. Αυτό είναι ένα διαφορετικό πρότυπο από τον κανόνα που δείχνει ότι: οι παίκτες των Cavaliers αστόχησαν το 50.70% από το σύνολο των jump σουτ εντός πεδιάς που επιχείρησαν. Οι παίκτες των Cavaliers ευστόχησαν το 49.30% από το σύνολο των jump σουτ εντός πεδιάς που επιχείρησαν. Ο στόχος μιας τέτοιας παρουσίασης είναι η εύκολη κατανόηση των πληροφοριών από τον προπονητή. Ακόμα, η παρουσίαση μέσω κειμένου περιγράφει το λόγο για τον οποίο αυτό το πρότυπο θεωρείται ενδιαφέρον, τονίζοντας ρητά τον τρόπο με τον οποίο το συγκεκριμένο πρότυπο παρεκκλίνει από το συνηθισμένο κανόνα. Στην ουσία παρουσιάζει μια αρχική και εύκολα μεταφράσιμη αιτιολογία του Ενδιαφέροντος του προτύπου. Στη συνέχεια είναι απαραίτητη επιπρόσθετη ανακάλυψη γνώσης από τον ειδικό του τομέα, για να καθοριστεί η υποβόσκουσα αιτία αυτού του προτύπου (αυτό που αποκαλύφθηκε στο συγκεκριμένο πρότυπο είναι ότι όταν οι Knicks τοποθετούν δύο -54-

65 παίκτες πάνω στον Price, τότε αυτός βρίσκει επιτυχώς τον Williams αμαρκάριστο και με ευκαιρία για jump shot). Η διαδικασία διερμηνείας των προτύπων αναπαριστά την ανακάλυψη γνώσης, και τυπικά προαπαιτεί ενέργειες από τον ειδικό του πεδίου. Στο Advanced Scout, η διερμηνεία των προτύπων υποβοηθείται με την παροχή στον χρήστη της δυνατότητας για περισσότερη αλληλεπιδραστική ανάλυση, ούτως ώστε να προστεθεί επιπλέον συναφής πληροφορία. Για παράδειγμα, εάν ένα σύστημα σχεδιασμένο πάνω στον Patrick Ewing είναι λιγότερο πετυχημένο όταν ο Charlie Ward παίζει σαν point guard, ο προπονητής μπορεί να θέσει μία ερώτηση για πανομοιότυπα περιστατικά, που από αυτά που έχουν τον Derek Harper σαν point guard (αυτό το παράδειγμα δείχνει ακόμα πως το Advanced Scout μπορεί να χρησιμοποιηθεί σαν ένα παραδοσιακό εργαλείο ερωτήσεων και αναφορών). Ίσως ο καλύτερος τρόπος να ερμηνευτεί ένα πρότυπο είναι μέσω της χρησιμοποίησης του βίντεο των πραγματικών γεγονότων. Το Advanced Scout παρουσιάζει στιγμιότυπα σε βίντεο για κάθε ενδιαφέρον πρότυπο, επιτρέποντας στους προπονητές να παρακολουθήσουν μόνο τα συγκεκριμένα κρίσιμα σημεία. Η βιντεοκασέτα παρέχει όλα τα περιεχόμενα που αφορούν ένα ενδιαφέρον πρότυπο, και συνδυασμένα με τις ικανότητες ενός ειδικού του τομέα, διευκολύνουν σημαντικά την ερμηνεία των προτύπων. Στις πιο πρόσφατες εκδόσεις του Advanced Scout, ένα ολόκληρο παιχνίδι μπορεί να αποθηκευτεί σε ένα CD-ROM και τα χρήσιμα στιγμιότυπα μπορούν να απομονωθούν, να ανακτηθούν από ένα PC Intelligent Scout Basket Το Intelligent Scout Basket (ISB) πρόκειται για ένα σύστημα στήριξης απόφασης (decision support system) βασισμένο σε αλγόριθμους εξόρυξης δεδομένων, με σκοπό την επιλογή αποφάσεων τακτικής σε έναν αγώνα μπάσκετ του πρωταθλήματος της πρώτης εθνικής κατηγορίας μπάσκετ της Ιταλίας. Υλοποιήθηκε από τους Giuseppe Polese και Genoveffa Tortora, καθηγητές του τμήματος Μαθηματικών στο πανεπιστήμιο του Salerno-Ιταλία (Università degli Studi di Salerno), σε συνεργασία με τον Massimiliano Troiano και της προεξέχουσας στην Ιταλία εταιρίας πληροφορικής Information Technology Systems. Θα μπορούσαμε να πούμε ότι ο σκοπός του συστήματος είναι η επίλυση ενός τυπικού προβλήματος λήψης στρατηγικών αποφάσεων: η υποστήριξη -55-

66 ενός προπονητή μπάσκετ στην λήψη τεχνικών αποφάσεων, και αποφάσεων τακτικής. Η υλοποίηση του συστήματος έγινε υπό την συνεχή παρακολούθηση από έναν ειδικό του τομέα, στην προκειμένη έναν επαγγελματία προπονητή μπάσκετ. Αυτός ήταν που αξιολόγησε τους κανόνες που οι αλγόριθμοι εξόρυξης δεδομένων δημιούργησαν, και στην συνέχεια τους αποδεχόταν ή τους απέρριπτε. Δημιούργησε ακόμα και δικούς του κανόνες, με δικές του παραμέτρους και τιμές κατωφλίου. Παρακάτω δίνεται μια πιο ειδική περιγραφή του τρόπου λειτουργίας και των εφαρμογών του Intelligent Scout Basket (ISB). Γενική Περιγραφή Το ISB μπορεί να χρησιμοποιηθεί για τη λήψη αποφάσεων πραγματικού χρόνου κατά τη διάρκεια ενός αγώνα μπάσκετ, ή σαν ένα εργαλείο ανάλυσης πριν ή και μετά τον αγώνα. Κατά τη διάρκεια ενός αγώνα το ISB προτείνει λύσεις τακτικής στον προπονητή της ομάδας, βασισμένες σε όμοια πρότυπα ανάμεσα στο συγκεκριμένο αγώνα και αγώνες που έχουν διεξαχθεί στο παρελθόν. Τα δεδομένα που αφορούν τον εν εξελίξει αγώνα εισάγονται στο σύστημα από το βοηθό προπονητή και χειριστή του προγράμματος. Προτού ο προπονητής πάρει μία απόφαση, έχει τη δυνατότητα να την εισάγει στο ISB, το οποίο με τη σειρά του θα προτείνει την άποψή του, αφού πραγματοποιήσει κάποιες προσομοιώσεις και συγκρίσεις με παρόμοια πρότυπα από προηγούμενους αγώνες. Κατά τη διάρκεια της προ-αγώνα ανάλυσης ο προπονητής μπορεί να χρησιμοποιήσει το ISB για να μελετήσει τις στρατηγικές που θα ακολουθήσει στον αγώνα. Με άλλα λόγια, έχει τη δυνατότητα να εισάγει τις δικές του στρατηγικές τακτικής στο ISB, αλλά και να παρέχει δεδομένα για τον αγώνα και χαρακτηριστικά για την αντίπαλο αμάδα. Και στις δύο περιπτώσεις, το ISB ανατρέχει σε προηγούμενους αγώνες με σκοπό την ανακάλυψη όμοιων προτύπων. Στη πρώτη περίπτωση το ISB παρέχει στον προπονητή την άποψή του για την επιλεγόμενη στρατηγική, ενώ στη δεύτερη περίπτωση παρέχει προτάσεις στον προπονητή με σκοπό την υποβοήθησή του κατά τη σχεδίαση της στρατηγικής που θα ακολουθηθεί. Τέλος, κατά τη μετά-αγώνα ανάλυση το ISB κατέχει επιπρόσθετα δεδομένα, αυτά του διεξαχθέντος αγώνα, επιτρέποντας στον προπονητή να προσομοιώσει πιθανά σενάρια, σε περίπτωση που επέλεγε διαφορετικές στρατηγικές από αυτές που είχε διαλέξει κατά τη διάρκεια του αγώνα. -56-

67 Τα δεδομένα Όπως προαναφέρθηκε το Intelligent Scout Basket (ISB) εκμεταλλεύεται δεδομένα από προηγούμενους αγώνες με σκοπό να προτείνει αποφάσεις για τωρινούς ή μελλοντικούς αγώνες. Το ISB έχει εκπαιδευθεί σύμφωνα με τη βάση δεδομένων του Ιταλικού Πρωταθλήματος Μπάσκετ (Italian Basket Lega -IBLDB) που περιέχει δεδομένα από αγώνες πολλών προηγούμενων αγωνιστικών περιόδων. Τα δεδομένα αυτά περιέχουν, μεταξύ άλλων, σωματικά, τεχνικά, ψυχολογικά χαρακτηριστικά παικτών, την επίδοση των πέντε βασικών αθλητών κάθε ομάδας, και τον τρόπο με τον οποίο οι αλλαγές τακτικής επηρέασαν τα χαρακτηριστικά αυτά. Δεδομένης της φύσης του προβλήματος, η υλοποίηση του συστήματος βασίστηκε σε αλγόριθμους εξόρυξης δεδομένων. Στην πράξη, δεδομένης της ύπαρξης τόσο μεγάλης συλλογής δεδομένων, η εξαγωγή κανόνων μέσω της εξόρυξης δεδομένων μπορεί να θεωρηθεί αρκετά αξιόπιστη. Σε πρώτο στάδιο, χρησιμοποιήθηκε μία εκ των υστερών παραμετροποίηση του συστήματος, επιτρέποντας έτσι στον προπονητή να διδάξει στο ISB τις δικές του στρατηγικές. Αυτό επιτεύχθηκε με τη συνεργασία ενός προπονητή μπάσκετ σαν ειδικός του τομέα. Ο προπονητής ειδικός βοήθησε στην εκπαίδευση του συστήματος με τις δικές του στρατηγικές. Από την άλλη μεριά, η εξόρυξη δεδομένων του ISB χρησιμοποιήθηκε για να εκμαιεύσει γνώση, από τον τεράστιο αριθμό δεδομένων από τη βάση δεδομένων του Ιταλικού πρωταθλήματος. Οι τεχνικές εξόρυξης δεδομένων του ISB είναι βασισμένες στον αλγόριθμο Apriori algorithm. Η βασική έκδοση του αλγορίθμου στη συνέχεια τροποποιήθηκε με σκοπό τον πιο εύκολο χειρισμό των πολύπλοκων εμφωλιασμένων κανόνων που ο ειδικός του τομέα πρότεινε. Ο αλγόριθμος Apriori ανήκει σε ένα γενικό μοντέλο εξόρυξης δεδομένων, το Μοντέλο Ανακάλυψης, που χρησιμοποιεί την τεχνική των «Κανόνων Συσχέτισης» για να ανακαλύψει κρυμμένες πληροφορίες σε βάσεις δεδομένων. Ο αλγόριθμος Apriori επιτρέπει την εξαγωγή κανόνων If-Then -Rules που στη συνέχεια ταυτοποιούνται μέσω του αλγορίθμου DecisionQuery, ο οποίος ανήκει στο γενικό μοντέλο εξόρυξης δεδομένων Verification Model. Η επαλήθευση των εξαγόμενων κανόνων πραγματοποιείται με τη χρήση δυναμικών ερωτήσεων στη βάση δεδομένων. Συγκεκριμένα, η ερώτηση συντίθεται κατά το χρόνο εκτέλεσης, και περιέχει παραμέτρους για την εκτίμηση των καλύτερων αποτελεσμάτων. Δηλαδή η επαλήθευση βασίζεται σε στατιστικά δεδομένα που αφορούν τα χαρακτηριστικά και τις επιδόσεις των παικτών. -57-

68 Το ISB στην πράξη Το ISB κατά τη διάρκεια ενός παιχνιδιού μπορεί να παρέχει πολύτιμες πληροφορίες στο προπονητή για τις επιδόσεις της ομάδας, για τα σημεία όπου η ομάδα υστερεί, καθώς και για το ποιοι συγκεκριμένοι παίκτες ευθύνονται για αυτό. Το παρακάτω παράδειγμα αναφέρεται στον αγώνα ανάμεσα στις ομάδες Roseto Rimini και Benetton Treviso της A1 κατηγορίας του Ιταλικού πρωταθλήματος μπάσκετ. Σε οποιοδήποτε σημείο του αγώνα το σύστημα μπορεί και ανταποκρίνεται με προτάσεις και επισημάνσεις προς τον προπονητή της ομάδας, επισημαίνοντας πάντα το κανόνα. Για παράδειγμα, ένας κανόνας που το σύστημα πρότεινε στο συγκεκριμένο αγώνα, έλεγε ότι στη θέση που προπονητής έχει κωδικοποιήσει σαν νούμερο 4 ( pivot ), ο παίκτης της αντιπάλου ομάδας έχει πολύ καλύτερη επίδοση από τον παίκτη της δικιάς μας ομάδας. Σ αυτή τη περίπτωση ο προπονητής ειδικός είχε εκπαιδεύσει το σύστημα να παρακολουθεί και να εμφανίζει τις πάσες, τα ριμπάουντ και τα σουτ. Στο σημείο αυτό, ο προπονητής έχει τη δυνατότητα να ζητήσει από το σύστημα να παρουσιάσει γραφικά με στόχο την καλύτερη παρακολούθηση της διαφοράς απόδοσης, ανά πάσα στιγμή κατά τη διάρκεια του αγώνα. Στη συνέχεια ο προπονητής μπορεί να κάνει μια ερώτηση στο ISB, ζητώντας του να του παρουσιάσει τα ονόματα των παικτών που θα μπορούσαν να μειώσουν τη διαφορά στα τρία υπό παρακολούθηση χαρακτηριστικά. Ο προπονητής μπορεί να διαλέξει το χρονικό διάστημα από το παρελθόν στο οποίο το σύστημα θα ανατρέξει, για να υπολογίσει την επίδοση των υποψηφίων παικτών. Στη συγκεκριμένη περίπτωση που μελετάται, ο προπονητής επέλεξε να ληφθούν υπ όψη μόνο οι επιδόσεις εκείνης της χρονιάς. Το σύστημα παρουσίασε ότι ο παίκτης με το όνομα Nicola είχε καλές επιδόσεις στα τρία ζητούμενα χαρακτηριστικά,έτσι αντικαθιστώντας τον παίκτη στη θέση 4 με τον παίκτη Nicola, η παρατήρηση του ISB αποσύρεται. Η ευελιξία των αλγορίθμων που χρησιμοποιεί το ISB, καθιστά εύκολη τη εναρμόνιση του συστήματος σε κάθε είδους στρατηγική παιχνιδιού. Επιπλέον, ο προπονητής έχει τη δυνατότητα να παρακολουθεί την αγωνιστική κατάσταση των παικτών του, καθώς και άλλες παρομοίου τύπου πληροφορίες, εκτελώντας το σύστημα τη διαδικασία ανακάλυψης γνώσης. Το ISB μπορεί να επεκταθεί για να πραγματοποιήσει επιπλέον εκτιμήσεις, όπως το να αποτιμήσει παίκτες της ομάδας ή άλλους παίκτες του πρωταθλήματος, παρέχοντας έτσι πιθανούς μεταγραφικούς στόχους για τις επόμενες περιόδους. -58-

69 3.4 Πρόβλεψη αποτελεσμάτων αγώνων Η πρόγνωση της έκβασης ενός αθλητικού γεγονότος παρόλο που δεν μπορεί να χρησιμοποιηθεί άμεσα σαν βοηθητικό εργαλείο από τους αθλητικούς συλλόγους, αποτελεί μια ισχυρή πρόκληση για τον τομέα της ανακάλυψης γνώσης. Η μοντελοποίηση ενός τόσο σύνθετου προβλήματος, και η πρόγνωση της τιμής μιας εξαρτημένης μεταβλητής που θα αναπαριστά το αποτέλεσμα του αγώνα, έχει αντιμετωπιστεί αρκετές φορές με επιτυχία. Ακολουθεί ένα χαρακτηριστικό παράδειγμα μιας τέτοιας εφαρμογής, που υλοποιήθηκε με σκοπό την πρόγνωση των αποτελεσμάτων των αγώνων του πρωταθλήματος NCAA στις Η.Π.Α Score Card Η "Score Card" 2 αναπτύχθηκε από τους Coleman και Lynch (ο Jay Coleman είναι καθηγητής Operations Management & Quantitative Methods στο Coggin College of Business του πανεπιστημίου της North Florida-Η.Π.Α. Ο Αllen Lynch είναι Associate Professor of Economics & Quantitative Methods στο Stetson School of Business and Economics του πανεπιστημίου του Mercer-Η.Π.Α) και είναι σχεδιασμένη να προβλέπει τα αποτελέσματα των αγώνων του πρωταθλήματος του NCAA, χρησιμοποιώντας τις ίδιες πληροφορίες που η Επιτροπή Επιλογής του πρωταθλήματος του NCAA έχει στην διάθεσή της για να καθορίσει την άνοδο των ομάδων από τα τοπικά πρωταθλήματα στο εθνικό πρωτάθλημα. Γενική περιγραφή Η Score Card χρησιμοποιεί τα αποτελέσματα των αγώνων του πρωταθλήματος για το διάστημα 2001 έως 2004 (συνολικά 256 αγώνες), και σχεδόν 50 ήδη πληροφοριών για κάθε μία από τις δύο ομάδες που αγωνίζονται στον εκάστοτε αγώνα (πληροφορίες όπως η κατάταξη RPI-Ratings Percentage Index, σχετικά ρεκόρ στο αντίστοιχο τοπικό πρωτάθλημα, άλλα ρεκόρ εκτός τοπικού πρωταθλήματος κ.τ.λ.). Οι Coleman και

70 Lynch σχεδίασαν τη Score Card σαν μια εκτίμηση για το ποιες πληροφορίες ήταν περισσότερο σημαντικές στον καθορισμό του νικητή ενός αγώνα πρωταθλήματος, και τα βάρη που δίνονται σ αυτές τις πληροφορίες. Η Score Card προτείνει ότι μόνο τέσσερα είδη πληροφορίας για κάθε ομάδα είναι υψηλής σημασίας για τον καθορισμό της απόδοσης στο πρωτάθλημα: 1. Η θέση της ομάδας στη RPI ποσοστιαία κατάταξη (Ratings Percentage Index) 2. Η θέση της ομάδας στο τοπικό πρωτάθλημα από το οποίο προέρχεται (χρησιμοποιώντας τη τοπική RPI κατάταξη για το κάθε τοπικό πρωτάθλημα). 3. Εάν η ομάδα κέρδισε το αντίστοιχο τοπικό πρωτάθλημα της κανονικής περιόδου. 4. Το ποσοστό νικών της ομάδας ενάντια σε μη τοπικές ομάδες. Οι Coleman και Lynch ανακάλυψαν επίσης ότι η μία πρόγνωση βασισμένη στις παραπάνω μεταβλητές, αποδείχθηκε πιο ακριβής, απ ότι μια πρόβλεψη βασισμένη στο ποιος είναι ο εκάστοτε αντίπαλος των ομάδων. Με άλλα λόγια, μόλις γίνουν γνωστές οι παραπάνω παράμετροι, οι αντίπαλοι της ομάδας δεν βοηθούν στη πρόγνωση του αποτελέσματος του αγώνα. Ακρίβεια και επιδόσεις της Score Card Για κάθε ομάδα, οι τιμές των τεσσάρων σημαντικών παραμέτρων, εισάγονται στην Score Card, υπολογίζοντας μία Score Card-τιμή για την συγκεκριμένη ομάδα, και στη συνέχεια οι ομάδες κατατάσσονται βάσει της τιμής αυτής. Η ομάδα, από τις δύο που συμμετέχουν σε ένα αγώνα, που θα βρίσκεται πιο ψηλά στην κατάταξη θα είναι και αυτή που η Score Card θα προγνώσει ως νικήτρια του αγώνα. Για αυτούς που είναι εξοικειωμένοι με στατιστικά δεδομένα, οι τιμές Score Card των δύο ομάδων μπορούν να συγκριθούν, και η διαφορά τους να μετατραπεί στην πιθανότητα της μιας να κερδίσει τον αγώνα. Αυτό μπορεί να υλοποιηθεί στο Microsoft Excel εισάγοντας τον τύπο =normsdist(xx) σε κάθε κελί, και αντικαθιστώντας το xx στη παρένθεση με τη διαφορά μεταξύ της Score Card τιμής της ομάδας που είναι πιο ψηλά στην κατάταξη, και της τιμής Score Card της ομάδας που βρίσκεται πιο χαμηλά στην κατάταξη. Για παράδειγμα, αν η ομάδα που είναι πιο ψηλά στη κατάταξη είχε τιμή Score Card 6.00, και ο αντίπαλός της είχε τιμή Score Card 5.00, ο τύπος θα εισαγόταν ως εξής =normsdist(1.00), και τα αποτέλεσμα θα ήταν μια πιθανότητα 84.13% ότι η ομάδα με τη υψηλότερη θέση στη κατάταξη θα κέρδιζε. -60-

71 Χρησιμοποιώντας αυτή τη διαδικασία, η Score Card κατέληξε στα παρακάτω ποσοστά ακρίβειας για την τετραετία : 75%συνολική ακρίβεια, 78%ακρίβεια στον πρώτο γύρο, 72% ακρίβεια στους γύρους 2 έως 6, 66 % ακρίβεια στους «κοντινούς» αγώνες (ένας αγώνας στον οποίο οι δύο ομάδες απέχουν λιγότερο από 10 θέσεις στην κατάταξη RPI). Το μοντέλο ήταν αρκετά ακριβές και στην πρόβλεψη εκπλήξεων: 74% ακρίβεια όταν προέβλεπε μία «RPI έκπληξη»(όταν προέβλεπε ότι η ομάδα που βρισκόταν στη πιο υψηλή θέση της κατάταξης RPI θα έχανε τον αγώνα) 86% ακρίβεια όταν προέβλεπε μια πιο σίγουρη «RPI έκπληξη» (όταν προβλέπει ότι η ομάδα που βρισκόταν στην πιο υψηλή θέση στη κατάταξη RPI είχε λιγότερο από 40% πιθανότητα να κερδίσει τον αγώνα) 75% ακρίβεια όταν προέβλεπε ότι μία ομάδα που βρισκόταν χαμηλότερα στην βαθμολογία θα κέρδιζε μία ομάδα που βρισκόταν ψηλότερα. Το 2005, η Score Card προέγνωσε σωστά τον τελικό του πρωταθλήματος, και τα τρία παιχνίδια του Final Four, 46 από τους 64 αγώνες (72%), και ήταν σωστή για τις 4 από τις 6 εκπλήξεις που προέγνωσε για το πρωτάθλημα (67%). Στο σύνολο της πενταετίας , όταν η Score Card προέβλεπε ότι μια ομάδα που ήταν χαμηλότερα στην βαθμολογία θα κέρδιζε, η πρόγνωση θα ήταν σωστή 19 στις 26 φορές (73%). 3.5 Άλλα Παραδείγματα Εφαρμογών Υπάρχουν και άλλες εφαρμογές, που χρησιμοποιώντας τεχνικές εξόρυξης δεδομένων και ανακάλυψης γνώσης, προσπαθούν να αντιμετωπίσουν προβλήματα περιφερειακά του τομέα του αθλητισμού, με ερευνητικό κυρίως ενδιαφέρον. Θέματα δηλαδή που δεν υπάγονται σε καμία από τις τρεις παραπάνω κατηγορίες (μάρκετινγκ, προπονητική και πρόβλεψη αποτελέσματος), αλλά αποτελούν και αυτά πρόκληση για την εξόρυξη δεδομένων. -61-

72 3.5.1 Dance Card Γενική περιγραφή της Dance Card Η Dance Card 3 είναι μια εφαρμογή δημιουργημένη και πάλι από τους Coleman και Lynch σαν μια εκτίμηση του κανόνα επιλογής που η Επιτροπή Επιλογής Πρωταθλήματος (Tournament Selection Committee) του πρωταθλήματος NCAA χρησιμοποιεί, όταν διαλέγει τις ομάδες που θα συμμετάσχουν στο πρωτάθλημα μπάσκετ ανδρών του NCAA. Είναι δηλαδή μια προσπάθεια μοντελοποίησης της επιτροπής και πρόγνωση των επιλογών της. Χρησιμοποιώντας τις επιλογές της Επιτροπής Επιλογής του Πρωταθλήματος NCAA από την χρονιά 1994 έως το1999, και 42 τύπους πληροφορίας (π.χ. κατάταξη RPI - Πίνακας Ποσοστιαίας Κατάταξης, αριθμός νικών και ηττών, σχετικά ρεκόρ στα τοπικά πρωταθλήματα κ.τ.λ.) για όλες τις ομάδες που ήταν υποψήφιες για να επιλεγούν εκείνες τις χρονιές, οι Coleman και Lynch δημιούργησαν τη Dance Card σαν μια εκτίμηση για το ποιες πληροφορίες ήταν σημαντικές για την Επιτροπή Επιλογής, και τη σημασία που έδιναν σε κάθε μία από αυτές. Η φόρμουλα της Dance Card προτείνει ότι μόλις έξι είδη πληροφορίας που αφορούν τις ομάδες είναι εξέχουσας σημασίας όσο αναφορά την επιλογή τους ή όχι: 1.Κατάταξη RPI (Ratings Percentage Index - Πίνακας Ποσοστιαίας Κατάταξης). 2.Κατάταξη RPI στο αντίστοιχο τοπικό πρωτάθλημα. 3.Αριθμός νικών ενάντια σε ομάδες που κατατάσσονται στις θέσεις 1-25 στο RPI. 4.Διαφορά ανάμεσα σε νίκες και ήττες στο τοπικό πρωτάθλημα. 5.Διαφορά ανάμεσα σε νίκες και ήττες ενάντια σε ομάδες που κατατάσσονται στις θέσεις στον πίνακα κατάταξης RPI. 6.Διαφορά ανάμεσα σε νίκες και ήττες ενάντια σε ομάδες που κατατάσσονται στις θέσεις στον πίνακα κατάταξης RPI. Ο τρόπος λειτουργίας της Dance Card Ο αλγόριθμος της Dance Card λειτουργεί σε δύο στάδια. Ξεκινά αφαιρώντας από τη βάση ομάδες που ικανοποιούν κάποιες συνθήκες που έχουν να κάνουν με χαρακτηριστικά όπως χαμηλή κατάταξη στον πίνακα RPI, χαμηλές επιδόσεις με ομάδες της πρώτης κατηγορίας κ.α

73 Στη συνέχεια, οι πληροφορίες για τις εναπομείναντες ομάδες εισάγονται στη Dance Card, και οι ομάδες κατατάσσονται βάσει των αποτελεσμάτων που εξάγει το σύστημα. Η Dance Card μπορεί να είναι τόσο ακριβής όσο συνεπής μπορεί να είναι η Επιτροπή Επιλογής, καθώς είναι μια εκτίμηση των κριτηρίων επιλογής της Επιτροπής. Η υψηλή ακρίβεια και συνέπεια του μοντέλου αποτελεί ισχυρή απόδειξη ότι η Επιτροπή Επιλογής (που διαφέρει σε σύνθεση κάθε χρόνο) έχει δεδομένη συνέπεια με την πάροδο των χρόνο. Οι επιδόσεις της Dance Card για το 2006 Η Dance Card προέβλεψε σωστά 31 στις 34 επιλογές (μη προβλέποντας σωστά τις Northern Iowa, Seton Hall, και Air Force), έχοντας συνολική επιτυχία 91% για το Η Dance Card δεν αστόχησε ποτέ σε περισσότερες από τρεις επιλογές σε καμία περίοδο. Κατά τη διάρκεια της συνολικής περιόδου 13 χρόνων, η Dance Card προέβλεψε σωστά 416 από τις 444 επιλογές (93.7%). Κατά την πενταετία , όπου η Dance Card χρησιμοποιήθηκε από τότε που αρχικά υλοποιήθηκε το 1999 (βασισμένη σε δεδομένα από το 1994 έως το 1999), προέγνωσε σωστά 224από τις 239 επιλογές (93.7%). Οι καλύτερες χρονιές του συστήματος ήταν η 2001και η 2005, όταν και προέγνωσε σωστά 33 of the 34 επιλογές (ή 97% ακρίβεια). Η Dance Card χρησιμοποιώντας την νέα μέθοδο κατάταξης RPI (που υπολογίζει στα αρχικά περιεχόμενα ξεχωριστά τις επιδόσεις σε εκτός και εντός αγώνες), προέβλεψε σωστά 32 από τις 34 επιλογές το 2005 (αστοχώντας τη North Carolina State και τη Iowa State),ή 94%. Το γεγονός ότι ο αρχικός υπολογισμός της Dance Card (χρησιμοποιώντας τη παλιά μέθοδο κατάταξης RPI) ήταν πιο ακριβής από αυτόν που χρησιμοποίησε την καινούργια μέθοδο κατάταξης RPI σαν είσοδο, δηλώνει ότι η επιτροπή παρέμεινε στην χρησιμοποίηση των παλιών μεθόδων. Η Dance Card έχει φιλοξενηθεί από μεγάλες εφημερίδες, όπως: Wall Street Journal, Forbes, Investor's Business Daily, οι New York Times, το Associated Press, UPI, και USA Today,καθώς και από μεγάλα μέσα μαζικής ενημέρωσης, συμπεριλαμβανομένων των CNN Headline News, των Sporting News, και του CBS SportsLine. -63-

74 Επίλογος Συνοψίζοντας, θα μπορούσαμε να πούμε ότι παρόλο που η χρησιμοποίηση τεχνικών εξόρυξης δεδομένων και ανακάλυψης γνώσης δεν είναι αισθητά διαδεδομένη στον τομέα του αθλητισμού, υπάρχουν αρκετά παραδείγματα που αναδεικνύουν τα πλεονεκτήματα που οι συγκεκριμένες αθλητικές εταιρίες απολαμβάνουν. Με την χρησιμοποίηση τέτοιου είδους εφαρμογών, οι διοικήσεις πολλών μεγάλων συλλόγων στο NBA, έχουν καταφέρει να αυξήσουν τα έσοδα από τις πωλήσεις απλών εισιτηρίων αλλά και το ποσοστό ανανέωσης των εισιτηρίων διαρκείας. Ακόμα, οι προπονητές πολλών συλλόγων έχουν ανακαλύψει σε τέτοιους είδους εφαρμογές έναν πολύτιμο συνεργάτη στην προσπάθεια τους να επιτύχουν τους στόχους τους, και να βελτιώσουν τον τρόπο παιχνιδιού της ομάδας τους. Η πληροφορία που εξάγεται από τις τεράστιες βάσεις δεδομένων, όσο αφορά τις επιδόσεις των παικτών, επιτρέπει στους προπονητές να τοποθετούν και να κατευθύνουν τους παίκτες κατά την διάρκεια ενός παιχνιδιού. Τέλος υπάρχουν και λιγοστά παραδείγματα όπου οι τεχνικές εξόρυξης δεδομένων έχουν αντιμετωπίσει επιτυχώς το πρόβλημα της πρόβλεψης της έκβασης ενός αθλητικού γεγονότος. Συνεπώς, η εξόρυξη δεδομένων είναι μία πανίσχυρη τεχνική με πολλαπλές εφαρμογές στον αθλητισμό. -64-

75 4 Η ΕΦΑΡΜΟΓΗ Εισαγωγή Στο κεφάλαιο αυτό θα ασχοληθούμε με την εφαρμογή που υλοποιήθηκε στα πλαίσια της πτυχιακής εργασίας. Θα γίνει μια σύντομη περιγραφή του προβλήματος που ζητήθηκε να εξεταστεί και του τρόπου που αυτό αντιμετωπίστηκε. Ακόμα θα γίνει λεπτομερής περιγραφή της εφαρμογής, του τρόπου υλοποίησής της, αλλά και σχολιασμός των αποτελεσμάτων που αυτή παρέχει. 4.1 Περιγραφή του προβλήματος Σκοπός της παρούσας πτυχιακής εργασίας είναι η υλοποίηση μιας εφαρμογής σε γλώσσα Java, που θα υποστηρίζει την πρόγνωση του αποτελέσματος αγώνων ποδοσφαίρου κάποιου σημαντικού πρωταθλήματος, με χρήση τεχνικών εξόρυξης δεδομένων και μηχανικής μάθησης. Απώτερος σκοπός της εργασίας θα είναι τόσο η επίτευξη ενός ποσοστού επιτυχίας της τάξης του 60%, αλλά και η καταγραφή των επιδόσεων γνωστών αλγορίθμων μηχανικής μάθησης στο πρόβλημα της πρόγνωσης αποτελέσματος. 4.2 Η προσέγγιση του προβλήματος Επιλογή Εργαλείων - Αρχιτεκτονική Συστήματος Ο τρόπος λειτουργίας της εφαρμογής βασίζεται σε τρία κύρια συστατικά: 1. Μία βάση δεδομένων όπου αποθηκεύονται πληροφορίες σχετικές με την αγωνιστική χρονιά του πρωταθλήματος που είναι υπό εξέταση. Πληροφορίες όπως ποιες είναι οι ομάδες που αγωνίζονται στο πρωτάθλημα, αποτελέσματα αγώνων, ημερομηνίες διεξαγωγής των αγώνων, πληροφορίες για την κατάσταση των ομάδων που συμμετέχουν σε ένα αγώνα κ.α. Η βάση θα υλοποιηθεί με την χρήση του εργαλείου ανοιχτού κώδικα MySQL

76 2. Το εργαλείο WEKA 5, που παρέχει την δυνατότητα εφαρμογής γνωστών αλγορίθμων μηχανικής μάθησης πάνω σε βάσεις δεδομένων. Αλγόριθμοι από τομείς της τεχνητή νοημοσύνης όπως τα δένδρα απόφασης, η μάθηση κανόνων, η μάθηση κατά Bayes, τα νευρωνικά δίκτυα κ.α. 3. Η διεπαφή χρήστη υλοποιημένη σε Java, που εκτός από τη διασύνδεση με το χρήστη μέσω του γραφικού περιβάλλοντος, θα λειτουργεί και σαν ενδιάμεσο ανάμεσα στην βάση δεδομένων και στο εργαλείο WEKA. Με αυτόν τον τρόπο οι αλγόριθμοι θα έχουν άμεση πρόσβαση στα καταχωρημένα δεδομένα. Για την υλοποίηση της διεπαφής χρήστη χρησιμοποιήθηκε το εργαλείο ανοιχτού κώδικα NetBeans Για την σύνδεση της εφαρμογής με την βάση δεδομένων χρησιμοποιηθεί το εργαλείο JDBC (Java DataBase Connector), που προσφέρεται από το εργαλείο MySQL. Τα παραπάνω μας οδηγούν στην αρχιτεκτονική που φαίνεται στο σχήμα 4.1. Σχήμα 4.1 Η αρχιτεκτονική του συστήματος O χρήστης έχει την δυνατότητα να ζητήσει πρόγνωση για την έκβαση ενός αγώνα που αυτός θα καθορίσει, και η εφαρμογή θα του υποδείξει ποιο από τα τρία δυνατά αποτελέσματα (νίκη γηπεδούχου, ισοπαλία, νίκη φιλοξενούμενου), θεωρεί ότι θα είναι αυτό του αγώνα. Η μόνη υποχρέωση του χρήστη είναι η ενημέρωση της βάσης δεδομένων με τα αποτελέσματα των αγώνων που έχουν ήδη διεξαχθεί. 5 /

77 4.2.2 Η επιλογή του πρωταθλήματος Η πρώτη επιλογή που έπρεπε να γίνει κατά τη διάρκεια του σχεδιασμού της εφαρμογής, ήταν αυτή του πρωταθλήματος που θα χρησιμοποιούταν. Θα έπρεπε πρώτα από όλα να είναι ένα πρωτάθλημα όπου τα αποτελέσματα των αγώνων να είναι ανεξάρτητα από εξωτερικούς παράγοντες, που θα ήταν πιθανόν δύσκολο να μοντελοποιηθούν (όπως διαιτησία, φίλαθλοι, εξωαγωνιστικοί παράγοντες κ.α.). Θα έπρεπε ακόμα να είναι ένα πρωτάθλημα με όσο το δυνατόν περισσότερους αγώνες ανά αγωνιστική περίοδο, ούτως ώστε να είναι και μεγαλύτερα τα ποσά πληροφορίας που θα ήταν διαθέσιμα προς ανάλυση. Τα παραπάνω, σε συνδυασμό με τις προσωπικές προτιμήσεις, οδήγησαν στην επιλογή του πρωταθλήματος της πρώτης κατηγορίας της Αγγλίας (Premier League). Στην Premier League συμμετέχουν 20 ομάδες, που αγωνίζονται μεταξύ τους σε διπλούς αγώνες, που μεταφράζεται σε 380 αγώνες ανά έτος. Ο αριθμός αυτός θεωρήθηκε αρκετός για τη δημιουργία ενός ικανοποιητικού σε μέγεθος συνόλου εκπαίδευσης Η επιλογή των χαρακτηριστικών Η επόμενη βασική επιλογή που έπρεπε να γίνει ήταν αυτή των χαρακτηριστικών που επηρεάζουν την έκβαση ενός αγώνα ποδοσφαίρου. Μετά από πολλή σκέψη και πειραματισμό επιλέχθηκαν τα παρακάτω χαρακτηριστικά πάνω στα οποία βασίστηκε η αναπαράσταση του προβλήματος: 1. Η κατάταξη της γηπεδούχου ομάδας στον πίνακα βαθμολογίας του πρωταθλήματος. 2. Η κατάταξη της φιλοξενούμενης ομάδας στον πίνακα βαθμολογίας του πρωταθλήματος. 3. Η φόρμα της γηπεδούχου ομάδας. 4. Η φόρμα της φιλοξενούμενης ομάδας. 5. Η φόρμα της γηπεδούχου ομάδας στα εντός έδρας παιχνίδια. 6. Η φόρμα της φιλοξενούμενης ομάδας στα εκτός έδρας παιχνίδια. 7. Η προϊστορία των αγώνων ανάμεσα στις δύο εμπλεκόμενες ομάδες. -67-

78 Στο σημείο αυτό πρέπει να αναφερθεί ότι οι απόψεις επί του συγκεκριμένου ζητήματος ποικίλουν σε μεγάλο βαθμό. Το σύνολο των παραγόντων που καθορίζουν την έκβαση ενός αγώνα, αλλάζει ανάλογα με τον παρατηρητή. Η παραπάνω προσέγγιση των επτά παραγόντων επιλέχθηκε με σκοπό να συμπεριληφθούν κάποια από τα πιο σημαντικά χαρακτηριστικά, ούτως ώστε να επιτευχθεί μια ευέλικτη, μικρή σε όγκο, αλλά ουσιαστική και περιεκτική αναπαράσταση. Από την άλλη όμως, δεν έχουν συμπεριληφθεί άλλοι, κατά γενική ομολογία σημαντικοί παράγοντες. Τέτοιοι είναι οι απουσίες παικτών από την ενδεκάδα μιας ομάδας (από τραυματισμούς ή κάρτες),το αν μια ομάδα έχει να δώσει ευρωπαϊκό αγώνα μέσα στην εβδομάδα, ή ακόμα το ενδιαφέρον (ή την αδιαφορία) που μπορεί να έχει μια ομάδα για έναν συγκεκριμένο αγώνα. Αν για παράδειγμα σε έναν αγώνα μεταξύ των ομάδων Α και Β, κρίνεται η παραμονή ή όχι της ομάδας Α στην κατηγορία, ενώ η ομάδα Β δεν έχει βαθμολογικό ενδιαφέρον, τότε η ομάδα Α έχει μεγαλύτερη πιθανότητα να κερδίσει το συγκεκριμένο αγώνα. Οι παραλήψεις αυτές έγιναν είτε λόγω δυσκολίας αναπαράστασης (στην περίπτωση ενδιαφέροντος ή όχι της ομάδας για τον αγώνα), είτε λόγω έλλειψης χρόνου (η ενημέρωση της βάσης με το έμψυχο δυναμικό κάθε ομάδας, ποιοι από τους παίκτες έπαιξαν σε κάθε αγώνα, τι έκανε ο κάθε παίκτης σε κάθε αγώνα-ούτως ώστε να αναγνωρίζει το σύστημα ποιοι είναι οι σημαντικοί παίκτες- θα χρειαζόταν χρόνο πολύ περισσότερο από αυτόν που ήταν στην διάθεσή μας). Ένας ακόμα λόγος που οδήγησε στη συγκεκριμένη αναπαράσταση, είναι ο αρχικός στόχος η εφαρμογή να είναι όσο το δυνατόν πιο ανεξαρτητοποιημένη από τον χρήστη. Ο χρήστης δηλαδή, το μόνο που θα χρειάζεται να κάνει για να λειτουργήσει η εφαρμογή, είναι να καταχωρεί τα αποτελέσματα των αγώνων που έχουν ήδη διεξαχθεί. Θα παρέχει το ελάχιστο δυνατό της πληροφορίας που αφορά έναν αγώνα, δηλαδή τις ομάδες, την ημερομηνία και το αποτέλεσμα του αγώνα. Δεν θα χρειάζεται να παρέχει πληροφορίες για τις φόρμες των ομάδων, την προϊστορία κ.τ.λ., και ούτε θα γνωρίζει πώς και γιατί αυτές υπολογίζονται. Στη συνέχεια, η εφαρμογή θα υπολογίζει από μόνη της τα επτά παραπάνω χαρακτηριστικά. Με τον τρόπο αυτό θα δημιουργείται ένας πίνακας όπου θα είναι αποθηκευμένοι οι διεξαχθείντες αγώνες μαζί με τα επτά είδη πληροφορίας που έχουν κριθεί σημαντικά, ανοίγοντας έτσι τον δρόμο στην μηχανική μάθηση να αναλύσει τον πίνακα, που θα -68-

79 αποτελεί τα δεδομένα εκπαίδευσης, και να μπορεί στη συνέχεια να κατηγοριοποιήσει έναν καινούργιο αγώνα που ζητήθηκε να προγνωστεί το αποτέλεσμά του. 4.3 Περιγραφή της βάσης δεδομένων Η βάση δεδομένων του συστήματος αποτελεί το μοναδικό μέσο αποθήκευσης, και υλοποιήθηκε με το εργαλείο ανοιχτού κώδικα MySQL. Παρακάτω παρουσιάζονται αναλυτικά ποιοι είναι οι πίνακες της βάσης, ποια τα χαρακτηριστικά τους και ποιος ο ρόλος τους στην αναπαράσταση του προβλήματος Ο πίνακας match_result Είναι ο πίνακας όπου αποθηκεύονται τα αποτελέσματα των αγώνων που έχουν διεξαχθεί. Θυμίζουμε ότι οι πληροφορίες αυτές είναι και οι μοναδικές που παρέχει ο χρήστης. Κάθε πλειάδα του πίνακα υλοποιεί έναν αγώνα που έχει διεξαχθεί. Ο πίνακας αποτελείται από τα παρακάτω πέντε χαρακτηριστικά: 1. home_team Είναι τύπου varchar και υλοποιεί το όνομα της γηπεδούχου ομάδας (σύνθετο κλειδί). 2. away_team Είναι τύπου varchar και υλοποιεί το όνομα της φιλοξενούμενης ομάδας (σύνθετο κλειδί). 3. match_date Είναι τύπου date και υλοποιεί την ημερομηνία διεξαγωγής του αγώνα (σύνθετο κλειδί). 4. home_team_goals Είναι τύπου int (θετικός) και υλοποιεί το πλήθος των τερμάτων που πέτυχε η γηπεδούχος ομάδα στον αγώνα. 5. away_team_goals Είναι τύπου int (θετικός) και υλοποιεί το πλήθος των τερμάτων που πέτυχε η φιλοξενούμενη ομάδα στον αγώνα. -69-

80 Εικόνα 4.2 Ο πίνακας match_result Παρατηρούμε ότι το κλειδί του πίνακα είναι σύνθετο και μάλιστα τριπλό. Αποτελείται από τα χαρακτηριστικά home_team, away_team και match_date. Αυτό σημαίνει ότι δεν μπορεί να υπάρξει δεύτερος αγώνας ανάμεσα σε δυο συγκεκριμένες ομάδες με την ίδια ημερομηνία. Οπότε για γίνει αναζήτηση στην βάση για έναν αγώνα πρέπει να γνωρίζουμε τις δύο ομάδες που συμμετείχαν σε αυτόν καθώς και την ημερομηνία διεξαγωγής του Ο πίνακας main_prediction Είναι ο βασικός πίνακας της βάσης δεδομένων όπου αποθηκεύονται οι αγώνες πλαισιωμένοι από τα επτά χαρακτηριστικά που έχουν κριθεί ως σημαντικά για την έκβαση του αποτελέσματος ενός αγώνα. Κάθε στήλη του πίνακα υλοποιεί και ένα από τα επτά χαρακτηριστικά που προαναφέρθηκαν ως σημαντικά για την έκβαση του αποτελέσματος ενός αγώνα. Πρέπει να πούμε πως η αντιστοίχηση των σημαντικών χαρακτηριστικών με τις στήλες του πίνακα δεν είναι ακριβής. Σε μερικές περιπτώσεις η ακριβή αναπαράσταση των χαρακτηριστικών δεν ήταν εφικτή. Για παράδειγμα η κατάταξη μιας ομάδας ήταν δύσκολο να υπολογιστεί με τις δεδομένες πληροφορίες, οπότε αντικαταστήθηκε από τους βαθμούς που έχει συλλέξει η ομάδα μέχρι την δεδομένη χρονική στιγμή. Τα χαρακτηριστικά του πίνακα είναι τα παρακάτω: -70-

81 1. home_team Eίναι τύπου varchar και υλοποιεί το όνομα της γηπεδούχου ομάδας (σύνθετο κλειδί). 2. away_team Είναι τύπου varchar υλοποιεί το όνομα της φιλοξενούμενης ομάδας (σύνθετο κλειδί). 3. match_date Είναι τύπου date και υλοποιεί την ημερομηνία διεξαγωγής του συγκεκριμένου αγώνα (σύνθετο κλειδί). 4. home_team_rating Είναι τύπου double που κυμαίνεται στο διάστημα [0,3], και αναπαριστά τους βαθμούς που έχει συλλέξει η γηπεδούχος ομάδα κατά την διάρκεια του πρωταθλήματος σε κανονικοποιημένη μορφή. Στην ουσία πρόκειται για το λόγο των βαθμών που έχει αποσπάσει η ομάδα προς τους αγώνες που έχει δώσει: home_team_rating = βαθμοί γηπεδούχου ομάδας αγ ώνες που έχει δώσει Αυτό γίνεται ούτως ώστε τα δεδομένα να είναι ανεξάρτητα από το πόσοι αγώνες έχουν γίνει στο πρωτάθλημα, και να υπάρχει κοινό μέτρο σύγκρισης μεταξύ των πλειάδων του πίνακα. Για παράδειγμα στην αρχή του πρωταθλήματος μια ομάδα μπορεί να έχει συλλέξει 7 βαθμούς και στον επόμενο αγώνα να κερδίσει, ενώ προς το τέλος του πρωταθλήματος να έχει 67 και στον επόμενο αγώνα να χάσει. Με την παραπάνω προσέγγιση αυτό το πρόβλημα λύνεται αφού ανά πάσα στιγμή αυτό που θα τίθεται προς σύγκριση θα είναι ο μέσος όρος των βαθμών ανά αγώνα που η ομάδα αποσπά. 5. away_team_rating Είναι τύπου double που κυμαίνεται στο διάστημα [0,3] και αντίστοιχα με την περίπτωση του home_team_rating αναπαριστά τους βαθμούς που έχει συλλέξει η φιλοξενούμενη ομάδα κατά τη διάρκεια του πρωταθλήματος σε κανονικοποιημένη μορφή. 6. rating_diff Είναι τύπου double που κυμαίνεται στο διάστημα [-3,3] και η τιμή της ισούται με τη διαφορά του μέσου όρου των βαθμών της γηπεδούχου ομάδας από αυτόν της φιλοξενούμενης: rating_diff = home_team_rating away_team_rating -71-

82 Η διαφορά ανάμεσα στους δύο μέσους όρους είναι το χαρακτηριστικό που δοθεί στη συνέχεια προς ανάλυση από τους αλγορίθμους τεχνητής νοημοσύνης και όχι οι μέσοι όροι από μόνοι τους. Αυτό γίνεται με σκοπό να καθοδηγηθούν οι αλγόριθμοί ως προς το ποια από τις δύο ομάδες είναι μεγαλύτερης δυναμικότητας. Δηλαδή είναι άλλο πράγμα να πούμε στον αλγόριθμο ότι η ομάδα Α έχει τάδε μέσο όρο συγκομιδής βαθμών και η ομάδα Β δείνα, και άλλο να δώσουμε την διαφορά τους. Αντικαθιστώντας τις δύο μεταβλητές με μία κάνουμε πιθανώς τον αλγόριθμο πιο αποδοτικό. Εικόνα 4.3 (α) Ο πίνακας main_prediction 7. home_team_form Είναι τύπου double που κυμαίνεται στο διάστημα [0,9] και αναπαριστά τη φόρμα της γηπεδούχου ομάδας. Πρόκειται στη ουσία για το άθροισμα των βαθμών που έχει αποσπάσει η γηπεδούχος ομάδα στους τρεις τελευταίους αγώνες. Οπότε μπορεί να πάρει τιμές από το 0 έως το 9, εκτός από την τιμή 8 ( δεδομένου ότι η νίκη δίνει 3 βαθμούς, η ισοπαλία 1 και η ήττα κανένα ). Οι τρεις αγώνες κρίθηκαν ιδανικό χρονικό διάστημα για τον υπολογισμό της φόρμας μιας ομάδας καθώς ένα μεγαλύτερο ή μικρότερο χρονικό διάστημα θα ήταν αποπροσανατολιστικό. 8. away_team_form Είναι τύπου double που κυμαίνεται στο διάστημα [0,9] και αντίστοιχα με την home_team_form αναπαριστά την φόρμα της φιλοξενούμενης ομάδας. 9. form_diff Είναι τύπου double που κυμαίνεται στο διάστημα [-9,9] και η τιμή της ισούται με την διαφορά της φόρμας της γηπεδούχου ομάδας από αυτή της φιλοξενούμενης: -72-

83 form_diff = home_team_form - away_team_form Όπως και στην περίπτωση της rating_diff στόχος είναι η απλούστευση της αναπαράστασης και η υποβοήθηση των αλγορίθμων, μειώνοντας τις μεταβλητές από δύο σε μία. Εικόνα 4.3 (β) Ο πίνακας main_prediction 10. home_team_form_at_home Είναι τύπου double που κυμαίνεται στο διάστημα [0,15] και αναπαριστά τη φόρμα της γηπεδούχου ομάδας στην έδρα της. Πρόκειται για το σύνολο των βαθμών που έχει αποσπάσει η ομάδα στους 5 τελευταίους αγώνες στην έδρα της. Αυτή τη φορά το χρονικό διάστημα αυξήθηκε από τρεις αγώνες σε πέντε αγώνες με το σκεπτικό ότι το πώς αγωνίζεται μια ομάδα εντός έδρας ( και αντίστοιχα εκτός ) δεν είναι μόνο θέμα φόρμας αλλά και άλλων παραγόντων. Για παράδειγμα μια ομάδα μπορεί να είναι πολύ ισχυρή στην έδρα της λόγω των φιλάθλων της, μια άλλη να είναι δυνατή στους εκτός έδρας αγώνες λόγω της αμυντικής στρατηγικής που ακολουθεί κ.τ.λ. Τέτοιου είδους πληροφορίες ανακαλύπτονται ευκολότερα σε ένα μεγαλύτερο χρονικό διάστημα. 11. away_team_form_at_ away Είναι τύπου double που κυμαίνεται στο διάστημα [0,15] και αντίστοιχα με την home_team_form_at_home αναπαριστά την φόρμα της φιλοξενούμενης ομάδας στους τελευταίους 5 εκτός έδρας αγώνες που έχει -73-

84 δώσει. Και πάλι η τιμή της ισούται με το άθροισμα των βαθμών που απέσπασε στα τελευταία 5 εκτός έδρας παιχνίδια. 12. venue_diff Είναι τύπου double που κυμαίνεται στο διάστημα [-15,15]. Παρόμοια με τις προηγούμενες περιπτώσεις διαφορών, η τιμή της ισούται με την διαφορά των βαθμών που απέσπασε η γηπεδούχος ομάδα στους τελευταίους 5 αγώνες στην έδρα της, από αυτούς που απέσπασε η φιλοξενούμενη ομάδα στους τελευταίους 5 αγώνες που έδωσε εκτός έδρας: venue_diff = home_team_form_at_home - away_team_form_at_away Εικόνα 4.3 (γ) Ο πίνακας main_prediction 13. past_games Είναι τύπου enum και αναπαριστά την προϊστορία των αγώνων ανάμεσα στις δυο εμπλεκόμενες ομάδες τα 5 τελευταία χρόνια. Οι τιμές που μπορεί να πάρει το συγκεκριμένο χαρακτηριστικό είναι οι εξής: clear_more_home_wins όταν το πλήθος των οι νικηφόρων αγώνων που έχει σημειώσει η γηπεδούχος ομάδα ξεπερνά σε ποσοστό το 60% των αγώνων μεταξύ των δύο ομάδων τα τελευταία 5 χρόνια. Σημειώστε ότι στην πενταετία αυτή ο αριθμός των αγώνων ανάμεσα σε δυο ομάδες δεν είναι αναγκαστικά πέντε, αφού κάποια ομάδα μπορεί να μην συμμετείχε και τα πέντε αυτά χρόνια στην πρώτη κατηγορία. clear_more_away_wins όταν το πλήθος των νικηφόρων αγώνων που έχει σημειώσει η φιλοξενούμενη ομάδα ξεπερνά σε ποσοστό το 60% των αγώνων μεταξύ των δύο ομάδων τα τελευταία 5 χρόνια. -74-

85 clear_more_draws όταν το πλήθος των ισοπαλιών ανάμεσα στις δύο ομάδες τα τελευταία 5 χρόνια ξεπερνά σε ποσοστό το 60% των αγώνων μεταξύ των δύο αυτών ομάδων μέσα στην πενταετία. more_home_wins όταν οι νίκες της γηπεδούχου τα τελευταία πέντε χρόνια είναι περισσότερες και από τις νίκες της φιλοξενούμενης και από τις ισοπαλίες, χωρίς όμως να ξεπερνά το παραπάνω 60%. more_away_wins αντίστοιχα με το more_home_wins όταν δηλαδή οι νίκες της φιλοξενούμενης ομάδας ξεπερνούν σε πλήθος τόσο τις νίκες της γηπεδούχου, όσο και τις ισοπαλίες χωρίς πάλι να ξεπερνά σε ποσοστό το 60%. more_draws όταν οι ισοπαλίες στους μεταξύ των δυο ομάδων αγώνες ξεπερνούν σε πλήθος τόσο τις νίκες της γηπεδούχου ομάδας, όσο και αυτές της φιλοξενούμενης χωρίς και πάλι να ξεπερνά σε ποσοστό το 60%. mixed_no_home_win όταν κανένα από τα τρία πιθανά αποτελέσματα δεν ξεχωρίζει σαν πιο συχνό, και κάποιο ξεχωρίζει σαν πιο σπάνιο. Στη συγκεκριμένη περίπτωση το χαρακτηριστικό παίρνει την τιμή mixed_no_home_win όταν οι νίκες τις γηπεδούχου είναι λιγότερες τόσο από τις ισοπαλίες όσο και από τις νίκες της φιλοξενούμενης. Ταυτόχρονα οι ισοπαλίες ισούνται σε πλήθος με τις νίκες της φιλοξενούμενης. mixed_no_away_win αντίστοιχα με το mixed_no_home_win, όταν δηλαδή οι νίκες της γηπεδούχου ισούνται με τις ισοπαλίες, ενώ οι νίκες της φιλοξενούμενης είναι λιγότερες τόσο από αυτές της γηπεδούχου όσο και από τις ισοπαλίες. mixed_no_draw αντίστοιχα με τα παραπάνω, όταν δηλαδή οι νίκες της γηπεδούχου ισούνται με αυτές της φιλοξενούμενης, ενώ οι ισοπαλίες είναι λιγότερες σε πλήθος και από τις δύο. mixed_total όταν δεν συμβαίνει καμία από τις παραπάνω περιπτώσεις, όταν δηλαδή το πλήθος και των τριών αποτελεσμάτων είναι το ίδιο. -75-

86 14. past_games_goal_diff Είναι τύπου double και πρόκειται για έναν δεύτερο τρόπο αναπαράστασης της προϊστορίας των δύο ομάδων. Η τιμή της μεταβλητής ισούται με τη διαφορά του συνόλου των γκολ πού έχει σκοράρει η γηπεδούχος ομάδα από αυτό της φιλοξενούμενης ομάδας, στους μεταξύ τους αγώνες την τελευταία πενταετία. Θα χρησιμοποιηθεί πειραματικά για να εξεταστεί εάν και κατά πόσο ένας double τρόπος αναπαράστασης θα είναι πιο αποδοτικός από έναν enum. 15. result Είναι χαρακτηριστικό τύπου ernum που αναπαριστά το αποτέλεσμα ενός αγώνα. Πρόκειται για την εξαρτημένη μεταβλητή του προβλήματος, την τιμή της οποίας ζητάμε στην συνέχεια από το σύστημα να προγνώσει. Οι τιμές που αυτή μπορεί να πάρει είναι οι εξής: home_wins Σε περίπτωση νίκης της γηπεδούχου ομάδας. home_loses Σε περίπτωση νίκης της φιλοξενούμενης ομάδας. draw Σε περίπτωση ισοπαλίας. 16. new_result Πρόκειται για χαρακτηριστικό τύπου enum που και πάλι αναπαριστά το αποτέλεσμα ενός αγώνα. Αυτή τη φορά όμως οι τιμές που μπορεί να πάρει είναι δύο: home_wins Όταν έχουμε νίκη της γηπεδούχου ομάδας. home_does_not_win Όταν δεν έχουμε νίκη της γηπεδούχου ομάδας. Όταν έχουμε δηλαδή είτε νίκη της φιλοξενούμενης είτε ισοπαλία. Η μεταβλητή new_result αποτελεί εναλλακτική εξαρτημένη μεταβλητή στην θέση της result, και χρησιμοποιήθηκε για πειραματικούς σκοπούς, πάνω στο πόσο θα βελτιωνόταν η απόδοση του συστήματος όταν οι πιθανές τιμές της εξαρτημένης μεταβλητής μειωνόντουσαν από τρεις σε δύο. -76-

87 Εικόνα 4.3 (δ) Ο πίνακας main_prediction Ο πίνακας team Πρόκειται για τον πίνακα της βάσης δεδομένων όπου αποθηκεύονται τα ονόματα των ομάδων που συμμετέχουν στην Premier League την εξεταζόμενη χρονιά. Αποτελείται από ένα και μόνο χαρακτηριστικό: 1. team_name (primary key) είναι τύπου varchar και αναπαριστά το όνομα μιας ομάδας. Εικόνα 4.4 Ο πίνακας team Ο πίνακας dates Είναι ο πίνακας όπου αποθηκεύονται οι ημερομηνίες που έχουν διεξαχθεί οι αγώνες. Αποτελείται από ένα και μοναδικό χαρακτηριστικό: 1. match_date (primary key) Είναι τύπου date και υλοποιεί την ημερομηνία διεξαγωγής κάποιου αγώνα. -77-

88 Εικόνα 4.5 Ο πίνακας dates Η δημιουργία και λειτουργία αυτού του πίνακα είναι καθαρά χρηστική, αφού βοηθάει στην εύρεση ενός αγώνα στην βάση δεδομένων.aυτό θα χρειαστεί για την ανανέωση της βάσης όπως θα αναλυθεί παρακάτω Οι πίνακες της προϊστορίας Πρόκειται για τους πίνακες όπου αποθηκεύονται τα αποτελέσματα των αγώνων της Premier League για την πενταετία Πιο συγκεκριμένα πρόκειται για τους πίνακες: match_result_01-02 match_result_02-03 match_result_03-04 match_result_04-05 match_result_05-06 Η δομή τους είναι όμοια με αυτή του πίνακα match_result. Αναλυτικά έχουν τα παρακάτω χαρακτηριστικά: 1. home_team ( σύνθετο κλειδί ) Είναι τύπου varchar και αναπαριστά το όνομα της γηπεδούχου ομάδας. 2. away_team ( σύνθετο κλειδί ) Είναι τύπου varchar και αναπαριστά το όνομα της φιλοξενούμενης ομάδας. 3. match_date ( σύνθετο κλειδί ) Είναι τύπου date και αναπαριστά την ημερομηνία που έγινε ο αγώνας. -78-

89 4. home_team_goals Είναι τύπου int ( θετικός ) και αναπαριστά το πλήθος των τερμάτων που σημείωσε η γηπεδούχος ομάδα στον αγώνα. 5. away_team_goals Είναι τύπου int ( θετικός ) και αναπαριστά το πλήθος των τερμάτων που σημείωσε η φιλοξενούμενη ομάδα στον αγώνα. Εικόνα 4.6 Ο πίνακας match_result_01-02 Εξετάζοντας τους αγώνες αυτών των πινάκων η εφαρμογή δίνει τιμή στην στήλη past_games ενός νέου αγώνα στην βάση δεδομένων Άλλοι πίνακες Ακόμα υπάρχουν οι πίνακες prediction0405 και prediction0506 που προς το παρόν δεν χρησιμοποιούνται. Έχουν δομή όμοια με τον πίνακα main_prediction, και στόχο έχουν την αύξηση του συνόλου εκπαίδευσης. Αυτό θα επιτευχθεί συμπεριλαμβάνοντας στο σύνολο εκπαίδευσης και του αγώνες που έγιναν την διετία ,αυξάνοντάς το κατά 760 αγώνες. Τέλος, κατά την διάρκεια λειτουργίας του συστήματος δημιουργείται ένας μεγάλος αριθμός από προσωρινούς πίνακες. Ο ρόλος τους είναι καθαρά διαδικαστικός και χρησιμεύουν σαν προσωρινό μέσο αποθήκευσης κατά την επεξεργασία και μεταλλαγή των δεδομένων. Έπειτα από την χρησιμοποίησή τους καταστρέφονται. -79-

90 4.4 Τεχνική ανάλυση κώδικα Για την υλοποίηση της εφαρμογής σε επίπεδο κώδικα υλοποιηθήκαν τέσσερεις κλάσεις, που υπάρχουν στα ομώνυμα.java αρχεία. Ο κώδικας υλοποιήθηκε στην γλώσσα Java με την αποκλειστική χρησιμοποίηση του εργαλείου ανοιχτού κώδικα NetBeans 5.5. Στην συνέχεια αυτής της ενότητας θα παρουσιαστούν αναλυτικά οι κλάσεις της εφαρμογής, τα πιο σημαντικά χαρακτηριστικά τους και συναρτήσεις τους καθώς και πως όλα αυτά αλληλεπιδρούν για μπορέσει να λειτουργήσει η εφαρμογή. Πρέπει να σημειωθεί ότι ο κώδικας δεν ακολουθεί ένα καθαρά αντικειμενοστραφές μοντέλο, καθότι η κύρια αναπαράσταση του προβλήματος έγινε κατά την σχεδίαση της βάσης δεδομένων. Τα συστατικά δηλαδή του προβλήματος αναπαριστούνται με πίνακες της βάσης και όχι με κλάσεις. Οι κλάσεις έχουν μια πιο τεχνική και διαδικαστική λειτουργία Η κλάση mainwin Κληρονομεί από τη βασική κλάση JFrame του πακέτου swing της java. Υλοποιεί το κύριο παράθυρο της εφαρμογής, όπου βρίσκονται στην πλειοψηφία τους οι λειτουργίες της εφαρμογής. Οι μεταβλητές της κλάσης mainwin Οι πιο σημαντικές μεταβλητές της κλάσης είναι οι παρακάτω: private javax.swing.jtabbedpane jtabbedpane1 Υλοποιεί έναν υποδοχέα συστατικών που έχει την δυνατότητα να χωριστεί σε διαφορετικές καρτέλες. Αποτελείται από τις παρακάτω τρεις καρτέλες: 1. private javax.swing.jpanel jpanel2 Υλοποιεί την πρώτη καρτέλα - υποδοχέα συστατικών του jtabbedpane1. Οι παρακάτω μεταβλητές υλοποιούν συστατικά που βρίσκονται πάνω στον συγκεκριμένο υποδοχέα: private javax.swing.jbutton jbutton1 Υλοποιεί ένα κουμπί με τίτλο Add. Η λειτουργία του αναλύεται στην αντίστοιχη συνάρτηση που καλείται όταν πατηθεί το κουμπί. -80-

91 public javax.swing.jbutton jbutton4 Υλοποιεί ένα κουμπί με τίτλο Update. Η λειτουργία του επεξηγείται και αυτή στην συνέχεια της ενότητας. public javax.swing.jcombobox jcombobox1 Υλοποιεί μια αναπτυσσόμενη λίστα ( drop-down list ) όπου ο χρήστης επιλέγει μία εκ των είκοσι ομάδων της Premier League. public javax.swing.jcombobox jcombobox2 Όμοια με παραπάνω, υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει μία εκ των είκοσι ομάδων της Premier League. public javax.swing.jcombobox jcombobox7 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει το πλήθος των τερμάτων που έχει σκοράρει η γηπεδούχος ομάδα. Παίρνει τιμές στο διάστημα [0,9]. public javax.swing.jcombobox jcombobox8 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει το πλήθος των τερμάτων που έχει σκοράρει η φιλοξενούμενη ομάδα. Και πάλι παίρνει τιμές στο διάστημα [0,9]. public javax.swing.jcombobox jcombobox9 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει την χρονιά που έγινε ο αγώνας. Παίρνει τιμές από το σύνολο [2004,2005,2006,2007]. public javax.swing.jcombobox jcombobox10 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει τον μήνα που έγινε ο αγώνας. public javax.swing.jcombobox jcombobox11 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει την μέρα που έγινε ο αγώνας. Παίρνει τιμές στο διάστημα [1,31]. Πάνω στην καρτέλα jpanel2 υπάρχει ένας μεγάλος αριθμός από ετικέτες τύπου jlabel που περιέχουν πληροφοριακά κείμενα. 2. private javax.swing.jpanel jpanel3 Yλοποιεί την δεύτερη καρτέλα - υποδοχέα συστατικών του jtabbedpane

92 Οι παρακάτω μεταβλητές υλοποιούν συστατικά που βρίσκονται πάνω στον συγκεκριμένο υποδοχέα: private javax.swing.jbutton jbutton2 Yλοποιεί ένα κουμπί με τίτλο Predict. Για την λειτουργία του δείτε την αντίστοιχη συνάρτηση στην συνέχεια της ενότητας. public javax.swing.jcombobox jcombobox3 Yλοποιεί μία αναπτυσσόμενη λίστα όπου γίνεται η επιλογή από το χρήστη της γηπεδούχου ομάδας. public javax.swing.jcombobox jcombobox4 Yλοποιεί μία αναπτυσσόμενη λίστα όπου γίνεται η επιλογή από το χρήστη της φιλοξενούμενης ομάδας. private javax.swing.jcombobox jcombobox6 Yλοποιεί μία αναπτυσσόμενη λίστα όπου γίνεται η επιλογή από το χρήστη ενός εκ των πέντε classifiers που διατίθενται για την πρόγνωση του αποτελέσματος ενός αγώνα. public javax.swing.jcombobox jcombobox12 Yλοποιεί μία αναπτυσσόμενη λίστα όπου γίνεται η επιλογή από το χρήστη της χρονιάς που θα γίνει ο αγώνας. Παίρνει τιμές του σύνολου [2004,2005,2006,2007]. public javax.swing.jcombobox jcombobox13 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει τον μήνα που θα γίνει ο αγώνας. public javax.swing.jcombobox jcombobox14 Υλοποιεί μια αναπτυσσόμενη λίστα όπου ο χρήστης επιλέγει την μέρα που θα γίνει ο αγώνας. Παίρνει τιμές στο διάστημα [1,31]. private javax.swing.buttongroup buttongroup1 Πρόκειται για την ομάδα κουμπιών τύπου radio, όπου ο χρήστης επιλέγει εάν η εξαρτημένη μεταβλητή που αναπαριστά το αποτέλεσμα του αγώνα θα έχει δύο ή τρεις πιθανές τιμές. private javax.swing.buttongroup buttongroup2 Πρόκειται για την ομάδα κουμπιών τύπου radio, όπου ο χρήστης επιλέγει εάν για την πρόβλεψη του αποτελέσματος θα χρησιμοποιηθούν αυτούσιες οι -82-

93 μεταβλητές ή αν την θέση τους θα πάρουν οι διαφορές τους ( όπου παρέχεται ). private javax.swing.jradiobutton jradiobutton1 Έχει την ετικέτα «2- Valued Result» και ανήκει στο buttongroup1. private javax.swing.jradiobutton jradiobutton2 Έχει την ετικέτα «3- Valued Result» και ανήκει στο buttongroup1. private javax.swing.jradiobutton jradiobutton3_use_diffs Έχει την ετικέτα «Use Differences» και ανήκει στο buttongroup2. private javax.swing.jradiobutton jradiobutton4_nodiffs Έχει την ετικέτα «Νο Differences» και ανήκει στο buttongroup2. private javax.swing.jcheckbox jcheckbox1_rating Έχει την ετικέτα «ratings», και καθορίζει το εάν ή όχι θα χρησιμοποιηθούν οι στήλες τύπου rating κατά την εκπαίδευση του classifier. private javax.swing.jcheckbox jcheckbox2_form Έχει την ετικέτα «form», και καθορίζει το εάν ή όχι θα χρησιμοποιηθούν οι στήλες τύπου form κατά την εκπαίδευση του classifier. private javax.swing.jcheckbox jcheckbox3_form_venue Έχει την ετικέτα «form (venue)», και καθορίζει το εάν ή όχι θα χρησιμοποιηθούν οι στήλες τύπου form venue κατά την εκπαίδευση του classifier. private javax.swing.jcheckbox jcheckbox4_past_games Έχει την ετικέτα «past games», και καθορίζει το εάν ή όχι θα χρησιμοποιηθεί η στήλη past_games κατά την εκπαίδευση του classifier. Πάνω στην καρτέλα jpanel3 υπάρχει ένας μεγάλος αριθμός από ετικέτες τύπου jlabel που περιέχουν πληροφοριακά κείμενα. 3. private javax.swing.jpanel jpanel4 Υλοποιεί την τρίτη καρτέλα-υποδοχέα συστατικών του jtabbedpane1. Οι παρακάτω μεταβλητές υλοποιούν τα κύρια συστατικά που βρίσκονται πάνω στον συγκεκριμένο υποδοχέα: -83-

94 private javax.swing.jbutton jbutton3 Υλοποιεί ένα κουμπί, με τίτλο.«οκ». Η λειτουργία του επεξηγείται στην συνέχεια της ενότητας. public javax.swing.jcombobox jcombobox5 Υλοποιεί μία αναπτυσσόμενη λίστα όπου γίνεται η επιλογή από το χρήστη μία εκ των είκοσι ομάδων της Premier League private javax.swing.jscrollpane jscrollpane1 Υλοποιεί έναν υποδοχέα συστατικών που έχει την δυνατότητα ολίσθησης. private javax.swing.jtable jtable1 Υλοποιεί έναν πίνακα παρουσίασης δεδομένων. Βρίσκεται πάνω στον υποδοχέα ολίσθησης jscrollpane1. Πάνω στην καρτέλα jpanel4 υπάρχει ένας μεγάλος αριθμός από ετικέτες τύπου jlabelπου περιέχουν πληροφοριακά κείμενα. Οι συναρτήσεις της κλάσης mainwin Παρακάτω καταγράφονται οι σημαντικότερες συναρτήσεις της κλάσης mainwin. public void fill_in_combobox1(arraylist l){} Παίρνει σαν όρισμα μια Array List και περνάει τα περιεχόμενα της σαν τιμές της αναπτυσσόμενης λίστας ComboBox1. Τα περιεχόμενα της Array List δεν είναι άλλα από τα ονόματα των ομάδων της Premier League. public void fill_in_combobox2(arraylist l){} Ομοίως με τα παραπάνω ορίζονται τα ονόματα των ομάδων της Premier League σαν τιμές της αναπτυσσόμενης λίστας ComboBox2. public void fill_in_combobox3(arraylist l){} Και πάλι τα ονόματα των ομάδων της Premier League ορίζονται σαν τιμές της αναπτυσσόμενης λίστας ComboBox3. public void fill_in_combobox4(arraylist l){} Τα ονόματα των ομάδων της Premier League σαν τιμές της αναπτυσσόμενης λίστας ComboBox4. public void fill_in_combobox5(arraylist l){} Ομοίως με τα παραπάνω ορίζονται τα ονόματα των ομάδων της Premier League σαν τιμές της αναπτυσσόμενης λίστας ComboBox

95 private void jbutton1actionperformed(java.awt.event.actionevent evt) {} Δημιουργεί ένα αντικείμενο τύπου Add_Connfirmation, και καθιστά ενεργό το αντίστοιχο παράθυρο. Στη συνέχεια θέτει τιμές στις μεταβλητές του καινούργιου αντικειμένου-παραθύρου, αντιστοιχώντας τους τις τιμές που έχει δώσει ο χρήστης στις μεταβλητές jcombobox1, jcombobox2, jcombobox7, jcombobox8, jcombobox9, jcombobox10, jcombobox11 που είναι και οι μεταβλητές που υλοποιούν τον αγώνα που θα προστεθεί στην βάση. private void jbutton2actionperformed(java.awt.event.actionevent evt) {} Όταν πατηθεί το κουμπί με ετικέτα Predict υλοποιούνται οι απαραίτητες διεργασίες για την πρόγνωση του αποτελέσματος ενός αγώνα, σύμφωνα με τον αλγόριθμο PREDICT ALGORITHM που ακολουθεί. PREDICT ALGORITHM Βήμα 1ο: Δημιουργία ενός πίνακα με όνομα instances και δομή ίδια με αυτήν του πίνακα main_prediction. Ο νέος πίνακας θα αποτελεί τα δεδομένα ελέγχου ( test data ) του classifier. Βήμα 2ο: Αποθήκευση του αγώνα που ο χρήστης ζήτησε να προγνωστεί το αποτέλεσμα και που τα στοιχεία του έδωσε στην αντίστοιχη καρτέλα, στον πίνακα instances. Βήμα 3ο: Ενημέρωση των στηλών home_team_form, away_team_form, form_diff, home_team_form_at_home, away_team_form_at_away, venue_diff, past_games σύμφωνα με τους αλγόριθμους RATING ALGORITHM, FORM ALGORITHM, VENUE ALGORITHM, PAST GAMES ALGORITHM, και PAST GAMES AL- GORITHM GOAL DIFF. Βήμα 4ο: Δημιουργία του classifier που έχει επιλέξει ο χρήστης. Βήμα 5ο: Εκπαίδευση του classifier με δεδομένα εκπαίδευσης ( training data ) αυτά του πίνακα main_prediction μέχρι την ημερομηνία διεξαγωγής του αγώνα. Βήμα 6ο: Υπολογισμός της τιμής της εξαρτημένης μεταβλητής από τον classifier. Βήμα 7ο: Καταστροφή του πίνακα instances. Βήμα 8ο: Εμφάνιση των προγνώσεων του classifier στα αντίστοιχα πεδία της καρτέλας Generate Prediction. -85-

96 Σημείωση: Οι αλγόριθμοι VENUE ALGORITHM, FORM ALGORITHM, RAT- ING ALGORITHM, PAST GAMES ALGORITHM και PAST GAMES ALGO- RITHM GOAL DIFF είναι οι αλγόριθμοι σύμφωνα με τους οποίους ανανεώνονται οι τιμές των αντίστοιχων στηλών, και παρουσιάζονται αναλυτικά παρακάτω. private void jbutton3actionperformed(java.awt.event.actionevent evt) {} Όταν πατηθεί το συγκεκριμένο κουμπί με ετικέτα ΟΚ υλοποιούνται οι παρακάτω διεργασίες, που αφορούν την προεπισκόπηση αποτελεσμάτων και περαιτέρω στοιχείων για την επιλεγμένη ομάδα. 1. Ανακτώνται από την βάση δεδομένων οι πληροφορίες home team, away team, result, match date που αφορούν τους αγώνες της ομάδας που επέλεξε ο χρήστης. 2. Εμφανίζονται οι πληροφορίες στον πίνακα jtable1. 3. Μετασχηματίζονται οι πληροφορίες για να προκύψουν οι παρακάτω νέες: Games played, Wins, Defeats, Draws, Win Ratio, Goals Scored per Game, Goals Conceded per Game. 4. Εμφανίζονται οι νέες πληροφορίες στις αντίστοιχες ετικέτες. private void jbutton4actionperformed(java.awt.event.actionevent evt) {} Όταν πατηθεί το κουμπί με ετικέτα Update υλοποιείται η ανανέωση των τιμών όλων των στηλών των καταχωρίσεων του πίνακα main_prediction. Η συγκεκριμένη επιλογή υπάρχει γιατί σε περίπτωση που οι αγώνες δεν καταχωρήθηκαν με χρονολογική σειρά τα δεδομένα θα είναι λανθασμένα. Για να υλοποιηθεί η συγκεκριμένη διεργασία ακολουθείται ο αλγόριθμος UPDATE ALGORITHM που παρουσιάζεται παρακάτω. UPDATE ALGORITHM Βήμα 1ο: Για όλους τους δυνατούς συνδυασμούς ομάδας και ημερομηνίας που υπάρχουν αποθηκευμένες στη βάση δεδομένων επανέλαβε τα παρακάτω βήματα. -86-

97 Βήμα 2ο: Εάν υπάρχει αγώνας αποθηκευμένος στη βάση δεδομένων με χαρακτηριστικά αυτά που έδωσε το 1 ο Βήμα, προχώρησε στο 3 ο Βήμα αλλιώς επέστρεψε στο 1 ο Βήμα. Βήμα 3ο: Ανανέωσε τις στήλες home_team_rating, away_team_rating, rating_diff της εγγραφής που έδωσε το 1 ο Βήμα σύμφωνα με τον αλγόριθμο RATING ALGO- RITHM. Βήμα 4ο: Ανανέωσε τις στήλες home_team_form, away_team_form, form_diff της εγγραφής που έδωσε το 11 ο Βήμα σύμφωνα με τον αλγόριθμο FORM ALGO- RITHM. Βήμα 5ο: Ανανέωσε τις στήλες home_team_form_at_home, away_team_form_at_ away, venue_diff της εγγραφής που έδωσε το 1 ο Βήμα σύμφωνα με τον αλγόριθμο VENUE ALGORITHM. Βήμα 6ο: Επέστρεψε στο 1 ο Βήμα Η κλάση Add_Confirmation Κληρονομεί από τη βασική κλάση JFrame του swing πακέτου της java. Πρόκειται για το παράθυρο όπου ζητείται από το χρήστη να επικυρώσει ή όχι την εισαγωγή ενός αγώνα στη βάση δεδομένων. Οι μεταβλητές της κλάσης Add_Confirmation Οι σημαντικότερες μεταβλητές της κλάσης, που υλοποιούν συστατικά πάνω στο frame είναι οι παρακάτω: private javax.swing.jpanel jpanel1 Υλοποιεί έναν υποδοχέα πάνω στον οποίο βρίσκονται όλα τα υπόλοιπα συστατικά. public javax.swing.jbutton jbutton1 Υλοποιεί ένα κουμπί με ετικέτα «ΟΚ». Πρόκειται για το κουμπί επιβεβαίωσης της εισαγωγής. Ο τρόπος λειτουργίας του επεξηγείται στην αντίστοιχη συνάρτηση της κλάσης. private javax.swing.jbutton jbutton2 Υλοποιεί ένα κουμπί με ετικέτα Cancel, που ακυρώνει την εισαγωγή του αγώνα στην βάση δεδομένων. -87-

98 Ακόμα, πάνω στην καρτέλα jpanel1 υπάρχει ένας μεγάλος αριθμός από ετικέτες τύπου jlabel που περιέχουν πληροφοριακά κείμενα. Οι συναρτήσεις της κλάσης Add_Confirmation Οι σημαντικότερες συναρτήσεις της κλάσης Add_Confirmation είναι οι παρακάτω. private void jbutton1actionperformed (java.awt.event.actionevent evt) {} Mε το πάτημα του συγκεκριμένου κουμπιού OK υλοποιείται η εισαγωγή του νέου αγώνα στην βάση δεδομένων σύμφωνα με τον αλγόριθμο ADD NEW GAME ALGORITHM. ADD NEW GAME ALGORITHM Βήμα 1ο: Εισαγωγή του αγώνα που έδωσε ο χρήστης στην προηγούμενη καρτέλα στον πίνακα match_result της βάσης. Βήμα 2ο: Εισαγωγή του αγώνα στον πίνακα main_prediction της βάσης. Βήμα 3ο: Εισαγωγή της ημερομηνίας στον πίνακα dates της βάσης. Βήμα 4ο: Ενημέρωση των στηλών home_team_rating, away_team_rating, rating_diff, home_team_form, away_team_form, form_diff, home_team_form_at_home, away_team_form_at_away, venue_diff, past_games, new_result, result του πίνακα main_prediction σύμφωνα με τους αλγόριθμους που αναλύονται παρακάτω. Η στήλες home_team_rating, away_team_rating, rating_diff ενημερώνονται σύμφωνα με τον παρακάτω αλγόριθμο. RATING ALGORITHM Βήμα 1: Ελέγχεται στον πίνακα match_result εάν η γηπεδούχους ( αντίστοιχα η φιλοξενούμενη ) ομάδα έχει δώσει αγώνες με ημερομηνία μικρότερη από αυτήν του αγώνα που μόλις εισήχθη στην βάση. Εάν δεν υπάρχουν αγώνες ο αλγόριθμος τερματίζεται. -88-

99 Βήμα 2: Γίνεται καταμέτρηση των βαθμών που έχει αποσπάσει η γηπεδούχους ( φιλοξενούμενη ) ομάδα στους αγώνες που έχει δώσει. Βήμα 3: Η μεταβλητή home_team_rating ( away_team_rating ) της καινούργιας εγγραφής παίρνει σαν τιμή τον λόγο των βαθμών προς το πλήθος των αγώνων που έχει δώσει η ομάδα. Για τις στήλες home_team_form και away_team_form ακολουθείται ο παρακάτω αλγόριθμος: FORM ALGORITHM Βήμα 1:Ανακτώνται από τον πίνακα match_result τα τρία τελευταία παιχνίδια που έχει δώσει η γηπεδούχος ( φιλοξενούμενη ) ομάδα, και αποθηκεύονται σε έναν προσωρινό πίνακα με δομή ίδια με αυτή του πίνακα match_result. Βήμα 2: Γίνεται καταμέτρηση των βαθμών που έχει αποσπάσει η ομάδα από τον προσωρινό πίνακα ( 3 βαθμοί για την νίκη, 1 για την ισοπαλία ). Βήμα 3: Η στήλη home_team_form (away_team_form) παίρνει σαν τιμή το πλήθος των βαθμών που καταμετρήθηκε στο βήμα 3. Βήμα 4: Καταστρέφεται ο προσωρινός πίνακας. Για τις στήλες home_team_form_at_home και away_team_form_at_away ακολουθείται ο παρακάτω αλγόριθμος: VENUE ALGORITHM Βήμα 1: Ανακτώνται από τον πίνακα match_result τα πέντε τελευταία παιχνίδια που έχει δώσει η γηπεδούχος ( φιλοξενούμενη ) ομάδα στην έδρα της ( εκτός έδρας αντίστοιχα) και αποθηκεύονται σε έναν προσωρινό πίνακα με δομή ίδια με αυτή του match_result. Βήμα 2: Γίνεται καταμέτρηση των βαθμών που έχει αποσπάσει η ομάδα από τον προσωρινό πίνακα ( 3 βαθμοί για την νίκη, 1 για την ισοπαλία ). Βήμα 3: Η στήλη home_team_form_at_home ( και away_team_form_at_away αντίστοιχα )παίρνει σαν τιμή το πλήθος των βαθμών που καταμετρήθηκε στο βήμα

100 Βήμα 4: Καταστρέφεται ο προσωρινός πίνακας. Για την στήλη past_games ακολουθείται ο παρακάτω αλγόριθμος: PAST GAMES ALGORITHM Βήμα 1: Ανακτώνται από τους πίνακες match_result_01-02, match_result_02-03, match_result_03-04, match_result_04-05 και match_result_05-06 οι αγώνες που έχουν ίδια γηπεδούχο και ίδια φιλοξενούμενη ομάδα με αυτές του αγώνα που μόλις εισήχθη στην βάση. Βήμα 2: Όλοι οι παραπάνω αγώνες εισάγονται σε έναν προσωρινό πίνακα. Βήμα 3: Για κάθε αγώνα στον προσωρινό πίνακα συγκρίνονται τα τέρματα της γηπεδούχου ομάδας με αυτά της φιλοξενούμενης. Βήμα 4: Εάν τα τέρμα της γηπεδούχου είναι περισσότερα από αυτά της φιλοξενούμενης ομάδας αυξάνεται μία μεταβλητή που μετράει τις νίκες της γηπεδούχου ομάδας. Αντίστοιχα εάν τα τέρματα της φιλοξενούμενης είναι περισσότερα από αυτά της γηπεδούχου αυξάνεται η μεταβλητή που μετράει τις νίκες της φιλοξενούμενης ομάδας. Τέλος εάν τα τέρματα της γηπεδούχου είναι ισάριθμα με αυτά της φιλοξενούμενης αυξάνεται η μεταβλητή που μετράει τις ισοπαλίες. Βήμα 5: Γίνεται σύγκριση στις τιμές των μεταβλητών που μετράνε τις νίκες της γηπεδούχου, τις νίκες της φιλοξενούμενης, και τις ισοπαλίες, και ανάλογα με το αποτέλεσμα της σύγκρισης η στήλη past_games του νέου αγώνα παίρνει μία τιμή από τις : clear_more_home_wins, clear_more_away_wins, clear_more_draws, more_home_wins, more_away_wins, more_draws, mixed_no_home_win, mixed_no_away_win, mixed_no_draw και mixed_total. Βήμα 6: Καταστρέφεται ο προσωρινός πίνακας. Για την στήλη past_games_goal_diff ακολουθείται ο παρακάτω αλγόριθμος: PAST GAMES ALGORITHM GOAL DIFF Βήμα 1: Ανακτώνται από τους πίνακες match_result_01-02, match_result_02-03, match_result_03-04, match_result_04-05 και match_result_05-06 οι αγώνες που έχουν ίδια γηπεδούχο και ίδια φιλοξενούμενη ομάδα με αυτές του αγώνα που μόλις εισήχθη στην βάση. -90-

101 Βήμα 2: Όλοι οι παραπάνω αγώνες εισάγονται σε έναν προσωρινό πίνακα. Βήμα 3: Για κάθε αγώνα στον προσωρινό πίνακα ανακτώνται τα τέρματα της γηπεδούχου ομάδας και προστίθενται σε μία προσωρινή μεταβλητή. Βήμα 4: Για κάθε αγώνα στον προσωρινό πίνακα ανακτώνται τα τέρματα της φιλοξενούμενης ομάδας και προστίθενται σε μία προσωρινή μεταβλητή. Βήμα 5: Η στήλη past_games_goal_diff του νέου αγώνα παίρνει σαν τιμή τη διαφορά των τερμάτων της γηπεδούχου ομάδας από αυτά της φιλοξενούμενης. Για την ενημέρωση των στηλών result και new_result ακολουθείται ο παρακάτω αλγόριθμος: RESULT ALGORITHM Βήμα 1: Συγκρίνονται στην νέα εγγραφή του πίνακα match_result τα τέρματα της γηπεδούχου ομάδας με αυτά της φιλοξενούμενης. Βήμα 2: Εάν τα τέρματα της γηπεδούχου είναι περισσότερα από αυτά της φιλοξενούμενης τότε οι στήλες result και new_result της νέας εγγραφής του πίνακα main_prediction παίρνουν την τιμή home_wins. Εάν τα τέρματα της γηπεδούχου είναι λιγότερα από αυτά της φιλοξενούμενης τότε η στήλη result παίρνει την τιμή home_loses και η στήλη new_result παίρνει την τιμή home_does_not_win. Τέλος εάν τα τέρματα της γηπεδούχου ομάδας είναι ισάριθμα με αυτά της φιλοξενούμενης, η στήλη result παίρνει την τιμή draw και η στήλη new_result παίρνει την τιμή home_does_not_win. private void jbutton1exit(java.awt.event.actionevent evt) {} Καθιστά το frame μη ενεργό. private void CancelExit(java.awt.event.ActionEvent evt) {} Καθιστά το frame μη ενεργό. public Add_Confirmation() {} Κατασκευαστής της κλάσης Η κλάση Queries Πρόκειται για μία κλάση που λειτουργεί σαν συγκεντρικό της πλειοψηφείας των ερωτημάτων sql που χρησιμοποιούνται για τη λειτουργία της εφαρμογής. Δεν έχει -91-

102 καμία ιδιωτική ή δημόσια μεταβλητή, αλλά αποτελείται από ένα μεγάλο αριθμό συναρτήσεων που στόχος τους είναι η σύνθεση sql ερωτημάτων από δεδομένα που δίνει ο χρήστης. Δεδομένου ότι η λειτουργία όλων των συναρτήσεων της κλάσης είναι όμοια ( η σύνθεση και επιστροφή ενός string που αποτελεί ένα ερώτημα sql ) δεν σχολιάζεται ξεχωριστά, αλλά σχολιάζεται η λειτουργία του ερωτήματος sql που η κάθε μία συνθέτει και επιστρέφει. Οι συναρτήσεις της κλάσης Queries Οι συναρτήσεις της κλάσης Queries είναι οι παρακάτω: public String temp_rating_diff(){} Δημιουργεί έναν προσωρινό πίνακα με όνομα temp_rating_diff που χρησιμοποιείται κατά την καταμέτρηση της διαφοράς των rating δύο ομάδων. public String drop_temp_rating_diff(){} Καταστρέφει τον παραπάνω προσωρινό πίνακα. public String load_temp_rating_diff(string team, String date){} Παίρνει σαν ορίσματα το όνομα μιας ομάδας, και μία ημερομηνία και γεμίζει με δεδομένα τον πίνακα temp_rating_diff. public String rating_diff(string team, String date){} Παίρνει σαν ορίσματα το όνομα μιας ομάδας, και μία ημερομηνία και ανανεώνει το χαρακτηριστικό rating_diff του πίνακα main_prediction. public String temp_form_diff(){} Δημιουργεί έναν προσωρινό πίνακα με όνομα temp_form_diff που χρησιμοποιείται κατά την καταμέτρηση της διαφοράς της φόρμας δύο ομάδων. public String drop_temp_form_diff(){} Καταστρέφει τον παραπάνω πίνακα. -92-

103 public String load_temp_form_diff(string team, String date){} Παίρνει σαν ορίσματα το όνομα μιας ομάδας, και μία ημερομηνία και γεμίζει με δεδομένα τον πίνακα temp_form_diff. public String form _diff(string team, String date){} Παίρνει σαν ορίσματα το όνομα μιας ομάδας, και μία ημερομηνία και ανανεώνει το χαρακτηριστικό form _diff του πίνακα main_prediction. public String temp_venue_diff(){} Δημιουργεί έναν προσωρινό πίνακα με όνομα temp_venue_diff που χρησιμοποιείται κατά την καταμέτρηση της διαφοράς της φόρμας στα εντός παιχνίδια για την γηπεδούχο και στα εκτός για την φιλοξενούμενη. public String drop_temp_venue_diff(){} Καταστρέφει τον παραπάνω πίνακα. public String load_temp_venue_diff(string team, String date){} Παίρνει σαν ορίσματα το όνομα μιας ομάδας, και μία ημερομηνία και γεμίζει με δεδομένα τον πίνακα temp_venue_diff. public String venue_diff(string team, String date){} Παίρνει σαν ορίσματα το όνομα μιας ομάδας, και μία ημερομηνία και ανανεώνει το χαρακτηριστικό venue_diff του πίνακα main_prediction. public String execute_away_team_rating (ArrayList list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος που επιστρέφεται είναι η ανανέωση της στήλης away_team_rating του πίνακα main_prediction. Χρησιμοποιείται όταν χρειάζεται να ανανεώσουμε όλες τις εγγραφές της βάσης. -93-

104 public String execute_home_team_rating(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Παρόμοια με παραπάνω η λειτουργία του ερωτήματος που επιστρέφεται είναι η ανανέωση της στήλης home _team_rating του πίνακα main_prediction. Και πάλι χρησιμοποιείται όταν χρειάζεται να ανανεώσουμε όλες τις εγγραφές της βάσης. public String create_temp_table(){} Δημιουργεί ένα προσωρινό πίνακα που θα χρησιμοποιηθεί για την καταμέτρηση της φόρμας των ομάδων. public String drop_temp_table(){} Καταστρέφει τον παραπάνω προσωρινό πίνακα. public String execute_load_temp(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List,list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η καταχώρηση στον παραπάνω προσωρινό πίνακα, εκείνων των αγώνων ανάμεσα στους τελευταίους τρεις της φιλοξενούμενης ομάδας, όπου είτε είχε κερδίσει είτε είχε αποσπάσει ισοπαλία. public String execute_load_temp_home (ArrayList list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η καταχώρηση στον παραπάνω προσωρινό πίνακα, εκείνων των αγώνων ανάμεσα στους τελευταίους πέντε της φιλοξενούμενης ομάδας εντός έδρας, όπου είτε είχε κερδίσει είτε είχε αποσπάσει ισοπαλία. public String execute_load_temp_away(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι -94-

105 αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η καταχώρηση στον παραπάνω προσωρινό πίνακα, εκείνων των αγώνων ανάμεσα στους τελευταίους πέντε της φιλοξενούμενης ομάδας εκτός έδρας, όπου είτε είχε κερδίσει είτε είχε αποσπάσει ισοπαλία. public String execute_home_team_form(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής home_team_form του πίνακα main_prediction, καταμετρώντας από τον παραπάνω προσωρινό πίνακα του βαθμούς που απέσπασε η γηπεδούχος ομάδα στα τρία τελευταία παιχνίδια. public String execute_away_team_form(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής away_team_form του πίνακα main_prediction, καταμετρώντας από τον παραπάνω προσωρινό πίνακα του βαθμούς που απέσπασε η φιλοξενούμενη ομάδα στα τελευταία τρία παιχνίδια. Χρησιμοποιείται όταν θέλουμε να εξετάσουμε όλο τον πίνακα και να αλλάξουμε τις καταχωρήσεις που ικανοποιούν τους περιορισμούς των ορισμάτων. public String execute_home_team_form_at_home(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List, list1 και list2, όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής home_team_form_at_home του πίνακα main_prediction, καταμετρώντας από τον παραπάνω προσωρινό πίνακα του βαθμούς που απέσπασε η γηπεδούχος ομάδα στα πέντε τελευταία εντός έδρας παιχνίδια. Χρησιμοποιείται όταν θέλουμε να εξετάσουμε όλο τον πίνακα και να -95-

106 αλλάξουμε τις καταχωρήσεις που ικανοποιούν τους περιορισμούς των ορισμάτων. public String execute_away_team_form_at_away(arraylist list1,arraylist list2,int i, int j){} Παίρνει σαν ορίσματα δύο Array List list1 και list2 όπου είναι αποθηκευμένα τα ονόματα των ομάδων και οι ημερομηνίες των αγώνων αντίστοιχα, καθώς και δύο ακέραιους. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής away_team_form_at_away του πίνακα main_prediction, καταμετρώντας από τον παραπάνω προσωρινό πίνακα του βαθμούς που απέσπασε η φιλοξενούμενη ομάδα στα πέντε τελευταία εκτός έδρας παιχνίδια. Χρησιμοποιείται όταν θέλουμε να εξετάσουμε όλο τον πίνακα και να αλλάξουμε τις καταχωρήσεις που ικανοποιούν τους περιορισμούς των ορισμάτων. Public String execute_set_result_home_wins (ArrayList list1, ArrayList list2, ArrayList list3, int i, int j,int k){} Παίρνει σαν όρισμα τρεις Array List και τρεις ακέραιους αριθμούς. Σε κάθε μία από τις δύο πρώτες Array List είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, και στην τρίτη οι ημερομηνίες διεξαγωγής των αγώνων. Λειτουργία του ερωτήματος είναι η καταχώρηση της τιμής home_wins στην στήλη result του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να εξετάσουμε όλο τον πίνακα και να αλλάξουμε τις καταχωρήσεις που ικανοποιούν τους περιορισμούς των ορισμάτων. public String execute_set_result_home_loses (ArrayList list1,arraylist list2, ArrayList list3, int i, int j,int k){} Παίρνει σαν όρισμα τρεις Array List και τρεις ακέραιους αριθμούς. Σε κάθε μία από τις δύο πρώτες Array List είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, και στην τρίτη οι ημερομηνίες διεξαγωγής των αγώνων. Λειτουργία του ερωτήματος είναι η καταχώρηση της τιμής home_loses στην στήλη result του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να εξετάσουμε όλο τον πίνακα και να αλλάξουμε τις καταχωρήσεις που ικανοποιούν τους περιορισμούς των ορισμάτων. -96-

107 public String execute_set_result_draw(arraylist list1,arraylist list2,arraylist list3,int i, int j,int k){} Παίρνει σαν όρισμα τρεις Array List και τρεις ακέραιους αριθμούς. Σε κάθε μία από τις δύο πρώτες Array List είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, και στην Τρίτη οι ημερομηνίες διεξαγωγής των αγώνων. Λειτουργία του ερωτήματος είναι η καταχώρηση της τιμής draw στην στήλη result του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να εξετάσουμε όλο τον πίνακα και να αλλάξουμε τις καταχωρήσεις που ικανοποιούν τους περιορισμούς των ορισμάτων. public String away_team_rating (String team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η ανανέωση της στήλης away_team_rating του πίνακα main_prediction, στην καταχώρηση όπου συναντάται το όνομα της ομάδας και η ημερομηνία. public String home_team_rating(string team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η ανανέωση της στήλης home_team_rating του πίνακα main_prediction, στην καταχώρηση όπου συναντάται το όνομα της ομάδας και η ημερομηνία. public String set_result_home_wins(string home_team,string away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία αντίστοιχα. Λειτουργία του ερωτήματος είναι η καταχώρηση της τιμής home_wins στην στήλη result του πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα τρία ορίσματα. public String set_result_home_loses(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. -97-

108 Λειτουργία του ερωτήματος είναι η καταχώρηση της τιμής home_loses στην στήλη result του πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα τρία ορίσματα. public String set_result_draw(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία του ερωτήματος είναι η καταχώρηση της τιμής draw στην στήλη result του πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα τρία ορίσματα. public String load_temp(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι το γέμισμα του προσωρινού πίνακα, με εκείνους τους αγώνες από τους τρεις τελευταίους της ομάδας, που απέσπασε κάποιο βαθμό ( νίκες ή ισοπαλίες ). public String load_temp_home(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι το γέμισμα του προσωρινού πίνακα, με εκείνους τους αγώνες ανάμεσα στους πέντε τελευταίους αγώνες της γηπεδούχου στην έδρα της, που απέσπασε κάποιο βαθμό ( νίκες ή ισοπαλίες ). public String load_temp_away(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι το γέμισμα του προσωρινού πίνακα, με εκείνους τους αγώνες ανάμεσα στους πέντε τελευταίους της φιλοξενούμενης εκτός έδρας, που απέσπασε κάποιο βαθμό ( νίκες ή ισοπαλίες ). public String home_team_form(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής home_team_form του -98-

109 πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα δύο ορίσματα. Αυτό επιτυγχάνεται μετρώντας τους βαθμούς που απέσπασε η γηπεδούχους ομάδα στα τελευταία τρία παιχνίδια που έδωσε, από τον παραπάνω προσωρινό πίνακα. public String away_team_form(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής away_team_form του πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα δύο ορίσματα. Αυτό επιτυγχάνεται μετρώντας τους βαθμούς που απέσπασε η φιλοξενούμενη ομάδα στα τελευταία τρία παιχνίδια που έδωσε, από τον παραπάνω προσωρινό πίνακα. public String home_team_form_at_home(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής home_team_form_at_home του πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα δύο ορίσματα. Αυτό επιτυγχάνεται μετρώντας τους βαθμούς που απέσπασε η γηπεδούχους ομάδα στα τελευταία πέντε εντός έδρας παιχνίδια που έδωσε, από τον προσωρινό πίνακα. public String away_team_form_at_away(string team, String date){} Παίρνει σαν όρισμα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μια ημερομηνία. Λειτουργία του ερωτήματος είναι η ανανέωση της τιμής away_team_form_at_ away του πίνακα main_prediction, στην καταχώρηση που ικανοποιεί τα δύο ορίσματα. Αυτό επιτυγχάνεται μετρώντας τους βαθμούς που απέσπασε η φιλοξενούμενη ομάδα στα τελευταία πέντε εκτός έδρας παιχνίδια που έδωσε, από τον προσωρινό πίνακα. public String set_past_games_more_home_wins(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία -99-

110 ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής more_home_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_more_away_wins(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής more_away_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_more_draws(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής more_ draws στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_clear_more_home_wins(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_home_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_clear_more_away_wins(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_ away _wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων

111 public String set_past_games_clear_more_draws(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_draws στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_no_home_wins(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργίας της είναι η καταχώρηση της τιμής mixed_no_home_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_no_away_wins(string home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_away_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_no_draw(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_draw στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_total(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν τα ονόματα της γηπεδούχου και της φιλοξενούμενης ομάδας, καθώς και μία ημερομηνία. Λειτουργία της είναι η καταχώρηση της τιμής -101-

112 mixed_total στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_more_home_wins (ArrayList home_team, Array- List away_team, ArrayList date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής more_home_wins στην στήλη past_games του πίνακα main_prediction Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_more_away_wins(arraylist home_team, Array- List away_team, ArrayList date, int w, int c, ιnt e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής more_away_wins στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_more_draws(arraylist home_team, ArrayList away_team, ArrayList date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής more_draws στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_clear_more_home_wins (ArrayList home_team, ArrayList away_team, ArrayList date, int w, int c, ιnt e){} Παίρνει σαν -102-

113 ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_home_wins στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_clear_more_away_wins(arraylist home_team, ArrayList away_team, ArrayList date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_away_wins στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_clear_more_draws (ArrayList home_team, ArrayList away_team, ArrayList date,int w,int c,int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_draws στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_mixed_no_home_wins (ArrayList home_team, ArrayList away_team, ArrayList date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_home_wins στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα

114 public String set_past_games_mixed_no_away_wins (ArrayList home_team, ArrayList away_team, ArrayList date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_away_wins στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_mixed_no_draw (ArrayList home_team, Array- List away_team,arraylist date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_draw στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_mixed_total (ArrayList home_team, ArrayList away_team, ArrayList date, int w, int c, int e){} Παίρνει σαν ορίσματα τρεις Array Lists, και τρεις ακεραίους. Σε κάθε μία από τις δύο πρώτες είναι αποθηκευμένα τα ονόματα όλων των ομάδων της Premier League, ενώ στην Τρίτη είναι αποθηκεμένες οι ημερομηνίες των αγώνων. Λειτουργία της είναι η καταχώρηση της τιμής mixed_total στην στήλη past_games του πίνακα main_prediction. Χρησιμοποιείται όταν θέλουμε να ανανεώσουμε όλο τον πίνακα. public String set_past_games_more_home_wins2 (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της -104-

115 τιμής more_home_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_more_away_wins2 (String home_team,string away_team,string date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής more_away _wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_more_draws2 (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής more_ more_draws στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_clear_more_home_wins2 (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_home_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_clear_more_away_wins2(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_away_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων

116 public String set_past_games_clear_more_draws2 (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_draws στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_no_home_wins2(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_home_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_no_away_wins2 (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_away_wins στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_no_draw2 (String home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_draw στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String set_past_games_mixed_total2(string home_team,string away_team,string date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της -106-

117 τιμής mixed_no_draw στην στήλη past_games του πίνακα main_prediction, όπου ικανοποιούνται οι περιορισμοί των ορισμάτων. public String create_instances(){} Δημιουργεί έναν πίνακα με όνομα instances και χαρακτηριστικά όμοια με αυτά του πίνακα main_prediction. Σε αυτόν τον πίνακα θα αποθηκευτεί ο αγώνας που ο χρήστης θα ζητήσει να προγνωστεί το αποτέλεσμά του. public String drop_instances(){} Καταστρέφει τον πίνακα instances. public String insert_instance (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings, που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας και μία ημερομηνία αντίστοιχα. Λειτουργία του είναι η αποθήκευση αυτών των τιμών στις αντίστοιχες στήλες του πίνακα instances σαν μια νέα καταχώρηση. public String instances_home_team_form (String team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι η ανανέωση της στήλης home_team_form στον πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instances_away_team_form(string team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι η ανανέωση της στήλης away_team_form στον πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instances_home_team_form_at_home(string team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι η ανανέωση της στήλης home_team_form_at_home στον πίνακα instances, όπου ικανοποιούνται τα ορίσματα

118 public String instances_away_team_form_at_away (String team, String date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι η ανανέωση της στήλης away_team_form_at_away στον πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instances_away_team_rating(string team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι η ανανέωση της στήλης away_team_rating στον πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instances_home_team_rating(string team,string date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι η ανανέωση της στήλης home_team_rating στον πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_more_home_wins (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής more_home_wins στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_more_away_wins (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής more_away_wins στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_more_draws(string home_team,string away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν -108-

119 το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής more_draws στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_clear_more_home_wins (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_home_wins στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_clear_more_away_wins(string home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_away_wins στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_clear_more_draws (String home_team, String away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής clear_more_draws στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_mixed_no_home_wins (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_home_wins στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα

120 public String instance_set_past_games_mixed_no_away_wins (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_away_wins στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_mixed_no_draw (String home_team, String away_team, String date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_no_draw στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instance_set_past_games_mixed_total(string home_team,string away_team,string date){} Παίρνει σαν ορίσματα τρία strings που αναπαριστούν το όνομα της γηπεδούχου ομάδας, το όνομα της φιλοξενούμενης ομάδας, και μία ημερομηνία αντίστοιχα. Λειτουργία της είναι η καταχώρηση της τιμής mixed_total στην στήλη past_games του πίνακα instances, όπου ικανοποιούνται τα ορίσματα. public String instances_load_temp_venue_diff (String team, String date){} Παίρνει σαν ορίσματα δύο strings που αναπαριστούν το όνομα μιας ομάδας και μία ημερομηνία. Λειτουργία της είναι της εισαγωγής των ratings δύο ομάδων που εμπλέκονται σε έναν αγώνα, για τον μετέπειτα υπολογισμό της διαφοράς τους. public String temp_predictions(){} Δημιουργεί έναν προσωρινό πίνακα όπου αποθηκεύονται οι πιθανότητες που δίνουν οι classifiers για κάθε πιθανό αποτέλεσμα ( νίκη γηπεδούχου, ισοπαλία, ήττα γηπεδούχου ) σε κάποιον αγώνα

121 public String insert_temp_predictions (double home_wins, double away_wins, double draw, double error_rate){} Παίρνει σαν ορίσματα τέσσερεις double αριθμούς που αναπαριστούν την πιθανότητα να κερδίσει ο γηπεδούχος, την πιθανότητα να κερδίσει ο φιλοξενούμενος, την πιθανότητα ο αγώνας να λήξει ισόπαλος, καθώς και το ποσοστό λάθους του classifier που έχει επιλέξει ο χρήστης αντίστοιχα. public String drop_temp_predictions(){} Καταστρέφει τον προσωρινό πίνακα temp_predictions. public Queries() {} Κατασκευαστής της κλάσης Η κλάση operation Πρόκειται για την κλάση του συστήματος όπου υλοποιούνται απαραίτητες ενέργειες για την λειτουργία του συστήματος, όπως αρχικοποίηση αντικειμένων των κλάσεων mainwin και Add_Confirmation που αποτελούν και τα δύο παράθυρα της εφαρμογής. Οι μεταβλητές της κλάσης operation private mainwin t=new mainwin() Πρόκειται για το βασικό παράθυρο της εφαρμογής. private Add_Confirmation a=new Add_Confirmation() Πρόκειται για το παράθυρο επιβεβαίωσης κατά την εισαγωγή ενός αγώνα στην βάση δεδομένων. Συναρτήσεις της κλάσης operation public mainwin Get_mainwin(){} Επιστρέφει ένα αντικείμενο τύπου mainwin. public Add_Confirmation Get_Add_Confirmation(){} Επιστρέφει ένα αντικείμενο τύπου Add_Confirmation. public Operation() {} Ο κατασκευαστής της κλάσης

122 -112-

123 5 Η εφαρμογή στην πράξη Εισαγωγή Στο κεφάλαιο αυτό θα γίνει λεπτομερής παρουσίαση της εφαρμογής που υλοποιήθηκε στα πλαίσια της πτυχιακής εργασίας. Πιο συγκεκριμένα θα παρουσιαστούν οι λειτουργίες που η εφαρμογή προσφέρει στο χρήστη και πως αυτές υλοποιούνται. Η εφαρμογή αποτελείται από τις τρεις καρτέλες View Results-Statistics, Add New Match Result, και Generate Prediction, όπου υλοποιούνται αντίστοιχες λειτουργίες. 5.1 H καρτέλα Add New Match Result Εισαγωγή ενός αγώνα στην βάση δεδομένων Στην καρτέλα Add New Game Result o χρήστης έχει τη δυνατότητα να εισάγει έναν αγώνα στη βάση δεδομένων. Οι πληροφορίες για τον αγώνα εισάγονται μέσω αναπτυσσομένων λιστών και είναι οι παρακάτω: Γηπεδούχος ομάδα. Φιλοξενούμενη ομάδα. Έτος διεξαγωγής αγώνα. Μήνας διεξαγωγής αγώνα. Μέρα διεξαγωγής αγώνα. Τέρματα γηπεδούχου ομάδας. Τέρματα φιλοξενούμενης ομάδας. Στο παράδειγμα που βλέπουμε στην εικόνα 5.1 ο αγώνας που εισάγεται στην βάση δεδομένων είναι ο αγώνας Chelsea Man Utd που έλαβε χώρα στις και ήρθε ισόπαλος με αποτέλεσμα

124 Εικόνα 5.1 Εισαγωγή αγώνα στη βάση δεδομένων Αφού ο χρήστης πατήσει το κουμπί Add εμφανίζεται το παράθυρο επιβεβαίωσης όπου ζητείται από τον χρήστη να επιβεβαιώσει την εισαγωγή του αγώνα στη βάση δεδομένων. Εικόνα 5.2 Επιβεβαίωση εισαγωγής -114-

125 Εάν ο χρήστης πατήσει το κουμπί Cancel ή κλείσει το παράθυρο επιβεβαίωσης, η εισαγωγή ακυρώνεται. Εάν ο χρήστης επιβεβαιώσει την εισαγωγή του αγώνα πατώντας το κουμπί ΟΚ, αυτός εισάγεται στον πίνακα match_result της βάσης δεδομένων με τα χαρακτηριστικά που έδωσε ο χρήστης στο προηγούμενο βήμα. Ταυτόχρονα ανανεώνεται και ο πίνακας main_prediction που όπως έχουμε πει αποτελεί το σύνολο εκπαίδευσης (training set) του συστήματος. Όπως γίνεται κατανοητό είναι σημαντικό να είναι σωστές οι πληροφορίες αυτού του πίνακα, γιατί στη συνέχεια η πρόγνωση θα βασιστεί σε αυτές. Αφού λοιπόν περαστούν στον πίνακα main_prediction τα βασικά στοιχεία του αγώνα (αυτά που έχει δώσει ο χρήστης και που εισάγονται και στον πίνακα match_result) ενημερώνονται και τα υπόλοιπα χαρακτηριστικά του πίνακα που αποτελούν τα χαρακτηριστικά πάνω στα οποία θα βασιστεί η πρόγνωση. Οι ανανεώσεις γίνονται σύμφωνα με τους αλγόριθμους που αναλύσαμε στο 4 ο κεφάλαιο. Στο παραπάνω παράδειγμα, η γηπεδούχος ομάδα Chelsea πριν τον αγώνα που εισήχθη στην βάση είχε δώσει 36 αγώνες και είχε αποσπάσει 81 βαθμούς, ενώ η φιλοξενούμενη Man Utd είχε δώσει και αυτή 36 αγώνες και είχε αποσπάσει 88 βαθμούς (άρα σύμφωνα με τον αλγόριθμο RATING ALGORITHM έχουμε: home_team_rating = 81/36=2.25 και away_team_rating = 88/36=2.44). Εικόνα 5.3 Οι στήλες home_team_rating, away_team_rating, rating_diff του αγώνα που μόλις εισήχθη στην βάση. Για την ανανέωση των στηλών τύπου form ακολουθείται ο αλγόριθμος FORM ALGO- RITHM. Στο παράδειγμά μας και τα τρία τελευταία παιχνίδια της γηπεδούχου ομάδας Chelsea έληξαν ισόπαλα, -115-

126 Εικόνα 5.4 Τα τρία τελευταία παιχνίδια της Chelsea. ενώ η φιλοξενούμενη Man Utd κέρδισε δύο φορές και μία φορά ήρθε ισόπαλη. Εικόνα 5.5 Τα τρία τελευταία παιχνίδια της Man Utd. Οπότε η στήλη home_team_form παίρνει την τιμή 3, η στήλη away_team_form την τιμή 7, και η στήλη form_diff την τιμή -4. Εικόνα 5.6 Οι στήλες home_team_ form, away_team_ form, form _diff του αγώνα που μόλις εισήχθη στην βάση. Για τις στήλες home_team_form_at_home και away_team_form_at_away ακολουθείται ο παρακάτω αλγόριθμος VENUE ALGORITHM που παρουσιάστηκε στο 4 ο κεφάλαιο. Στο παράδειγμά μας η γηπεδούχος ομάδα Chelsea κέρδισε 4 από τα πέντε τελευταία παιχνίδια που έδωσε εντός έδρας, ενώ ένα έληξε ισόπαλο, -116-

127 Εικόνα 5.7 Τα πέντε τελευταία εντός έδρας παιχνίδια της Chelsea. ενώ η φιλοξενούμενη Man Utd κέρδισε τέσσερα από τα πέντε τελευταία εκτός έδρας παιχνίδια που έδωσε ενώ ηττήθηκε σε ένα. Εικόνα 5.8 Τα πέντε τελευταία παιχνίδια της Man Utd. Οπότε η στήλη home_team_form_at_home παίρνει την τιμή 13, η στήλη away_team_form_at_away την τιμή 12, και η στήλη venue_diff την τιμή 1, όπως φαίνεται και στην εικόνα 5.9. Εικόνα 5.9 Οι στήλες home_team_ form_at_home, away_team_ form_at_away, venue_diff του αγώνα που μόλις εισήχθη στην βάση. Για την στήλη past_games ακολουθείται ο αλγόριθμος PAST GAMES ALGORITHM που παρουσιάστηκε στο 4 ο κεφάλαιο

128 Στο παράδειγμά μας οι δύο ομάδες Chelsea και Man Utd έχουν ξαναδώσει το συγκεκριμένο αγώνα και τις πέντε προηγούμενες χρονιές, με την Chelsea να κερδίζει τρεις από τους πέντε αγώνες, έναν να λήγει ισόπαλο και έναν να τον κερδίζει η Man Utd. Οπότε η μεταβλητή past_games παίρνει την τιμή more_home_wins. Εικόνα 5.10 Η στήλη past_games του νέου αγώνα. Για την ενημέρωση των στηλών result και new_result ακολουθείται ο αλγόριθμος RE- SULT ALGORITHM που και πάλι παρουσιάστηκε στο 4 ο κεφάλαιο. Στο παράδειγμα τα τέρματα της γηπεδούχου ομάδας είναι ισάριθμα με αυτά της φιλοξενούμενης οπότε η στήλη result παίρνει την τιμή draw και η στήλη new_result παίρνει την τιμή home_does_not_win. Εικόνα 5.11 Οι στήλες result και new_result της νέας εγγραφής

129 5.1.2 Ανανέωση της βάσης δεδομένων. Η δεύτερη λειτουργία που υλοποιείται στην καρτέλα Add New Match Result, είναι αυτή της ανανέωσης της βάσης δεδομένων. Πατώντας ο χρήστης το κουμπί Update ανανεώνονται τα χαρακτηριστικά όλων των εγγραφών του πίνακα main_prediction. Εικόνα 5.12 Ανανέωση της βάσης δεδομένων Η ανανέωση είναι απαραίτητη όταν οι εισαγωγές αγώνων δεν έχουν γίνει με χρονολογική σειρά. Για την ανανέωση της βάσης δεδομένων ακολουθείται ο αλγόριθμος UPDATE ALGORITHM που ανανεώνει τις τιμές όλων των στηλών των εγγραφών του πίνακα main_prediction. Να σημειώσουμε ότι κατά την ανανέωση της βάσης δεδομένων δεν ανανεώνονται οι στήλες past_games, past_games_goal_diff, result και new_result, γιατί οι τιμές στις στήλες αυτές είναι ανεξάρτητες από τους άλλους αγώνες που έχουν γίνει μέσα στην χρονιά. Οι στήλες result και new_result εξαρτώνται αποκλειστικά από τον ίδιο τον αγώνα, και οι στήλες past_games και past_games_goal_diff εξαρτώνται από αγώνες προηγούμενων ετών

130 5.2 Η καρτέλα View Results-Statistics Προεπισκόπηση αποτελεσμάτων και συμπληρωματικών στοιχείων Στην καρτέλα αυτή γίνεται δυνατή η προεπισκόπηση αποτελεσμάτων και άλλων στατιστικών στοιχειών για την ομάδα που θα επιλέξει ο χρήστης. Αφού ο χρήστης επιλέξει μία ομάδα από την αναπτυσσόμενη λίστα, και πατήσει το κουμπί ΟΚ η εφαρμογή εμφανίζει τα παρακάτω χαρακτηριστικά για την επιλεγμένη ομάδα: Τα αποτελέσματα όλων των αγώνων που έχει συμμετάσχει η ομάδα σε φθίνουσα χρονολογική σειρά.. Το πλήθος των αγώνων που έχει συμμετάσχει η ομάδα. Το πλήθος των νικών που έχει πετύχει η ομάδα. Το πλήθος των ηττών που υπέστη η ομάδα. Το πλήθος των ισόπαλων αγώνων που έδωσε η ομάδα. Το ποσοστό νικών που έχει η ομάδα. Το ποσοστό των τερμάτων που πετυχαίνει η ομάδα ανά αγώνα. Το ποσοστό των τερμάτων που δέχεται η ομάδα ανά αγώνα. Εικόνα 5.13 Προεπισκόπηση στοιχείων

131 Στο παράδειγμα που βλέπουμε στην εικόνα 5.3 ο χρήστης έχει ζητήσει να δει αποτελέσματα και στοιχεία για την ομάδα της Chelsea. Όπως φαίνεται παραπάνω, όλοι οι αγώνες που έχει δώσει η Chelsea εμφανίζονται στον πίνακα που βρίσκεται στο κέντρο της καρτέλας View Results-Statistics. Στο κάτω μέρος της καρτέλας παρατηρούμε ότι στην βάση δεδομένων υπάρχουν 37 αγώνες που έχει συμμετάσχει η Chelsea, σε 24 από αυτούς κέρδισε, σε 8 ήρθε ισόπαλη, ενώ σε 5 έχασε. Ακόμα πληροφορούμαστε ότι η Chelsea κερδίζει τους αγώνες που συμμετέχει με ποσοστό 0.65, πετυχαίνει 1.68 τέρματα ανά αγώνα, ενώ δέχεται Ηκαρτέλα Generate Prediction Πρόβλεψη αποτελέσματος αγώνα Στην καρτέλα Generate Prediction ο χρήστης έχει την δυνατότητα να ζητήσει πρόγνωση αποτελέσματος για κάποιο αγώνα. Ο χρήστης παρέχει τις παρακάτω πληροφορίες για τον αγώνα μέσω αναπτυσσόμενων λιστών : Γηπεδούχος ομάδα. Φιλοξενούμενη ομάδα. Έτος διεξαγωγής αγώνα. Μήνας διεξαγωγής αγώνα. Μέρα διεξαγωγής αγώνα. Στην συνέχεια ο χρήστης επιλέγει και πάλι μέσω αναπτυσσομένης λίστας τον τύπο του classifier που θα χρησιμοποιηθεί από την εφαρμογή για την πρόγνωση του αποτελέσματος. Οι επιλογές που δίνονται στον χρήστη για τον τύπο του classifier, προέρχονται από τις σημαντικότερες οικογένειες αλγορίθμων μηχανικής μάθησης, που αναλύθηκαν στο 2ο κεφάλαιο. Αναλυτικά είναι οι παρακάτω πέντε: SMO: Πρόκειται για την έκδοση των SVM (Support Vector Machines) που προσφέρει το πακέτο του WEKA. Ανήκουν στην κατηγορία της γραμμικής και μη παρεμβολής (στην περίπτωσή μας έχουμε γραμμική παρεμβολή). Η λειτουργία τους βασίζεται στην εύρεση μιας ευθείας που να διαχωρίζει στο -121-

132 χώρο των παραδειγμάτων τα αρνητικά από τα θετικά παραδείγματα. Σαν αποτέλεσμα επιστρέφει μία αριθμητική τιμή στο διάστημα [-1,1], και όχι μια πιθανότητα. NaiveBayes: Πρόκειται για μια πρακτική μέθοδος μάθησης που στηρίζεται σε κατανομές πιθανότητας. Έτσι οι τιμές που επιστρέφει για τις τιμές της εξαρτημένης μεταβλητής ανήκουν στο διάστημα [0,1] και έχουν άθροισμα την μονάδα. JRip: Ανήκει στην κατηγορία μάθησης προτασιακών κανόνων ταξινόμησης. (Repeated Incremental Pruning to Produce Error Reduction -RIPPER), και έχει προταθεί από τον William W. Cohen σαν μια βελτιωμένη έκδοση του IREP. J48: Πρόκειται για την έκδοση του αλγορίθμου C4.5 που προσφέρει το πακέτο WEKA. Ανήκει στην κατηγορία των δένδρων ταξινόμησης IBk: Ανήκει στην κατηγορία της μάθησης βασισμένη σε περιπτώσεις ( Instanced Based Learning ). Κάθε νέα περίπτωση κατηγοριοποιείται ανάλογα με την κατηγορία όπου ανήκουν οι k κοντινότεροι σε αυτή γείτονες ( k-nearest Neighbors). Στη συνέχεια, με τη χρήση κουμπιών τύπου radio ο χρήστης μπορεί να παραμετροποιήσει την πρόγνωση σε τρία πεδία. Αρχικά εάν η εξαρτημένη μεταβλητή θα έχει τρεις τιμές ( home team win, draw, away team win ) ή δύο (home team wins, home team does not win), στη συνέχεια εάν θα χρησιμοποιηθούν τα χαρακτηριστικά αυτούσια ή εάν τη θέση του θα πάρουν οι διαφορές τους, και τέλος εάν ο τρόπος αναπαράστασης της προϊστορίας θα είναι τύπου enum ή double. Τέλος στον χρήστη δίνονται κάποιες επιπλέον επιλογές παραμετροποίησης της πρόγνωσης, που έχουν να κάνουν με τα χαρακτηριστικά που θα ληφθούν υπόψη κατά την εκπαίδευση του classifier. Έτσι ο χρήστης μπορεί να επιλέξει με τη χρήση κουμπιών τύπου check box, ποιες από τις παραμέτρους rating, form, form venue και past games θα εκτιμηθούν κατά την διαδικασία της πρόγνωσης

133 Εικόνα 5.14 Πρόβλεψη αποτελέσματος αγώνα Αφού ο χρήστης πατήσει τι κουμπί Predict, η εφαρμογή παρουσιάζει τις εκτιμήσεις τις για τα τρία πιθανά αποτελέσματα, που υπολογίζονται σύμφωνα με τον αλγόριθμο PREDICT ALGORITHM που παρουσιάστηκε στο 4 ο κεφάλαιο. Στο παράδειγμα που φαίνεται στην εικόνα 5.5 ο χρήστης έχει ζητήσει από το σύστημα να προγνώσει το αποτέλεσμα του αγώνα Portsmouth Chelsea που έλαβε χώρα στις , με χρήση classifier τύπου NaiveBayes. Ακόμα έχει επιλέξει το αποτέλεσμα της πρόγνωσης να βασίζεται σε τρία πιθανά αποτελέσματα, τον double τρόπο αναπαράστασης της προϊστορίας, και τέλος να εκτιμηθούν όλοι οι δυνατοί παράμετροι κατά την διάρκεια της πρόγνωσης με την αναλυτική τους μορφή, και όχι με την μορφή των διαφορών τους. Έτσι, και αφού ακολουθηθεί o αλγόριθμος PREDICT ALGORITHM, εμφανίζονται στον χρήστη οι πιθανότητες που υπολόγισε η εφαρμογή για τα τρία αποτελέσματα της εξαρτημένης μεταβλητής, καθώς και το ποσοστό λάθους του classifier. Όπως βλέπουμε -123-

134 και στην εικόνα το ποσοστό λάθους του classifier είναι 0.446, ενώ το σύστημα προέβλεψε ότι η πιθανότητα να κερδίσει η Portsmouth είναι 0.021, η πιθανότητα να κερδίσει η Chelsea είναι 0.970, ενώ η πιθανότητα ο αγώνας να λήξει ισόπαλος είναι Για την ιστορία σημειώνουμε ότι ο αγώνας έληξε με νικήτρια την Chelsea με σκορ

135 6 Αποτελέσματα Παρατηρήσεις Εισαγωγή Στο κεφάλαιο αυτό θα παρουσιαστούν κάποιοι από τους πειραματισμούς που έγιναν μετά την υλοποίησης της εφαρμογής, συνοδευμένοι από σχόλια και παρατηρήσεις. Ακόμα θα γίνει συνολική αποτίμηση της δουλειάς που έγινε στα πλαίσια της πτυχιακής εργασίας. 6.1 Ανασκόπηση στόχων και αναπαράστασης. Όπως έχει αναφερθεί και στο τέταρτο κεφάλαιο, στόχος της πτυχιακής ήταν η δημιουργία μια εφαρμογής που θα υποστήριζε την πρόγνωση αποτελεσμάτων αγώνων ποδοσφαίρου. Αρχικός στόχος ήταν η επίτευξη ενός ποσοστού λάθους της τάξης του 40%. Να θυμηθούμε σ αυτό το σημείο ποιες ήταν οι αρχικές μας επιλογές όσο αφορά τους παράγοντες που επηρεάζουν την έκβαση ενός ποδοσφαιρικού αγώνα: Η θέση της γηπεδούχου στον πίνακα της βαθμολογίας. Η θέση της φιλοξενούμενης ομάδας στον πίνακα της βαθμολογίας. Η φόρμα της γηπεδούχου ομάδας. Η φόρμα της φιλοξενούμενης ομάδας. Η φόρμα της γηπεδούχου ομάδας στην έδρα της. Η φόρμα της γηπεδούχου ομάδας στην έδρα της. Η φόρμα της φιλοξενούμενης ομάδας στα εκτός έδρας παιχνίδια. Η προϊστορία ανάμεσα στις δύο ομάδες. Που αναπαριστούνται από τις αντίστοιχες μεταβλητές του πίνακα main_prediction: home_team_rating. away_team_rating

136 home_team_form. away_team_form. home_team_form_at_home. away_team_form_at_away. past_games. past_games_goal_diff. Να θυμίσουμε ότι οι παραπάνω στήλες ( εκτός από τις στήλες past_games και past_games_goal_diff) μπορούν να αντικαταστηθούν ανά δύο από τις διαφορές τους, που αναπαριστούνται από τις στήλες: rating_diff. form_diff. venue_diff. με σκοπό την υποβοήθηση των αλγορίθμων και την βελτίωση της απόδοσης του συστήματος. Η εξαρτημένη μεταβλητή του προβλήματος που είναι το αποτέλεσμα ενός αγώνα αναπαρίσταται κατ επιλογή από δύο στήλες του πίνακα main_prediction: result (τρεις πιθανές τιμές). new_result (δύο πιθανές τιμές). Τέλος να θυμίσουμε ότι οι αλγόριθμοι που έχει στη διάθεσή του ο χρήστης είναι οι πέντε παρακάτω: SMO NaiveBayes JRip J48 IBk -126-

137 6.2 Αποτελέσματα παρατηρήσεις πάνω σε διαφορετικά σύνολα δεδομένων Ας δούμε τώρα τις επιδόσεις του συστήματος πάνω σε διαφορετικά σύνολα δεδομένων και με τη χρήση διαφορετικών αλγορίθμων. Να σημειώσουμε ότι στο σύνολο εκπαίδευσης δεν συμπεριλαμβάνονται ούτε τα ονόματα των ομάδων αλλά ούτε οι ημερομηνίες διεξαγωγής των αγώνων. Στα σύνολα δεδομένων που εξετάζονται παρακάτω (εκτός από αυτά όπου τα δεδομένα φιλτράρονται βάσει της ημερομηνίας) οι αγώνες που συμπεριλαμβάνονται είναι οι αγώνες που έχουν γίνει μέχρι την Η αξιολόγηση της επίδοσης των classifiers γίνεται με την μέθοδο Cross Validate. Σύμφωνα με την μεθοδολογία αυτή, ένα ποσοστό των δεδομένων χρησιμοποιείται σαν δεδομένα εκπαίδευσης, και τα υπόλοιπα δεδομένα χρησιμοποιούνται σαν σύνολο ελέγχου. Η διαδικασία επαναλαμβάνεται για διαφορετικά μέρη των δεδομένων, για να υπολογιστεί στο τέλος το συνολικό ποσοστό λάθους για το σύνολο των δεδομένων Το τυπικό σύνολο δεδομένων Σαν πρώτο σύνολο δεδομένων, θα εξετάσουμε το βασικό σύνολο που προσφέρει η εφαρμογή, και αποτελείται από τα χαρακτηριστικά home_team_rating, away_team_rating, home_team_form, away_team_form, home_team_form_at_home, away_team_form_at_away και past_games όλων των αγώνων που έγιναν πριν τις ( σύνολο 359 αγώνων ). Τα συγκεκριμένα αποτελέσματα στα ποσοστά λάθους, θα χρησιμοποιηθούν σαν μέτρο σύγκρισης για τα παραδείγματα που ακολουθούν. Πίνακας 6.1 Οι επιδόσεις για το τυπικό σύνολο δεδομένων (359 αγώνες)

138 Όπως βλέπουμε και από στον πίνακα 6.1, η πλειοψηφία των αλγόριθμων επιστρέφει ποσοστό λάθους μικρότερο του 50%, αλλά όχι κοντά στο 40% που ήταν και ο αρχικός στόχος. Μόνο οι αλγόριθμοι ΙΒk και J48 επιστρέφουν ποσοστό λάθους μεγαλύτερο του 50%. Η αρχική αποτυχία το ποσοστό να πέσει κάτω από το 40% δεν οφείλεται στους αλγόριθμους, αλλά στον τρόπο αναπαράστασης του προβλήματος. Όπως θα δούμε και στα παρακάτω παραδείγματα, η λειτουργία των αλγορίθμων αλλάζει σε σημαντικό βαθμό καθώς αλλάζουν τα σύνολα εκπαίδευσης. Στον πίνακα 6.1 παρατηρούμε ακόμα ότι το ποσοστό λάθους που επιστρέφουν οι αλγόριθμοι μειώνεται σημαντικά όταν οι τρεις τιμές της εξαρτημένης μεταβλητής (home_wins, draw, home_loses) μειώνονται σε δύο (home_wins, home_does_not_win). Συγκεκριμένα στην πλειοψηφία τους οι αλγόριθμοι επιστρέφουν ποσοστό λάθους πολύ κοντά στο 40%. Εξαίρεση αποτελεί ο IBk, που όπως και στην περίπτωση του αποτελέσματος με τρεις πιθανές τιμές, επιστρέφει μεγαλύτερο ποσοστό λάθους σε σχέση με τους υπόλοιπους Σύνολο δεδομένων βασισμένο στις διαφορές των χαρακτηριστικών. Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε και πάλι όλους τους αγώνες μέχρι την ημερομηνία (359 αγώνες), αλλά αυτή την φορά τις στήλες home_team_rating, away_team_rating, hone_team_form, away_team_form, home_team_form_at_home, και away_team_form_at_away θα αντικαταστηθούν από τις διαφορές τους. Θυμίζουμε ότι με αυτή την κίνηση περιμένουμε η απόδοση των αλγορίθμων να βελτιωθεί. Στον πίνακα 6.2 βλέπουμε τις νέες επιδόσεις. Πίνακας 6.2 Οι επιδόσεις για σύνολο δεδομένων βασισμένο στις διαφορές (359 αγώνες)

139 Τα αποτελέσματα όπως βλέπουμε δεν είναι τα αναμενόμενα, καθώς στους περισσότερους αλγόριθμους, στην περίπτωση της εξαρτημένης μεταβλητής με τρεις τιμές, το ποσοστό λάθους αυξήθηκε. Άρα η αρχική υπόθεση, ότι αντικαθιστώντας τις στήλες ανά δύο με μία στήλη που θα έχει σαν τιμή τη διαφορά τη διαφορά τους, θα καθοδηγήσουμε τους αλγόριθμους σε μικρότερα ποσοστά λάθους, δεν φαίνεται να επαληθεύεται στο συγκεκριμένο πρόβλημα Σύνολο δεδομένων βασισμένο στο χαρακτηριστικό rating. Σ αυτό το σύνολο δεδομένων θα φιλτραριστούν οι αγώνες βάσει της τιμής της στήλης rating_diff. Θυμίζουμε η στήλη rating_diff παίρνει τιμές στο κλειστό διάστημα [-3,3]. Έτσι θα δημιουργηθούν δύο σύνολα δεδομένων, ένα όπου η στήλη rating_diff θα έχει τιμή κοντά στα άκρα του συνόλου και ένα όπου η τιμή θα είναι κοντά στο μηδέν. Μεγάλη διαφορά δυναμικότητας Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε αγώνες όπου οι δύο ομάδες έχουν τιμή στην στήλη rating_diff κοντά στα άκρα του πεδίου ορισμού (μεγαλύτερη από 1.5 ή μικρότερη από -1.5). Η μεγάλη διαφορά στις τιμές rating, τυπικά δηλώνει ότι οι δύο ομάδες έχουν μεγάλη διαφορά δυναμικότητας. Στο σημείο αυτό να σημειώσουμε ότι δεν αλλάζουν τα χαρακτηριστικά που αναλύονται, αλλά το μέγεθος του συνόλου εκπαίδευσης, αφού σε αυτό συμπεριλαμβάνονται πλέον μόνο οι αγώνες που πληρούν το κριτήριο της μεγάλης διαφοράς rating (σύνολο 21 αγώνων). Τα αποτελέσματα φαίνονται στον παρακάτω πίνακα. Πίνακας 6.3 Οι επιδόσεις για σύνολο δεδομένων βασισμένο στη μεγάλη διαφορά των στηλών rating (21 αγώνες)

140 Όπως παρατηρούμε στην πλειοψηφία των περιπτώσεων τα ποσοστά λάθους μειώθηκαν εντυπωσιακά, εκτός από αυτή του αλγόριθμού J48 όπου και στα δύο είδη εξαρτημένης μεταβλητής παρουσιάζει αύξηση του ποσοστού λάθους, όπως και η περίπτωση του SMO στην περίπτωση της τριπλής εξαρτημένη μεταβλητής. Αυτή η σημαντική μείωση στη πλειοψηφία των περιπτώσεων ήταν αναμενομένη, καθώς οι αγώνες που συμμετείχαν στο σύνολο αυτό γίνονται ανάμεσα σε ομάδες που (σύμφωνα με την αναπαράσταση του προβλήματος) έχουν μεγάλη διαφορά δυναμικότητας. Μικρή διαφορά δυναμικότητας Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε αγώνες όπου η τιμή στην στήλη rating_diff βρίσκεται κοντά στο μέσο του πεδίου ορισμού (μεγαλύτερη από -0.5 και μικρότερη από 0.5). Αυτό τυπικά δηλώνει ότι οι δύο ομάδες έχουν μικρή διαφορά δυναμικότητας. Και πάλι αλλάζει μόνο το μέγεθος του συνόλου εκπαίδευσης, αφού σε αυτό συμπεριλαμβάνονται πλέον μόνο οι αγώνες που πληρούν το κριτήριο της μικρής διαφοράς rating. Τα αποτελέσματα φαίνονται στον παρακάτω πίνακα. Πίνακας 6.4 Οι επιδόσεις για σύνολο δεδομένων βασισμένο στη μικρή διαφορά των στηλών rating (177 αγώνες). Αφού τυπικά οι δύο ομάδες που συμμετείχαν στους αγώνες ήταν περίπου της ίδιας δυναμικότητας, η πρόβλεψη του αποτελέσματος των αγώνων γίνεται πιο δύσκολή υπόθεση. Έτσι όπως και ήταν αναμενόμενο, τα ποσοστά λάθους αυξήθηκαν σε όλες τις περιπτώσεις

141 6.2.4 Σύνολο δεδομένων βασισμένο στο χαρακτηριστικό form Αυτή τη φορά θα χτίσουμε το σύνολο δεδομένων βάσει της τιμής της στήλη form_diff. Θυμίζουμε πως η στήλη form_diff παίρνει τιμές στο κλειστό διάστημα [-9,9]. Μεγάλη διαφορά φόρμας Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε αγώνες όπου οι δύο ομάδες έχουν τιμή στην στήλη form_diff κοντά στα άκρα του διαστήματος ορισμού (μεγαλύτερη από 6 ή μικρότερη από -6). Αυτό τυπικά δηλώνει ότι οι δύο ομάδες έχουν μεγάλη διαφορά φόρμας. Η μία έχει αποσπάσει πολλούς βαθμούς στους τελευταίους αγώνες, ενώ η άλλη όχι. Πίνακας 6.5 Οι επιδόσεις της εφαρμογής για το σύνολο δεδομένων βασισμένο στη μεγάλη διαφορά των στηλών form (15 αγώνες). Παρόλο που θα περιμέναμε ότι τα ποσοστά λάθους θα περιμέναμε να μειωθούν, αυτό γίνεται μόνο στην πλειοψηφία των περιπτώσεων της εξαρτημένης μεταβλητής με δύο τιμές, ενώ μόνο στη περίπτωση του αλγόριθμού JRip στη περίπτωση της εξαρτημένης μεταβλητής με τρεις τιμές. Μικρή διαφορά φόρμας Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε αγώνες όπου η τιμή στις στήλες form βρίσκεται κοντά στο κέντρο του πεδίου ορισμού( μεγαλύτερη από -2 και -131-

142 μικρότερη από 2). Αυτό τυπικά δηλώνει ότι οι δύο ομάδες έχουν μικρή διαφορά φόρμας, δηλαδή στους τελευταίους αγώνες έχουν αποσπάσει περίπου τους ίδιους βαθμούς. Στον πίνακα 6.6 που ακολουθεί βλέπουμε τα ποσοστά λάθους για το συγκεκριμένο σύνολο δεδομένων. Πίνακας 6.6 Οι επιδόσεις της εφαρμογής για το σύνολο δεδομένων βασισμένο στη μικρή διαφορά των στηλών form (133 αγώνες). Αν και στο συγκεκριμένο σύνολο δεδομένων οι δύο ομάδες έχουν μικρή διαφορά φόρμας, τα ποσοστά λάθους είναι σε γενικές γραμμές αυξημένα τόσο σε σχέση με αυτά όπου οι ομάδες έχουν μεγάλη διαφορά φόρμας, όσο και σε σχέση με το βασικό σύνολο δεδομένων Σύνολο δεδομένων βασισμένο στο χαρακτηριστικό διακεκριμένης φόρμας. Αυτή τη φορά η επιλογή των αγώνων θα γίνει βάσει της διαφοράς των ομάδων στις στήλες home_team_form_at_home και away_team_form_at_away, που παίρνει τιμές στο σύνολο [-15,15] Μεγάλη διαφορά διακεκριμένης φόρμας Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε αγώνες όπου οι δύο ομάδες έχουν τιμή στην στήλη form_venue κοντά στα άκρα του πεδίου ορισμού (μικρότερη από -10 ή μεγαλύτερη από 10)

143 Το ότι οι ομάδες που συμμετέχουν σε αυτό το σύνολο δεδομένων έχουν μεγάλη διαφορά στις στήλες home_team_form_at_home και away_team_form_at_away πρακτικά σημαίνει ότι η γηπεδούχος είναι πολύ δυνατή στην έδρα της ενώ η φιλοξενούμενη πολύ αδύνατη εκτός έδρα ( ή το αντίθετο αν η διαφορά είναι θετική). Οπότε λογικά περιμένουμε τα ποσοστά λάθους να είναι μειωμένα σε σχέση με αυτά του βασικού συνόλου δεδομένων. Τα αποτελέσματα του πειράματος παρουσιάζονται στον παρακάτω πίνακα. Πίνακας 6.7 Οι επιδόσεις της εφαρμογής για το σύνολο δεδομένων βασισμένο στη μεγάλη διαφορά των στηλών home_team_form_at_home και away_team_form_at_away (16 αγώνες). Όπως ήταν αναμενόμενο τα ποσοστά λάθους σε όλες τις περιπτώσεις είναι εντυπωσιακά μειωμένα. Μικρή διαφορά διακεκριμένης φόρμας Σε αυτό το σύνολο δεδομένων θα συμπεριλάβουμε αγώνες όπου οι δύο ομάδες έχουν μικρή διαφορά στις στήλες home_team_form_at_home και away_team_form_at_away. Δηλαδή η διαφορά της φόρμας της γηπεδούχου ομάδας στην έδρα της, από αυτή της φιλοξενούμενης στα εκτός έδρας παιχνίδια είναι κοντά στο κέντρο του πεδίου ορισμού της στήλης venue_diff (μικρότερη από 3 και μεγαλύτερη από -3).Τα αποτελέσματα παρουσιάζονται παρακάτω στον πίνακα

144 Πίνακας 6.8 Οι επιδόσεις της εφαρμογής για το σύνολο δεδομένων βασισμένο στη μικρή διαφορά των στηλών home_team_form_at_home και away_team_form_at_away (123 αγώνες). Δεδομένου ότι οι αγώνες που συμμετέχουν σε αυτό το σύνολο δεδομένων γίνονται μεταξύ ομάδων με μικρή διαφορά στις τιμές των στηλών home_team_form_at_home και away_team_form_at_away ήταν αναμενόμενο τα ποσοστά λάθους να είναι αυξημένα στις περισσότερες περιπτώσεις, εκτός και πάλι από αυτή του IBk, αλλά και των SMO και J48 με διπλή εξαρτημένη μεταβλητή Σύνολα δεδομένων βασισμένο στο μήνα διεξαγωγής. Παρακάτω θα δούμε τα ποσοστά λάθους της εφαρμογής ανάλογα με το μήνα διεξαγωγής των αγώνων. Σκοπός αυτού του πειράματος ήταν ο έλεγχος της αιτίασης ότι οι εφαρμογές μηχανικής μάθησης έχουν μειωμένη απόδοση όταν τα δεδομένα είναι λίγα και δεν επαρκούν για ικανοποιητική εκπαίδευση, αλλά και όταν είναι πολλά και εμφανίζουν φαινόμενα όπως αυτό της υπερμοντελοποίησης. Έτσι αναμένουμε τους μήνες που βρίσκονται στη μέση της ποδοσφαιρικής χρονιάς τα ποσοστά λάθους να είναι μικρότερα απ ότι αυτά του τυπικού συνόλου δεδομένων, ενώ αντίθετα τα ποσοστά λάθους των μηνών στην αρχή και στο τέλος της ποδοσφαιρικής χρονιάς να είναι αυξημένα. Τα αποτελέσματα φαίνονται στον πίνακα που ακολουθεί

145 Πίνακας 6.9 Οι επιδόσεις της εφαρμογής πάνω σε σύνολα δεδομένων βασισμένα στο μήνα διεξαγωγής των αγώνων. Παρατηρώντας τον πίνακα 6.9 θα μπορούσαμε να πούμε ότι η αρχική υπόθεση επιβεβαιώνεται, αφού βλέπουμε ότι στους μήνες που βρίσκονται στα άκρα της αγωνιστικής περιόδου τα ποσοστά λάθους είναι αυξημένα, ενώ αντίθετα στους υπόλοιπους μήνες (με μοναδική εξαίρεση τον Ιανουάριο) τα ποσοστά λάθους έχουν μειωθεί. Επίλογος Συνοπτικά θα μπορούσαμε να πούμε ότι ο αρχικός στόχος του ποσοστού της τάξης του 40% γενικά δεν επιτεύχθει. Τα ποσοστά λάθους που επιστρέφονται στις περισσότερες περιπτώσεις είναι μεγαλύτερα του 0.4. Η αδυναμία εκπλήρωσης των αρχικών στόχων θα μπορούσαμε να πούμε ότι οφείλεται κυρίως σε δύο παράγοντες. Αρχικά οφείλεται στην ελλιπή αναπαράσταση του προβλήματος. Παρόλο που ο δευτερεύον στόχος της μικρής και ευέλικτης αναπαράστασης επιτεύχθηκε, αυτό δεν μπόρεσε να συνδυαστεί με μια αρκετά περιεκτική αναπαράσταση. Αντίθετα η αναπαράσταση αποδείχθηκε ανεπαρκής να μοντελοποιήσει όλες τις πτυχές του προβλήματος. Μέσα όμως από συγκεκριμένα παραδείγματα έγινε κατανοητό ότι μία καλύτερη και πιο λεπτομερής αναπαράσταση, θα οδηγούσε σε καλύτερα αποτελέσματα. Ο δεύτερος και πιο προφανής λόγος που το ποσοστό επιτυχίας της εφαρμογής δεν κυμαίνεται στο 40%, είναι η κακή επιλογή του πρωταθλήματος. Η Premier League είναι ένα πρωτάθλημα όπου οι εκπλήξεις στα αποτελέσματα των αγώνων είναι ένα συχνό φαινόμενο. Η συμπεριφορά αυτή του πρωταθλήματος καθιστά δύσκολη τη -135-

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

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

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

Εξόρυξη Γνώσης στον Τομέα του Αθλητισμού

Εξόρυξη Γνώσης στον Τομέα του Αθλητισμού ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ Εξόρυξη Γνώσης στον Τομέα του Αθλητισμού Διπλωματική Εργασία του Βασιλακάκη Αναστάσιου(ΑΕΜ:243) Επιβλέπων Καθηγητής:

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

Κατηγοριοποίηση βάσει διανύσματος χαρακτηριστικών

Κατηγοριοποίηση βάσει διανύσματος χαρακτηριστικών Κατηγοριοποίηση βάσει διανύσματος χαρακτηριστικών Αναπαράσταση των δεδομένων ως διανύσματα χαρακτηριστικών (feature vectors): Επιλογή ενός

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

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

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

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

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

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

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

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

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

Αναγνώριση Προτύπων Ι

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

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

Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων»

Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων» Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πρόγραμμα Μεταπτυχιακών Σπουδών Διπλωματική Εργασία: «Συγκριτική Μελέτη Μηχανισμών Εκτίμησης Ελλιπούς Πληροφορίας σε Ασύρματα Δίκτυα Αισθητήρων» Αργυροπούλου Αιμιλία

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

Δέντρα Απόφασης (Decision(

Δέντρα Απόφασης (Decision( Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Ανάλυση Δεδομένων με χρήση του Στατιστικού Πακέτου R

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

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

Ενότητα 1: Εισαγωγή. ΤΕΙ Στερεάς Ελλάδας. Τμήμα Φυσικοθεραπείας. Προπτυχιακό Πρόγραμμα. Μάθημα: Βιοστατιστική-Οικονομία της υγείας Εξάμηνο: Ε (5 ο )

Ενότητα 1: Εισαγωγή. ΤΕΙ Στερεάς Ελλάδας. Τμήμα Φυσικοθεραπείας. Προπτυχιακό Πρόγραμμα. Μάθημα: Βιοστατιστική-Οικονομία της υγείας Εξάμηνο: Ε (5 ο ) ΤΕΙ Στερεάς Ελλάδας Τμήμα Φυσικοθεραπείας Προπτυχιακό Πρόγραμμα Μάθημα: Βιοστατιστική-Οικονομία της υγείας Εξάμηνο: Ε (5 ο ) Ενότητα 1: Εισαγωγή Δρ. Χρήστος Γενιτσαρόπουλος Λαμία, 2017 1.1. Σκοπός και

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

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 10: Δημιουργία Βάσεων Κανόνων Από Δεδομένα-Προετοιμασία συνόλου δεδομένων Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δημιουργία Βάσεων Κανόνων

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

Εξόρυξη Γνώσης από Βιολογικά εδομένα

Εξόρυξη Γνώσης από Βιολογικά εδομένα Παρουσίαση Διπλωματικής Εργασίας Εξόρυξη Γνώσης από Βιολογικά εδομένα Καρυπίδης Γεώργιος (Μ27/03) Επιβλέπων Καθηγητής: Ιωάννης Βλαχάβας MIS Πανεπιστήμιο Μακεδονίας Φεβρουάριος 2005 Εξόρυξη Γνώσης από Βιολογικά

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Εισαγωγή Στην πλειοψηφία των ορισμών για την ΤΝ, η δυνατότητα μάθησης / προσαρμογής

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

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

HMY 795: Αναγνώριση Προτύπων HMY 795: Αναγνώριση Προτύπων Διάλεξη 3 Επιλογή μοντέλου Επιλογή μοντέλου Θεωρία αποφάσεων Επιλογή μοντέλου δεδομένα επικύρωσης Η επιλογή του είδους του μοντέλου που θα χρησιμοποιηθεί σε ένα πρόβλημα (π.χ.

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

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

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

Μηχανική Μάθηση: γιατί;

Μηχανική Μάθηση: γιατί; Μηχανική Μάθηση Μηχανική Μάθηση: γιατί; Απαραίτητη για να μπορεί ο πράκτορας να ανταπεξέρχεται σε άγνωστα περιβάλλοντα Δεν είναι δυνατόν ο σχεδιαστής να προβλέψει όλα τα ενδεχόμενα περιβάλλοντα. Χρήσιμη

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΕΙ Δυτικής Μακεδονίας ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ 2015-2016 Τεχνητή Νοημοσύνη Μάθηση από Παρατηρήσεις Διδάσκων: Τσίπουρας Μάρκος Εκπαιδευτικό Υλικό: Τσίπουρας Μάρκος http://ai.uom.gr/aima/ 2 Μορφές μάθησης

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

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1)

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1) ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΘΕΩΡΙΑ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΗ ΛΗΨΗ ΑΠΟΦΑΣΕΩΝ (1) 1 Προέλευση και ιστορία της Επιχειρησιακής Έρευνας Αλλαγές στις επιχειρήσεις Τέλος του 19ου αιώνα: βιομηχανική

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

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

Δειγματοληψία στην Ερευνα. Ετος

Δειγματοληψία στην Ερευνα. Ετος ΓΕΩΠΟΝΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Αγροτικής Οικονομίας & Ανάπτυξης Μέθοδοι Γεωργοοικονομικής και Κοινωνιολογικής Ερευνας Δειγματοληψία στην Έρευνα (Μέθοδοι Δειγματοληψίας - Τρόποι Επιλογής Τυχαίου Δείγματος)

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

ΗΥ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. Περίληψη Συνεισφοράς

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων ΠΕΡΙΕΧΟΜΕΝΑ Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων Εισαγωγή Η χρήση των μεταβλητών με δείκτες στην άλγεβρα είναι ένας ιδιαίτερα

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

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα 6ο Πανελλήνιο Συνέδριο των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη» Σύρος 6-8 Μαϊου 2011 Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά

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

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

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

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

Στόχος της ψυχολογικής έρευνας:

Στόχος της ψυχολογικής έρευνας: Στόχος της ψυχολογικής έρευνας: Συστηματική περιγραφή και κατανόηση των ψυχολογικών φαινομένων. Η ψυχολογική έρευνα χρησιμοποιεί μεθόδους συστηματικής διερεύνησης για τη συλλογή, την ανάλυση και την ερμηνεία

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

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

Στάδιο Εκτέλεσης

Στάδιο Εκτέλεσης 16 ΚΕΦΑΛΑΙΟ 1Ο 1.4.2.2 Στάδιο Εκτέλεσης Το στάδιο της εκτέλεσης μίας έρευνας αποτελεί αυτό ακριβώς που υπονοεί η ονομασία του. Δηλαδή, περιλαμβάνει όλες εκείνες τις ενέργειες από τη στιγμή που η έρευνα

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

Αποθήκες εδομένων και Εξόρυξη εδομένων:

Αποθήκες εδομένων και Εξόρυξη εδομένων: Αποθήκες εδομένων και Εξόρυξη εδομένων: Κατηγοριοποίηση: Μέρος Α http://delab.csd.auth.gr/~gounaris/courses/dwdm/ gounaris/courses/dwdm/ Ευχαριστίες Οι διαφάνειες του μαθήματος σε γενικές γραμμές ακολουθούν

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

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

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

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

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

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

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

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Εισηγητής: ρ Ηλίας Ζαφειρόπουλος Εισαγωγή Ιατρικά δεδοµένα: Συλλογή Οργάνωση Αξιοποίηση Data Mining ιαχείριση εδοµένων Εκπαίδευση

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

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium iv

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium iv Σ ΤΑΤ Ι Σ Τ Ι Κ Η i Statisticum collegium iv Στατιστική Συμπερασματολογία Ι Σημειακές Εκτιμήσεις Διαστήματα Εμπιστοσύνης Στατιστική Συμπερασματολογία (Statistical Inference) Το πεδίο της Στατιστικής Συμπερασματολογία,

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

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

ΕΞΕΤΑΣΕΙΣ στο τέλος του εξαμήνου με ΑΝΟΙΧΤΑ βιβλία ΕΞΕΤΑΣΕΙΣ ο καθένας θα πρέπει να έχει το ΔΙΚΟ του βιβλίο ΔΕΝ θα μπορείτε να ανταλλάσετε βιβλία ή να

ΕΞΕΤΑΣΕΙΣ στο τέλος του εξαμήνου με ΑΝΟΙΧΤΑ βιβλία ΕΞΕΤΑΣΕΙΣ ο καθένας θα πρέπει να έχει το ΔΙΚΟ του βιβλίο ΔΕΝ θα μπορείτε να ανταλλάσετε βιβλία ή να N161 _ (262) Στατιστική στη Φυσική Αγωγή Βιβλία ή 1 ΕΞΕΤΑΣΕΙΣ στο τέλος του εξαμήνου με ΑΝΟΙΧΤΑ βιβλία ΕΞΕΤΑΣΕΙΣ ο καθένας θα πρέπει να έχει το ΔΙΚΟ του βιβλίο ΔΕΝ θα μπορείτε να ανταλλάσετε βιβλία ή να

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

Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.

Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua. Μέρος Β /Στατιστική Μέρος Β Στατιστική Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.gr/gpapadopoulos) Από τις Πιθανότητες στη Στατιστική Στα προηγούμενα, στο

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

Μεθοδολογίες Αξιοποίησης Δεδομένων

Μεθοδολογίες Αξιοποίησης Δεδομένων Μεθοδολογίες Αξιοποίησης Δεδομένων Βλάχος Σ. Ιωάννης Λέκτορας 407/80, Ιατρικής Σχολής Πανεπιστημίου Αθηνών Εργαστήριο Πειραματικής Χειρουργικής και Χειρουργικής Ερεύνης «Ν.Σ. Σ Χρηστέας» Στάδια Αξιοποίησης

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

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

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

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων... Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

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

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

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

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

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

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

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων Σ Β Βάση εδομένων Η ομή ενός ΣΒ Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2006-2007 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή ΜΕΡΟΣ 1 (Χρήση Σ Β ) Γενική

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

Διακριτικές Συναρτήσεις

Διακριτικές Συναρτήσεις Διακριτικές Συναρτήσεις Δρ. Δηµήτριος Τσέλιος Επίκουρος Καθηγητής ΤΕΙ Θεσσαλίας Τµήµα Διοίκησης Επιχειρήσεων Θερµικός χάρτης των XYZ ξενοδοχείων σε σχέση µε τη γεωγραφική περιοχή τους P. Adamopoulos New

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

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

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

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 1 Βελτιστοποίηση Στην προσπάθεια αντιμετώπισης και επίλυσης των προβλημάτων που προκύπτουν στην πράξη, αναπτύσσουμε μαθηματικά μοντέλα,

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2 Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας Version 2 1 ΜΗ ΓΡΑΜΜΙΚΟΙ ΤΑΞΙΝΟΜΗΤΕΣ ΔΕΝΔΡΑ ΑΠΟΦΑΣΗΣ Πρόκειται για μια οικογένεια μη γραμμικών ταξινομητών Είναι συστήματα απόφασης πολλών σταδίων (multistage),

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων Εισαγωγή Επεξεργασία Ερωτήσεων ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήματος 1. Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασμός) 2. Προγραμματισμός (Σχεσιακή Άλγεβρα, SQL) ημιουργία/κατασκευή Εισαγωγή εδομένων

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

ΕΥΦΥΗΣ ΕΛΕΓΧΟΣ. Ενότητα #12: Εισαγωγή στα Nευρωνικά Δίκτυα. Αναστάσιος Ντούνης Τμήμα Μηχανικών Αυτοματισμού Τ.Ε.

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

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

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

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

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

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

Αναδρομή Ανάλυση Αλγορίθμων

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2

ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2 1 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2 Β. ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΚΑΙ ΕΡΕΥΝΑ 1. Γενικά Έννοιες.. 2 2. Πρακτικός Οδηγός Ανάλυσης εδοµένων.. 4 α. Οδηγός Λύσεων στο πλαίσιο

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

ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ

ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΤΕΧΝΙΚΕΣ ΕΡΕΥΝΑΣ (# 252) Ε ΕΞΑΜΗΝΟ 9 η ΕΙΣΗΓΗΣΗ ΣΗΜΕΙΩΣΕΙΣ ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΛΙΓΗ ΘΕΩΡΙΑ Στην προηγούμενη διάλεξη μάθαμε ότι υπάρχουν διάφορες μορφές έρευνας

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

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

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

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

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος xi 1 Αντικείμενα των Πιθανοτήτων και της Στατιστικής 1 1.1 Πιθανοτικά Πρότυπα και Αντικείμενο των Πιθανοτήτων, 1 1.2 Αντικείμενο της Στατιστικής, 3 1.3 Ο Ρόλος των Πιθανοτήτων

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

Εισαγωγή στην κοινωνική έρευνα. Earl Babbie. Κεφάλαιο 6. Δειγματοληψία 6-1

Εισαγωγή στην κοινωνική έρευνα. Earl Babbie. Κεφάλαιο 6. Δειγματοληψία 6-1 Εισαγωγή στην κοινωνική έρευνα Earl Babbie Κεφάλαιο 6 Δειγματοληψία 6-1 Σύνοψη κεφαλαίου Σύντομη ιστορία της δειγματοληψίας Μη πιθανοτική δειγματοληψία Θεωρία και λογική της πιθανοτικής Δειγματοληψίας

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

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

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

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 16η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται σε ύλη του βιβλίου Artificial Intelligence A Modern Approach των

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

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

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

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

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3 (ΨΥΧ-1202) Λεωνίδας Α. Ζαμπετάκης Β.Sc., M.Env.Eng., M.Ind.Eng., D.Eng. Εmail: statisticsuoc@gmail.com ιαλέξεις: ftp://ftp.soc.uoc.gr/psycho/zampetakis/ ιάλεξη 3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΨΥΧΟΛΟΓΙΑΣ Ρέθυμνο,

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

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης Μάθημα 6 ο Δρ. Ανέστης Γ. Χατζημιχαηλίδης Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Ανατολικής Μακεδονίας και Θράκης 2017-2018 Διευρυμένη Υπολογιστική Νοημοσύνη (ΥΝ) Επεκτάσεις της Κλασικής ΥΝ. Μεθοδολογίες

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

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

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

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

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

ΕΠΙΔΡΑΣΗ ΤΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΚΡΙΣΗΣ ΣΤΙΣ ΑΓΟΡΑΣΤΙΚΕΣ ΤΑΣΕΙΣ ΤΩΝ ΕΛΛΗΝΩΝ ΚΑΤΑΝΑΛΩΤΩΝ ΑΠΟ ΤΟ ΔΙΑΔΙΚΤΥΟ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ Πτυχιακή Εργασία ΕΠΙΔΡΑΣΗ ΤΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΚΡΙΣΗΣ ΣΤΙΣ ΑΓΟΡΑΣΤΙΚΕΣ ΤΑΣΕΙΣ ΤΩΝ ΕΛΛΗΝΩΝ ΚΑΤΑΝΑΛΩΤΩΝ ΑΠΟ ΤΟ ΔΙΑΔΙΚΤΥΟ Γκιπάλη Δώρα, A.M. 7795 Καρρά

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

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

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 18η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται: στο βιβλίο Machine Learning του T. Mitchell, McGraw- Hill, 1997,

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

Περί της Ταξινόμησης των Ειδών

Περί της Ταξινόμησης των Ειδών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Tel.: +30 2310998051, Ιστοσελίδα: http://users.auth.gr/theodoru Περί της Ταξινόμησης

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

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

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

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

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

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

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

Βασικά ζητήματα μιας βάσης δεδομένων

Βασικά ζητήματα μιας βάσης δεδομένων Τριαντάφυλλος Πριμηκύρης* Βασικά ζητήματα μιας βάσης δεδομένων Τι είναι μια βάση δεδομένων; Ας ξεκινήσουμε με κάτι πολύ απλό! Όλοι έχετε έναν τηλεφωνικό κατάλογο. Ο κατάλογος αυτός είναι μια χειροκίνητη

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