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

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

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

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΜΣ «ΜΑΘΗΜΑΤΙΚΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΤΩΝ ΑΠΟΦΑΣΕΩΝ» ΤΜΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕΤΑΠΤΥΧΙΑΚΟΥ ΔΙΠΛΩΜΑΤΟΣ ΕΙΔΙΚΕΥΣΗΣ ΘΕΜΑ ΣΥΓΚΡΙΣΗ ΜΕΘΟΔΩΝ ΔΗΜΙΟΥΡΓΙΑΣ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΚΑΝΟΝΕΣ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗΣ ΑΠΟ ΣΥΝΟΛΑ ΔΕΔΟΜΕΝΩΝ Τζετζούμης Ευάγγελος Α.Μ. 128 Επιβλέπων Καθηγητής: Ι. Χατζηλυγερούδης Αναπληρωτής Καθηγητής Πανεπιστημίου Πατρών Πάτρα, Οκτώβριος 2012

2 Ευχαριστίες Στον παρόν σημείο θα ήθελα να ευχαριστήσω τον καθηγητή μου, κ. Ι. Χατζηλυγερούδη, Αναπληρωτή Καθηγητή στο τμήμα Μηχανικών και Πληροφορικής του Πανεπιστημίου Πατρών, για την αμέριστη συμπαράσταση και υπομονή που έδειξε για την ολοκλήρωση της παρούσας εργασίας μου, χωρίς τη βοήθεια του οποίου θα την καθιστούσε δύσκολη. Επίσης θα ήθελα να ευχαριστήσω τον υποψήφιο διδακτορικό φοιτητή στο τμήμα Μηχανικών και Πληροφορικής του Πανεπιστημίου Πατρών, Κόβα Κωνσταντίνο, για την επίσης πολύτιμη βοήθειά του στο εργαλείο ACRES. 2

3 ΠΕΡΙΛΗΨΗ Σκοπός της παρούσας εργασίας είναι η σύγκριση διαφόρων μεθόδων κατηγοριοποίησης που στηρίζονται σε αναπαράσταση γνώσης με κανόνες μέσω της δημιουργίας έμπειρων συστημάτων από γνωστά σύνολα δεδομένων. Για την εφαρμογή των μεθόδων και τη δημιουργία και υλοποίηση των αντίστοιχων έμπειρων συστημάτων χρησιμοποιούμε διάφορα εργαλεία όπως: (α) Το ACRES, το οποίο είναι ένα εργαλείο αυτόματης παραγωγής έμπειρων συστημάτων με συντελεστές βεβαιότητας. Οι συντελεστές βεβαιότητος μπορούν να υπολογίζονται κατά δύο τρόπους και επίσης παράγονται δύο τύποι έμπειρων συστημάτων που στηρίζονται σε δύο διαφορετικές μεθόδους συνδυασμού των συντελεστών βεβαιότητας (κατά MYCIN και μιας γενίκευσης αυτής του MYCIN με χρήση βαρών που υπολογίζονται μέσω ενός γενετικού αλγορίθμου). (β) Το WEKA, το οποίο είναι ένα εργαλείο που περιέχει αλγόριθμους μηχανικής μάθησης. Συγκεκριμένα, στην εργασία χρησιμοποιούμε τον αλγόριθμο J48, μια υλοποίηση του γνωστού αλγορίθμου C4.5, που παράγει δένδρα απόφασης, δηλ. κανόνες. (γ) Το CLIPS, το οποίο είναι ένα κέλυφος για προγραμματισμό με κανόνες. Εδώ, εξάγονται οι κανόνες από το δέντρο απόφασης του WEKA και υλοποιούνται στο CLIPS με ενδεχόμενες μετατροπές. (δ) Το FuzzyCLIPS, το οποίο επίσης είναι ένα κέλυφος για την δημιουργία ασαφών ΕΣ. Είναι μια επέκταση του CLIPS που χρησιμοποιεί ασαφείς κανόνες και συντελεστές βεβαιότητος. Εδώ, το έμπειρο σύστημα που παράγεται μέσω του CLIPS μετατρέπεται σε ασαφές έμπειρο σύστημα με ασαφοποίηση κάποιων μεταβλητών. (ε) Το GUI Ant-Miner, το οποίο είναι ένα εργαλείο για την εξαγωγή κανόνων κατηγοριοποίησης από ένα δοσμένο σύνολο δεδομένων. με τη χρήση ενός μοντέλου ακολουθιακής κάλυψης, όπως ο αλγόριθμος AntMiner. Με βάση τις παραπάνω μεθόδους-εργαλεία δημιουργήθηκαν έμπειρα συστήματα από πέντε σύνολα δεδομένων κατηγοριοποίησης από τη βάση δεδομένων UCI Machine Learning Repository. Τα συστήματα αυτά αξιολογήθηκαν ως προς την ταξινόμηση με βάση γνωστές μετρικές (ορθότητα, ευαισθησία, εξειδίκευση και ακρίβεια). Από τη σύγκριση των μεθόδων και στα πέντε σύνολα δεδομένων, εξάγουμε τα παρακάτω συμπεράσματα: (α) Αν επιθυμούμε αποτελέσματα με μεγαλύτερη ακρίβεια και μεγάλη ταχύτητα, θα πρέπει μάλλον να στραφούμε στην εφαρμογή WEKA. (β) Αν θέλουμε να κάνουμε και παράλληλους υπολογισμούς, η μόνη εφαρμογή που μας παρέχει αυτή τη δυνατότητα είναι το FuzzyCLIPS, θυσιάζοντας όμως λίγη ταχύτητα και ακρίβεια. (γ) Όσον αφορά το GUI Ant-Miner, λειτουργεί τόσο καλά όσο και το WEKA όσον αφορά την ακρίβεια αλλά είναι πιο αργή μέθοδος. (δ) Σχετικά με το ACRES, λειτουργεί καλά όταν δουλεύουμε με υποσύνολα μεταβλητών, έτσι ώστε να παράγεται σχετικά μικρός αριθμός κανόνων και να καλύπτονται σχεδόν όλα τα στιγμιότυπα στο σύνολο έλεγχου. Στα σύνολα δεδομένων μας το ACRES δεν θεωρείται πολύ αξιόπιστο υπό την έννοια ότι αναγκαζόμαστε να δουλεύουμε με υποσύνολο μεταβλητών και όχι όλες τις μεταβλητές του συνόλου δεδομένων. Όσο πιο πολλές μεταβλητές πάρουμε ως υποσύνολο στο ACRES, τόσο πιο αργό γίνεται. Λέξεις κλειδιά: έμπειρα συστήματα, εξαγωγή κανόνων κατηγοριοποίησης, ακολουθιακή κάλυψη, συντελεστές βεβαιότητας, αυτόματη παραγωγή έμπειρων συστημάτων, αλγόριθμοι μηχανικής μάθησης. 3

4 ABSTRACT The aim of this thesis is the comparison of several classification methods that are based on knowledge representation with rules via the creation of expert systems from known data sets. For the application of those methods and the creation and implementation of the corresponding expert systems, we use various tools such as: (a) ACRES, which is a tool for automatic production of expert systems with certainty factors. The certainty factors can be calculated via two different methods and also two different types of expert systems can be produced based on different methods of certainty propagation (that of MYCIN and a generalized version of MYCIN one that uses weights calculated via a genetic algorithm). (b) WEKA, which is a tool that contains machine learning algorithms. Specifically, we use J48, an implementation of the known algorithm C4.5, which produces decision trees, which are coded rules. (c) CLIPS, which is a shell for rule based programming. Here, the rules encoded on the decision true produced by WEKA are extracted and codified in CLIPS with possible changes. (d) FuzzyCLIPS, which is a shell for creating fuzzy expert systems. It's an extension of CLIPS that uses fuzzy rules and certainty factors. Here, the expert system created via CLIPS is transferred to a fuzzy expert system by making some variables fuzzy. (e) GUI Ant-Miner, which is a tool for classification rules extraction from a given data set, using a sequential covering model, such as the AntMiner algorithm. Based on the above methods-tools, expert systems were created from five (5) classification data sets from the UCI Machine Learning Repository. Those systems have been evaluated according to their classification capabilities based on known metrics (accuracy, sensitivity, specificity and precision). From the comparison of the methods on the five data sets, we conclude the following: (a) if we want results with greater accuracy and high speed, we should probably turn into WEKA. (b) if we want to do parallel calculations too, the only tool that provides us this capability is FuzzyCLIPS, sacrificing little speed and accuracy. (c) With regards to GUI Ant-Miner, it works as well as WEKA in terms of accuracy, but it is slower. (d) About ACRES, it works well when we work with subsets of the variables, so that it produces a relatively small number or rules and covers almost all the instances of the test set. For our datasets, ACRES is not considered very reliable in the sense that we should work with subsets of variables, not all the variables of the dataset. The more variables we consider as a subset in ACRES, the slower it becomes. Keywords: expert systems, classification rule extraction, sequential covering, certainty factors, automatic creation of expert systems, machine learning algorithms. 4

5 Περιεχόμενα Εισαγωγή Έμπειρα Συστήματα (ΕΣ) και Τεχνητή Νοημοσύνη (ΤΝ) Ορισμός, Δομή και Λειτουργία των ΕΣ Συστήματα Βασισμένα σε Κανόνες Πλεονεκτήματα και Μειονεκτήματα των ΕΣ Εργαλεία Ανάπτυξης ΕΣ Κελύφη Δημιουργία Έμπειρων Συστημάτων από Δεδομένα Γενικά Μέθοδοι-Εργαλεία Εξαγωγής Κανόνων Δημιουργία-Αυτόματη Παραγωγή Έμπειρων Συστημάτων Το κέλυφος CLIPS Γενικά Συμβολικοί κανόνες CLIPS Ασαφείς Κανόνες FuzzyCLIPS To Εργαλείο WEKA Γενικά Προεπεξεργασία στο WEKA Κατηγοριοποίηση στο WEKA Ο αλγόριθμος J Το Εργαλείο GUI Ant-Miner Γενικά Ο αλγόριθμος AntMiner Το εργαλείο ACRES Γενικά Μέθοδοι Συνδυασμού Συντελεστών Βεβαιότητας Μέθοδος MYCIN Μέθοδος WEIGHTED Δημιουργία Έμπειρων Συστημάτων από δοσμένα σύνολα δεδομένων Γενικά Το σύνολο δεδομένων Car Evaluation Εφαρμογή WEKA Υλοποίηση σε CLIPS Εφαρμογή GUI Ant-Miner Εφαρμογή ACRES

6 7.2.5 Σύγκριση μεθόδων Σχολιασμός μετρικών Το σύνολο δεδομένων Pima Indians Diabetes Εφαρμογή WEKA Υλοποίηση σε CLIPS Υλοποίηση σε FuzzyCLIPS Εφαρμογή GUI Ant-Miner Εφαρμογή ACRES Σύγκριση μεθόδων Σχολιασμός μετρικών Το σύνολο δεδομένων Blood Transfusion Service Center Εφαρμογή WEKA Υλοποίηση σε CLIPS Υλοποίηση σε FuzzyCLIPS Εφαρμογή GUI Ant-Miner Εφαρμογή ACRES Σύγκριση μεθόδων Σχολιασμός μετρικών Το σύνολο δεδομένων Liver Disorders Εφαρμογή WEKA Υλοποίηση σε CLIPS Υλοποίηση σε FuzzyCLIPS Εφαρμογή GUI Ant-Miner Εφαρμογή ACRES Σύγκριση μεθόδων Σχολιασμός μετρικών Το σύνολο δεδομένων Statlog Heart Εφαρμογή WEKA Υλοποίηση σε CLIPS Υλοποίηση σε FuzzyCLIPS Εφαρμογή GUI Ant-Miner Εφαρμογή ACRES Σύγκριση μεθόδων Σχολιασμός μετρικών Γενικά Συμπεράσματα Παρατηρήσεις Βιβλιογραφικές Αναφορές και Ιστότοποι

7 7

8 Εισαγωγή Στην παρούσα εργασία ασχολούμαστε με την δημιουργία έμπειρων συστημάτων από δεδομένα. Χρησιμοποιούμε πέντε (5) σύνολα δεδομένων που λαμβάνονται από τη βάση δεδομένων UCI Machine Learning Repository ( Για την δημιουργία και υλοποίησή τους χρησιμοποιήσαμε διάφορα εργαλεία όπως, το ACRES, το οποίο είναι ένα εργαλείο αυτόματης παραγωγής έμπειρων συστημάτων με συντελεστές βεβαιότητας, το WEKA, το οποίο είναι ένα εργαλείο που περιέχει αλγόριθμους μηχανικής μάθησης, το CLIPS, το οποίο είναι ένα κέλυφος για προγραμματισμό με κανόνες, το FuzzyCLIPS, το οποίο επίσης είναι ένα κέλυφος για την δημιουργία ασαφών ΕΣ, και το GUI Ant- Miner, το οποίο είναι ένα εργαλείο για την εξαγωγή κανόνων κατηγοριοποίησης από σύνολο δεδομένων. με τη χρήση ενός μοντέλου ακολουθιακής κάλυψης, όπως ο αλγόριθμος AntMiner. Στο τέλος κάθε προβλήματος συγκρίνουμε τα παραπάνω συστήματα με βάση κάποιες μετρικές αξιολόγησης. Πριν ξεκινήσουμε με την ανάλυση του κάθε προβλήματος και των υλοποιήσεων των παραπάνω συστημάτων, αναλύουμε λίγο παραπάνω τους όρους και τα εργαλεία που προαναφέραμε, παραθέτοντας περισσότερες πληροφορίες για την προέλευση και τα χαρακτηριστικά τους. Έτσι, στο πρώτο κεφάλαιο αναλύουμε τη σχέση της Τεχνητής Νοημοσύνης με τα Έμπειρα Συστήματα, τον ορισμό, τη δομή και την λειτουργία των ΕΣ, καθώς επίσης τα πλεονεκτήματα και μειονεκτήματά τους και τα εργαλεία ανάπτυξής τους. Επίσης περιγράφουμε τα έμπειρα συστήματα που βασίζονται σε κανόνες και την δομή τους. Στο δεύτερο κεφάλαιο, αναφέρουμε τον τρόπο δημιουργίας έμπειρων συστημάτων από σύνολα δεδομένων, τις τεχνικές και τα εργαλεία με τα οποία εξάγουμε κανόνες και μερικά λόγια για την αυτόματη παραγωγή έμπειρων συστημάτων. Στη συνέχεια, και στα κεφάλαια 3, 4, 5 και 6, αναλύουμε τα εργαλεία που προαναφέραμε και που θα χρησιμοποιήσουμε, καθώς επίσης και τις δυνατότητες αυτών. Στο κεφάλαιο 7, περιγράφουμε αναλυτικά το κάθε πρόβλημα και την διαδικασία που ακολουθούμε προκειμένου να δημιουργήσουμε το έμπειρο σύστημα. Παραθέτουμε τις μετρικές που προκύπτουν και συγκρίνουμε κάθε φορά τις μεθόδους. Τέλος, αναφέρουμε παρατηρήσεις και γενικά συμπεράσματα που προκύπτουν και από τα πέντε σύνολα δεδομένων όσον αφορά και τις επιμέρους συγκρίσεις των μεθόδων και τις τιμές των μετρικών τους. 8

9 1. Έμπειρα Συστήματα (ΕΣ) και Τεχνητή Νοημοσύνη (ΤΝ) 1.1. Ορισμός, Δομή και Λειτουργία των ΕΣ Εισαγωγή στα ΕΣ Ορισμός των ΕΣ Τα έμπειρα συστήματα είναι ένα προϊόν της ΤΝ. Άρχισαν να αναδύονται ως πανεπιστημιακά ερευνητικά συστήματα στις αρχές του Έχουν γίνει τώρα μια από τις σημαντικότερες καινοτομίες της ΤΝ αφού έχουν αποδειχθεί ότι είναι επιτυχημένα εμπορικά προϊόντα καθώς και ενδιαφέροντα ερευνητικά εργαλεία. Τα έμπειρα συστήματα έχουν αποδειχθεί ότι είναι αποτελεσματικά σε ορισμένα πεδία προβλημάτων. Οι περιοχές εφαρμογών τους είναι σχεδόν ανεξάντλητες. Όπου η ανθρώπινη τεχνογνωσία χρειάζεται για να επιλύσει προβλήματα, τα έμπειρα συστήματα είναι πιθανοί υποψήφιοι για εφαρμογή. Τα πεδία εφαρμογών περιλαμβάνουν το δίκαιο, τη χημεία, βιολογία, μηχανική, κατασκευές, αεροδιαστημική, στρατιωτικές επεμβάσεις, οικονομικά, τράπεζες, μετεωρολογία, γεωλογία, γεωφυσική, και άλλα. Ο κατάλογος είναι μακρύς και συνεχίζεται. Τα έμπειρα συστήματα είναι προγράμματα τα οποία επιδεικνύουν νοήμονα συμπεριφορά σε συγκεκριμένους τομείς και διαδικασίες, ανάλογη ενός ανθρώπου εμπειρογνώμονα με ειδικότητα σε κάποιο τομέα (Βλαχάβας κ.α., 2006). Ένα έμπειρο σύστημα είναι ένα πρόγραμμα υπολογιστή το οποίο κωδικοποιεί και χειρίζεται τη γνώση και τη συλλογιστική που υπάρχει για έναν εξειδικευμένο τομέα με σκοπό την επίλυση προβλημάτων ή/και την παροχή συμβουλών στον εν λόγω τομέα (Durkin, 1994). Ο καθηγητής του Πανεπιστημίου του Stanford Edward Feigenbaum, πρωτοπόρος της τεχνολογίας των έμπειρων συστημάτων, έχει ορίσει ένα έμπειρο σύστημα ως ένα ευφυές πρόγραμμα υπολογιστή που χρησιμοποιεί γνώση και μηχανισμούς εξαγωγής συμπερασμάτων για να επιλύει προβλήματα τα οποία είναι δύσκολα και μπορεί να απαιτούν σημαντική ανθρώπινη εμπειρογνωμοσύνη για τη λύση τους. Δηλαδή, ένα έμπειρο σύστημα είναι ένα υπολογιστικό σύστημα που εξομοιώνει την ικανότητα λήψης αποφάσεων ενός ανθρώπου εμπειρογνώμονα Οι όροι έμπειρο σύστημα, σύστημα βασισμένο στη γνώση (knowledge-based system) χρησιμοποιούνται συχνά ως συνώνυμοι. Οι περισσότεροι άνθρωποι χρησιμοποιούν τον όρο έμπειρο σύστημα απλά επειδή είναι συντομότερος, αν και μπορεί να μην υπάρχει εμπειρογνωμοσύνη στο έμπειρο σύστημά τους, αλλά απλά μόνο γενική γνώση. Τα συστήματα αυτά είναι αποτέλεσμα της προσπάθειας του ανθρώπου να αυτοματοποιήσει την επεξεργασία εξειδικευμένης γνώσης που εμφανίζεται σε διάφορες εφαρμογές της καθημερινής του ζωής. Δομή και Λειτουργία των ΕΣ Η δομή ενός ΕΣ απεικονίζεται στο Σχήμα 1.1 (από το βιβλίο των Βλαχάβα κ.ά. [2]). Ένα έμπειρο σύστημα αποτελείται από τον πυρήνα του συστήματος και ένα σύνολο βοηθητικών προγραμμάτων. 9

10 Ο πυρήνας του έμπειρου συστήματος αποτελείται από δύο μέρη: τη βάση γνώσης (knowledge base) και τον μηχανισμό εξαγωγής συμπερασμάτων (inference engine). Αυτός ο πλήρης διαχωρισμός της γνώσης του συστήματος από το μηχανισμό χειρισμού της είναι βασικό χαρακτηριστικό των έμπειρων συστημάτων. Προσφέρει διαφάνεια στον προγραμματισμό του συστήματος και ευκολία προσθήκης, αφαίρεσης και τροποποίησης της γνώσης. Ο πυρήνας του έμπειρου συστήματος αναπτύσσεται συνήθως σε ένα προγραμματιστικό περιβάλλον ανάπτυξης υψηλού επιπέδου, το οποίο μπορεί να είναι είτε μια γλώσσα προγραμματισμού ή κάποιο εργαλείο εξειδικευμένο για την ανάπτυξη έμπειρων συστημάτων. Τα βοηθητικά προγράμματα που συνοδεύουν το έμπειρο σύστημα χρησιμεύουν συνήθως για τη διασύνδεση και επικοινωνία του συστήματος με το χρήστη, για το χειρισμό εξωτερικών βάσεων δεδομένων, για τη συνεργασία με περιφερειακά μηχανήματα. Ο συνδυασμός αυτών των βοηθητικών προγραμμάτων με το μηχανισμό εξαγωγής συμπερασμάτων αποτελεί ένα εργαλείο ανάπτυξης έμπειρων συστημάτων που αναφέρεται συνήθως ως κέλυφος έμπειρων συστημάτων (expert system shell). Χρήστης Διασύνδεση Βοηθητικά Προγράμματα Επεξήγηση Πυρήνας Μηχανισμός Εξαγωγής Συμπερασμάτων Διερμηνέας Βάση Γνώσης Χρονοπρογραμματιστής Κέλυφος Στατική Δυναμική Σχήμα 1.1: Δομή Έμπειρου Συστήματος [2] Βάση Γνώσης Περιέχει όλη την εμπειρογνωμοσύνη του συστήματος, όπως την εκμαίευσε ο μηχανικός γνώσης από τον άνθρωπο εμπειρογνώμονα κατά την διαδικασία ανάπτυξης του έμπειρου συστήματος. Υπάρχουν διάφορες μορφές αναπαράστασης γνώσης, όπως π.χ. κανόνες, πλαίσια κλπ. Αποτελείται από δύο μέρη: 10

11 Το πρώτο μέρος είναι η στατική βάση γνώσης η οποία περιέχει τα αρχικά δεδομένα του προβλήματος και τις διαδικασίες επίλυσής του. Το τμήμα αυτό δεν μεταβάλλεται κατά την διάρκεια εκτέλεσης του προγράμματος. Το δεύτερο μέρος είναι η δυναμική βάση γνώσης ή μνήμη εργασίας (working memory). Αποτελεί το δυναμικό κομμάτι της γνώσης που χρειάζεται για την επίλυση κάποιου προβλήματος, αφού μεταβάλλεται κατά την εκτέλεση του έμπειρου συστήματος και μπορεί να περιλαμβάνει ενδιάμεσα αποτελέσματα, τα οποία δημιουργούνται κατά την εκτέλεση του προγράμματος, καθώς και την τελική προτεινόμενη λύση. Μηχανισμός Εξαγωγής Συμπερασμάτων Είναι το τμήμα του πυρήνα που έχει να κάνει με το χειρισμό της βάσης γνώσης και την εξαγωγή συμπερασμάτων από αυτήν. Η δομή του εξαρτάται από την οργάνωση και τον τρόπο αναπαράστασης της γνώσης. Χωρίζεται σε δύο μέρη, τον διερμηνέα (interpreter) και το χρονοπρογραμματιστή (scheduler). Ο διερμηνέας είναι το τμήμα της μηχανής εξαγωγής συμπερασμάτων που ασχολείται με το χειρισμό της υπάρχουσας γνώσης και την παραγωγή νέας, μέσω τεχνικών ταυτοποίησης προτύπου (pattern matching). Ο χρονοπρογραμματιστής είναι το τμήμα της μηχανής εξαγωγής συμπερασμάτων, υπεύθυνο για την επίλυση προβλημάτων σύγκρουσης (conflict) των κανόνων μεταξύ τους. Δύο ή περισσότεροι κανόνες συγκρούονται όταν ικανοποιούνται ταυτόχρονα οι συνθήκες τους. Στην περίπτωση αυτή, επιλέγεται, με βάση κάποια κριτήρια, ένας από τους υποψήφιους κανόνες και εκτελείται. Ο χρονοπρογραμματιστής επομένως αποφασίζει στην ουσία για το πότε και με ποια σειρά θα χρησιμοποιηθούν τα δεδομένα της βάσης γνώσης. Εκτός από τις συνηθισμένες στρατηγικές επίλυσης συγκρούσεων, μπορεί να χρησιμοποιούνται και μετα-κανόνες, οι οποίοι αποφασίζουν ποιοι κανόνες θα επιλεγούν βάσει της τρέχουσας κατάστασης της μνήμης εργασίας. Διασύνδεση Ο όρος αναφέρεται, κατά κύριο λόγο, στην διασύνδεση με το χρήστη (user interface), το τμήμα του συστήματος, δηλαδή, που είναι υπεύθυνο για την παροχή ενός φιλικού και εύχρηστου περιβάλλοντος στον τελικό χρήστη. Το τμήμα αυτό αποτελείται από δύο επιμέρους τμήματα: Τη μονάδα επεξήγησης (explanation facility) όπου το έμπειρο σύστημα συνήθως κάνει ερωτήσεις προς το χρήστη οι οποίες δίνονται σε παράθυρα, προκειμένου να αντλήσει κάποια δεδομένα, για να εξάγει συμπεράσματα. Ο τελικός χρήστης (end-user), ο οποίος δεν είναι απαραίτητα γνώστης του αντικειμένου του συστήματος, πρέπει να μπορεί να απαντήσει εύκολα στις ερωτήσεις, συνήθως επιλέγοντας από λίστες προκαθορισμένων απαντήσεων. Ο χρήστης μπορεί ακόμα, μέσω της διασύνδεσης, να κάνει κάποιες ερωτήσεις στο έμπειρο σύστημα σχετικά με τους σκοπούς των ερωτήσεων ή και την πορεία του συλλογισμού και να βλέπει τις αντίστοιχες απαντήσεις. Τη μονάδα απόκτησης γνώσης (knowledge acquisition facility) που απευθύνεται στον ειδικό που παρείχε τη γνώση στο σύστημα ή στο μηχανικό της γνώσης που δημιούργησε 11

12 το σύστημα, έτσι ώστε να προστεθεί νέα γνώση στο σύστημα ή να μεταβληθεί η ήδη υπάρχουσα. Η νέα γνώση πρέπει να ελεγχθεί ως προς τη συμβατότητά της με την ήδη υπάρχουσα (consistency check). Η διαδικασία αυτή εκτελείται αυτόματα από το σύστημα. Μηχανισμός Επεξήγησης Ο μηχανισμός επεξήγησης ονομάζεται και διαφάνεια (transparency) του προγράμματος, επειδή ο χρήστης μπορεί ανά πάσα στιγμή να γνωρίζει τι κάνει το πρόγραμμα και γιατί. Ο μηχανισμός επεξήγησης αλληλεπιδρά με το μηχανισμό εξαγωγής συμπερασμάτων, επειδή η πορεία της συλλογιστικής του συστήματος γνώσης συνδέεται άμεσα με τον τρόπο εκτέλεσης των κανόνων. Ο μηχανισμός επεξήγησης συνήθως είναι σε θέση να απαντά σε δύο τύπου ερωτήματα. Το πρώτο είναι το πώς (how) κατέληξε σε ένα συμπέρασμα και το δεύτερο είναι το γιατί (why) ζητά κάποια πληροφορία από το χρήστη. Για να απαντήσει στο ερώτημα πώς, ο μηχανισμός επεξήγησης κρατάει πληροφορίες σχετικά με την αποδεικτική διαδικασία και παραθέτει τους κανόνες που ενεργοποιήθηκαν σε κάθε κύκλο λειτουργίας του έμπειρου συστήματος και οδήγησαν στην απόδειξη της τρέχουσας απάντησης. Για να απαντήσει στην ερώτηση γιατί, ψάχνει να βρει τους κανόνες που έχουν στην υπόθεσή τους την τρέχουσα πληροφορία και μπορεί να επιστρέψει όλη την κατοπινή αλυσίδα συλλογισμών που θα προκαλέσει η ενεργοποίηση αυτών των κανόνων [2]. Άτομα που εμπλέκονται στην ανάπτυξη ενός ΕΣ Στο Σχήμα 1.2 απεικονίζονται οι κατηγορίες των ανθρώπων που εμπλέκονται σε ένα ΕΣ. Οι κατηγορίες αυτές είναι οι εξής: Εμπειρογνώμονας (domain expert) Ένας εμπειρογνώμονας είναι ένα πρόσωπο που διαθέτει ικανότητες και γνώσεις για να λύσει ένα συγκεκριμένο πρόβλημα κατά τρόπο ανώτερο από άλλους (Durkin, 1994). Ένας εμπειρογνώμονας πρέπει να έχει ειδική γνώση στο τομέα του, καλές δεξιότητες επικοινωνίας, διαθεσιμότητα και προθυμία να συνεργαστεί. Μηχανικός Γνώσης (knowledge engineer) Ένας μηχανικός γνώσης είναι ένα πρόσωπο που σχεδιάζει, κατασκευάζει και δοκιμάζει ένα ΕΣ (Durkin, 1994). Ένας μηχανικός γνώσης διαδραματίζει βασικό ρόλο στον εντοπισμό, απόκτηση και κωδικοποίηση της γνώσης. Τελικός χρήστης (end-user) Οι τελικοί χρήστες είναι τα πρόσωπα που θα χρησιμοποιήσουν το ΕΣ. Η ορθότητα, η χρηστικότητα και η σαφήνεια είναι σημαντικά χαρακτηριστικά του ΕΣ για έναν τελικό χρήστη. 12

13 Εμπειρογνώμων Μηχανικός γνώσης ΕΣ Τελικός χρήστης Σχήμα 1.2: Κατηγορίες ανθρώπων που εμπλέκονται στην κατασκευή ΕΣ [18] 1.2. Συστήματα Βασισμένα σε Κανόνες Σε ένα σύστημα βασισμένο σε κανόνες (rule-based system) η βάση γνώσης περιέχει την γνώση του τομέα που απαιτείται για να λύσει προβλήματα, κωδικοποιημένη με τη μορφή κανόνων. Καθώς οι κανόνες είναι ένα δημοφιλής τρόπος αναπαράστασης γνώσης, άλλοι τύποι έμπειρων συστημάτων χρησιμοποιούν διαφορετικούς τρόπους αναπαράστασης γνώσης. Ένα σύστημα βασισμένο σε κανόνες αποτελείται από τα εξής τμήματα (όπως φαίνεται στο Σχήμα 1.3.): διασύνδεση χρήστη (user interface) ο μηχανισμός με τον οποίο επικοινωνούν ο χρήστης και το έμπειρο σύστημα. μονάδα επεξήγησης (explanation facility) εξηγεί τη συλλογιστική του συστήματος σε ένα χρήστη. μνήμη εργασίας (working memory) μια γενική βάση δεδομένων από γεγονότα που χρησιμοποιείται από τους κανόνες. μηχανισμός εξαγωγής συμπερασμάτων (inference engine) εξάγει συμπεράσματα αποφασίζοντας ποιοί κανόνες ικανοποιούνται από γεγονότα, βάζει σε προτεραιότητα τους κανόνες που ικανοποιούνται, και εκτελεί τον κανόνα με την υψηλότερη προτεραιότητα. ατζέντα (agenda) μια λίστα προτεραιότητας των κανόνων που δημιουργείται από τον μηχανισμό εξαγωγής συμπερασμάτων, των οποίων τα πρότυπα ικανοποιούνται από γεγονότα στην μνήμη εργασίας. μονάδα απόκτησης γνώσης (knowledge acquisition facility) ένας αυτόματος τρόπος για το χρήστη να εισάγει γνώση στο σύστημα αντί του να έχει το μηχανικό γνώσης που άμεσα κωδικοποιεί τη γνώση. 13

14 ΒΑΣΗ ΓΝΩΣΗΣ ΜΗΧΑΝΙΣΜΟΣ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΜΝΗΜΗ ΕΡΓΑΣΙΑΣ (ΚΑΝΟΝΕΣ) ΑΤΖΕΝΤΑ (ΓΕΓΟΝΟΤΑ) ΜΟΝΑΔΑ ΕΠΕΞΗΓΗΣΗΣ ΜΟΝΑΔΑ ΑΠΟΚΤΗΣΗΣ ΓΝΩΣΗΣ ΔΙΑΣΥΝΔΕΣΗ ΧΡΗΣΤΗ Σχήμα 1.3: Δομή ενός Έμπειρου Συστήματος Βασισμένου σε Κανόνες [1] Η βάση γνώσης καλείται επίσης και μνήμη παραγωγής σε ένα σύστημα βασισμένο σε κανόνες. Οι κανόνες παραγωγής (production rules) είναι της μορφής IF THEN. Κάθε κανόνας καθορίζεται με ένα όνομα, και ακολουθεί το μέρος IF του κανόνα. Το τμήμα ανάμεσα στα IF και THEN καλείται υπόθεση (condition) ή αριστερό μέρος (left-hand-side LHS) του κανόνα και το τμήμα μετά το THEN είναι μια λίστα ενεργειών (actions) προς εκτέλεση όταν ο κανόνας πυροδοτείται και καλείται συμπέρασμα (consequent) ή δεξιό μέρος (right-hand-side RHS) του κανόνα. Σε ένα σύστημα βασισμένο σε κανόνες, ο μηχανισμός εξαγωγής συμπερασμάτων καθορίζει ποιες υποθέσεις κανόνων ικανοποιούνται από τα γεγονότα. Δύο γενικές μέθοδοι εξαγωγής συμπερασμάτων χρησιμοποιούνται συνήθως ως οι στρατηγικές επίλυσης προβλημάτων των έμπειρων συστημάτων: η ορθή αλυσίδωση (forward chaining) και η ανάστροφη αλυσίδωση (backward chaining). Στην ορθή αλυσίδωση, η μηχανή εξαγωγής συμπερασμάτων ξεκινά από τις υποθέσεις ενός κανόνα και αν είναι αληθείς προχωρά στην εξαγωγή του συμπεράσματός του. Στην ανάστροφη αλυσίδωση, η μηχανή εξαγωγής συμπερασμάτων ξεκινά από το 14

15 συμπέρασμα ενός κανόνα που ταιριάζει με το στόχο που θέλουμε να συμπεράνουμε και προχωρά στην διερεύνηση της αλήθειας των υποθέσεων. Ανάλογα με τον σχεδιασμό μια μηχανή εξαγωγής συμπερασμάτων θα κάνει είτε ορθή είτε ανάστροφη αλυσίδωση. Για παράδειγμα, τα συστήματα OPS5 και CLIPS ακολουθούν ορθή αλυσίδωση ενώ το EMYCIN εκτελεί ανάστροφη αλυσίδωση. Η διαδικασία εξαγωγής συμπερασμάτων γίνεται ως εξής: 1. Αρχικοποίηση της μνήμης εργασίας 2. Εύρεση κανόνων που ικανοποιούνται (σύνολο σύγκρουσης) 3. Επιλογή ενός κανόνα 4. Εκτίμηση του κανόνα 5. Ενημέρωση της βάσης γνώσης 6. Αν κατάσταση λύσης, σταμάτα Αλλιώς, πήγαινε στο βήμα Πλεονεκτήματα και Μειονεκτήματα των ΕΣ Πλεονεκτήματα των ΕΣ Αυξημένη διαθεσιμότητα. Η δημιουργία πολλαπλών αντιγράφων ενός έμπειρου συστήματος είναι εύκολη και φθηνή διαδικασία. Καθίσταται λοιπόν δυνατή η αυξημένη διαθεσιμότητα της εμπειρογνωμοσύνης, Αντίθετα, ο άνθρωπος εμπειρογνώμονας χρειάζεται εκπαίδευση από άλλον ειδικό, διαδικασία η οποία είναι ακριβή και χρονοβόρα. Μειωμένο κόστος. Το κόστος παροχής εμπειρογνωμοσύνης ανά χρήστη μειώνεται σε μεγάλο βαθμό. Μειωμένος κίνδυνος. Τα έμπειρα συστήματα μπορούν να χρησιμοποιηθούν σε περιβάλλοντα που πιθανόν να είναι επικίνδυνα για έναν άνθρωπο. Μονιμότητα. Η εμπειρογνωμοσύνη είναι μόνιμη. Σε αντίθεση με τους ανθρώπους εμπειρογνώμονες, οι οποίοι μπορεί να συνταξιοδοτηθούν, να σταματήσουν ή να πεθάνουν, η γνώση του έμπειρου συστήματος θα διαρκέσει πάντα. Πολλαπλή εμπειρογνωμοσύνη. Πολλοί εμπειρογνώμονες μπορούν να διατεθούν για να εργάζονται ταυτόχρονα και συνεχώς σε ένα πρόβλημα οποιαδήποτε στιγμή της ημέρας η της νύχτας. Το επίπεδο εμπειρογνωμοσύνης που συνδυάζεται από πολλούς εμπειρογνώμονες δύναται να υπερβεί αυτό ενός απλού ανθρώπου εμπειρογνώμονα. Αυξημένη αξιοπιστία. Τα έμπειρα συστήματα αυξάνουν την πεποίθηση ότι πάρθηκε η σωστή απόφαση παρέχοντας μια δεύτερη γνώμη σε έναν άνθρωπο εμπειρογνώμονα ή να βρει μια χρυσή τομή σε περίπτωση διαφωνιών από πολλούς ανθρώπους εμπειρογνώμονες. Φυσικά, αυτή η μέθοδος κατά πάσα πιθανότητα δεν θα λειτουργήσει αν το έμπειρο σύστημα προγραμματίστηκε από έναν από τους εμπειρογνώμονες. Το έμπειρο σύστημα πρέπει πάντα να συμφωνεί με τον εμπειρογνώμονα, εκτός αν έγινε λάθος από τον εμπειρογνώμονα. Ωστόσο, αυτό μπορεί να συμβεί αν ο άνθρωπος εμπειρογνώμονας κουράστηκε ή βρίσκεται κάτω από πίεση. 15

16 Άμεση λεπτομερής επεξήγηση. Το έμπειρο σύστημα μπορεί άμεσα να εξηγήσει λεπτομερώς το συλλογισμό που οδήγησε σε κάποιο συμπέρασμα. Ένας άνθρωπος μπορεί να είναι υπερβολικά κουρασμένος, απρόθυμος ή να μην είναι σε θέση να το κάνει αυτό όλη την ώρα. Αυτό αυξάνει την πεποίθηση ότι λαμβάνεται η σωστή απόφαση. Γρήγορη απόκριση. Η γρήγορη (ή σε πραγματικό χρόνο) απόκριση ενδέχεται να απαιτείται για ορισμένες εφαρμογές. Ανάλογα με το λογισμικό και το υλικό που χρησιμοποιείται, ένα έμπειρο σύστημα μπορεί να ανταποκρίνεται ταχύτερα και να είναι περισσότερο διαθέσιμο από έναν άνθρωπο εμπειρογνώμονα. Ορισμένες καταστάσεις έκτατης ανάγκης μπορεί να απαιτούν απαντήσεις ταχύτερα από έναν άνθρωπο και έτσι ένα έμπειρο σύστημα σε πραγματικό χρόνο είναι μια καλή επιλογή. Σταθερή, χωρίς συναισθηματισμούς και ολοκληρωμένη απάντηση ανά πάσα στιγμή. Αυτό μπορεί να είναι πολύ σημαντικό σε πραγματικό χρόνο και σε έκτακτες καταστάσεις, όταν ένας άνθρωπος εμπειρογνώμονας ενδεχομένως να μην λειτουργεί με την μέγιστη απόδοση εξαιτίας άγχους ή κόπωσης. [1], [2], [5], [6], [18] Μειονεκτήματα των ΕΣ Έλλειψη κοινής λογικής. Οι ειδικοί συνδυάζουν πολλές φορές μαζί με την γνώση και την εμπειρία τους, σοφία ή κοινή λογική για την αποδοχή ή απόρριψη λύσεων. Τα ΕΣ μπορούν μεν να δικαιολογήσουν τις λύσεις που προτείνουν αλλά δεν μπορούν να τις αξιολογήσουν. Έλλειψη Δημιουργικότητας. Οι άνθρωποι μπορούν να αντιδρούν δημιουργικά (αν και μερικές φορές λανθασμένα) σε αναπάντεχες και ασυνήθιστες καταστάσεις. Έλλειψη Εκμάθησης. Οι άνθρωποι μπορούν να προσαρμόζονται σε περιβάλλοντα που αλλάζουν συνεχώς μέσω της επικοινωνίας με το περιβάλλον και της εκμάθησης. Πρέπει να προγραμματιστούν για να μαθαίνουν αυτόματα. Χρειάζεται ειδικό προσωπικό για την εγκατάσταση και συντήρηση ενός συστήματος. Έλλειψη μετα-γνώσης. Ένας εμπειρογνώμονας γνωρίζει τα όρια των δυνατοτήτων του. Τα έμπειρα συστήματα πάσχουν από έλλειψη μετα-γνώσης, τη γνώση δηλαδή των δυνατοτήτων του και των καταστάσεων τις οποίες μπορεί να αντιμετωπίσει. Απουσία ελέγχου της γνώσης. Τα περισσότερα έμπειρα συστήματα δεν εκτελούν έλεγχο της λογικής ορθότητας, πληρότητας και συνέπειας της γνώσης την οποία τροφοδοτούνται. Αντίθετα, ο εμπειρογνώμονας μπορεί να το κάνει αυτό, έστω και εμπειρικά, ή ακόμα και υποσυνείδητα. Έλλειψη αισθήσεων. Η δυνατότητα αίσθησης του περιβάλλοντος και η πολλαπλή ανάκτηση πληροφοριών μέσω των αισθητήριων οργάνων επιτρέπει στους ανθρώπους μια συνεχή ανανέωση της γνώσης. Τα έμπειρα συστήματα περιορίζονται στην εισαγωγή της γνώσης μέσω της συμβολικής της αναπαράστασης. [1], [2], [5], [6], [18] 16

17 1.4. Εργαλεία Ανάπτυξης ΕΣ Κελύφη Διάφορες γλώσσες προγραμματισμού έχουν αναπτυχθεί επηρεασμένες από τον τρόπο σκέψης της τεχνητής νοημοσύνης. Οι γλώσσες αυτές (που αναφέρονται ως γλώσσες 5ης γενιάς) έχουν χρησιμοποιηθεί για την ανάπτυξη ΕΣ, χωρίς αυτό να σημαίνει ότι οι συμβατικές γλώσσες προγραμματισμού δεν μπορούν να χρησιμοποιηθούν για τον ίδιο λόγο. Παρακάτω περιγράφονται συνοπτικά τα βασικά εργαλεία που μπορούν να χρησιμοποιηθούν για την ανάπτυξη ενός ΕΣ (Σχήμα 1.4.). Συμβατικές γλώσσες προγραμματισμού Αρκετά ΕΣ έχουν αναπτυχθεί σε συμβατικές γλώσσες προγραμματισμού όπως οι BASIC, PASCAL, C/C++, η FORTRAN, JAVA. Τα πλεονεκτήματα της μεθόδου αυτής είναι: (α) ταχύτερη εκτέλεση των προγραμμάτων στον Η/Υ και (β) ευκολότερη διασύνδεση με υπάρχον λογισμικό, όπως βάσεις δεδομένων και άλλα βοηθητικά προγράμματα, αν αυτό είναι απαραίτητο, γι αυτό και χρησιμοποιούνται αρκετά σήμερα για την κατασκευή ΕΣ. Από την άλλη μεριά, ωστόσο, η προσέγγιση αυτή χαρακτηρίζεται από τα παρακάτω μειονεκτήματα: (α) το περιορισμένο αριθμό τύπων δεδομένων που υποστηρίζονται και (β) δεν παρέχεται η δυνατότητα του garbage collector (δηλ. η απελευθέρωση της μνήμης από δεδομένα που δεν χρειάζονται). Αντίθετα οι γλώσσες 5ης γενιάς (ή γλώσσες λογικού προγραμματισμού ή συμβολικές γλώσσες), όπως οι LISP (συναρτησιακός προγραμματισμός), PROLOG (λογικός προγραμματισμός) και OPS5 (προγραμματισμός με κανόνες παραγωγής) είναι προσανατολισμένες στη χρήση συμβόλων και παρέχουν εξελιγμένους μηχανισμούς χειρισμού συμβολικών εκφράσεων και λιστών, μεταβλητές χωρίς προκαθορισμένο τύπο, αυτόματη διαχείριση μνήμης και ευέλικτες δομές ελέγχου. Οι γλώσσες αυτές είναι ευκολότερες στην εκμάθηση από τα εργαλεία τεχνολογίας γνώσης, γιατί υποστηρίζουν ένα μόνο τρόπο αναπαράστασης γνώσης και συλλογιστικής. Επίσης άλλες γλώσσες 5ης γενιάς που χρησιμοποιούν αντικειμενοστρεφή προγραμματισμό είναι οι SMALLTALK, LOOPS, FLAVORS, CLOS και η COOL. Κελύφη Τα κελύφη των ΕΣ (expert system shells) προήλθαν από υπάρχοντα έμπειρα συστήματα, με αφαίρεση της βάσης γνώσης τους. Ονομάζονται έτσι γιατί ουσιαστικά αποτελούν ΕΣ χωρίς τη βάση γνώσης, δηλαδή μπορεί να παρομοιαστούν ως περιβλήματα (κελύφη) μιας βάσης γνώσης. Έχουν περιορισμένες δυνατότητες αναπαράστασης της γνώσης και πολύ μικρή ευελιξία, καθώς είναι κατασκευασμένα για πολύ συγκεκριμένες εφαρμογές. Η παρουσία του μηχανικού γνώσης είναι απαραίτητη για τη φάση κατασκευής, δεν ισχύει το ίδιο όμως για τη λειτουργία του συστήματος, όπου χρησιμοποιείται η γνώση του ειδικού, και δεν απαιτείται αναγκαστικά η παρουσία του ίδιου. Σε πολύ απλές εφαρμογές μάλιστα, το μόνο απαιτούμενο είναι η εισαγωγή των υποθέσεων που ισχύουν. Τα περισσότερα κελύφη έχουν χαμηλές τιμές αγοράς και είναι πιο εύχρηστα από τις γλώσσες, αλλά η σχεδίαση τους είναι πιο περίπλοκη. 17

18 Το CLIPS είναι το ευρέως γνωστό κέλυφος δημιουργίας ΕΣ. Υπάρχουν διάφορες εκδόσεις του CLIPS, όπως το DYNACLIPS, το AGENT_CLIPS και το FuzzyCLIPS που είναι μια επέκταση του CLIPS με δυνατότητα αναπαράστασης και διαχείρισης ασαφούς γνώσης. Στη συνέχεια θα περιγράψουμε πιο λεπτομερώς τα κελύφη CLIPS και FuzzyCLIPS, τα οποία και χρησιμοποιούμε για τη δημιουργία των ΕΣ. Εργαλεία Ανάπτυξης Έμπειρων Συστημάτων Γλώσσες Προγραμματισμού Κελύφη Έμπειρων Συστημάτων Συμβατικές Συμβολικές ή ΤΝ Απλά Εξελιγμένα Pascal C Basic Fortran Prolog Lisp Smalltalk OPS5 EMYCIN KAS EXPERT S1 M4 Personal Consultant ART KEE NEXPERT Flex CLIPS Mike Knowledge Craft Σχήμα 1.4: Εργαλεία ανάπτυξης Έμπειρων Συστημάτων [2] 18

19 2. Δημιουργία Έμπειρων Συστημάτων από Δεδομένα 2.1. Γενικά Όπως προαναφέραμε, η απόκτηση γνώσης για την δημιουργία ενός ΕΣ γίνεται και από ένα σύνολο δεδομένων (data set). Τα σύνολα δεδομένων βρίσκονται καταχωρημένα σε βάσεις δεδομένων στο Internet, όπως η βάση UCI Machine Learning Repository, στην οποία βασιστήκαμε και εμείς, και αναφέρονται στην κατηγοριοποίηση ή αλλιώς ταξινόμηση (classification). Θεωρούμε ότι ένα τέτοιο σύνολο αποτελείται από Ν στιγμιότυπα. Κάθε στιγμιότυπο είναι ένα σύνολο τιμών για τις παραμέτρους εισόδου και την παράμετρο εξόδου. Στην παραπάνω βάση τα σύνολα δεδομένων δίνονται με δύο αρχεία. Το ένα (κατάληξη.names) περιγράφει το πεδίο που αφορά το σύνολο δεδομένων και δίνει πληροφορίες για τις παραμέτρους εισόδου και τις κλάσεις εξόδου. Το άλλο (κατάληξη.data) είναι το πραγματικό σύνολο δεδομένων. Ένα σύνολο δεδομένων μπορεί να χρειαστεί επεξεργασία πριν την χρησιμοποίησή του. Π.χ. μπορεί να υπάρχουν στιγμιότυπα με ελλιπείς τιμές. Μερικές λύσεις για το πρόβλημα αυτό είναι: διαγραφή των στιγμιοτύπων που δεν περιέχουν όλες τις τιμές. αντικατάσταση των ελλιπών δεδομένων με τη διάμεσο ή τη μέση τιμή του αντίστοιχου χαρακτηριστικού. αντικατάσταση των ελλιπών δεδομένων με την διάμεσο ή τη μέση τιμή του αντίστοιχου χαρακτηριστικού αν λάβουμε υπόψη τα στιγμιότυπα της ίδιας κλάσης. αντικατάσταση των ελλιπών δεδομένων με όλους τους πιθανούς συνδυασμούς τιμών. αντικατάσταση των ελλιπών δεδομένων με όλους τους πιθανούς συνδυασμούς τιμών λαμβάνοντας υπόψη τα στιγμιότυπα μόνο της ίδιας κλάσης. Επίσης, μπορεί να χρειαστεί να αφαιρέσουμε κάποιες παραμέτρους, διότι δεν παίζουν ρόλο (πράγμα που θα είναι ξεκάθαρο ή θα αναφέρεται στην περιγραφή του συνόλου δεδομένων), όπως μια παράμετρος που έχει σταθερή τιμή σε όλα τα στιγμιότυπα ή μια παράμετρος που παίζει το ρόλο αριθμού μητρώου ή απλώς δείκτη. Επίσης, μπορούμε να μειώσουμε τον αριθμό των κλάσεων εξόδου, αν είναι μεγάλος, αφαιρώντας κάποιες τιμές από την παράμετρο εξόδου και μαζί τα αντίστοιχα στιγμιότυπα από το σύνολο δεδομένων. Μια τέτοια περίπτωση είναι θεμιτή όταν κάποιες κλάσεις αντιπροσωπεύουν πολύ λιγότερα στιγμιότυπα από τις υπόλοιπες. Το σύνολο δεδομένων που θα προκύψει μετά την επεξεργασία, θα πρέπει να χωριστεί σε δύο υποσύνολα, το σύνολο εκπαίδευσης (training set) και το σύνολο ελέγχου (test set). Συνήθως, το σύνολο εκπαίδευσης είναι τα 2/3 και το σύνολο ελέγχου το 1/3 του αρχικού συνόλου. Σ αυτό τον χωρισμό προσπαθούμε να κρατήσουμε την ίδια αναλογία μεταξύ των διαφορετικών εξόδων στα δύο σύνολα. Π.χ. αν στο αρχικό σύνολο η έξοδος (παράμετρος/κλάση εξόδου) παίρνει τιμές yes-no και έχουμε π.χ. από τα 100 στιγμιότυπα 60 yes και 40 no, τότε στα σύνολα εκπαίδευσης και ελέγχου προσπαθούμε να κρατήσουμε αυτή την αναλογία περίπου. Το ίδιο ισχύει και για περισσότερες κλάσεις εξόδου. 19

20 Μετρικές Αξιολόγησης Τα ΕΣ που θα δημιουργηθούν θα πρέπει να αξιολογηθούν. Αυτό γίνεται μέσω κάποιων μεγεθών που ονομάζονται μετρικές αξιολόγησης. Μια ομάδα συνήθων μετρικών είναι οι παρακάτω: Ορθότητα (Accuracy) Ακρίβεια (Precision) Ευαισθησία (Sensitivity) Εξειδίκευση (Specificity) a+ d acc= a + b + c + d a prec= a + c a sen= a+ b d spec= c + d όπου οι παράμετροι a, b, c και d υπολογίζονται ως εξής: a=όσα στιγμιότυπα ανήκουν στην κλάση εξόδου 1 και ταξινομήθηκαν στην 1 b=όσα στιγμιότυπα ανήκουν στην κλάση εξόδου 1 αλλά ταξινομήθηκαν στην 2 c=όσα στιγμιότυπα ανήκουν στην κλάση εξόδου 2 αλλά ταξινομήθηκαν στην 1 d= όσα στιγμιότυπα ανήκουν στην κλάση εξόδου 2 και ταξινομήθηκαν στην 2 Οι παραπάνω ορισμοί τους αφορούν δυαδικές εξόδους. Στην περίπτωση που έχουμε περισσότερες από δύο κλάσεις εξόδου, τότε οι παραπάνω παράμετροι υπολογίζονται χωριστά για κάθε κλάση i, ως εξής: a i = όσα στιγμιότυπα ανήκουν στην κλάση εξόδου i και ταξινομήθηκαν στην i b i = όσα στιγμιότυπα ανήκουν στην κλάση εξόδου i αλλά δεν ταξινομήθηκαν σ αυτήν c i = όσα στιγμιότυπα δεν ανήκουν στην κλάση εξόδου i, αλλά ταξινομήθηκαν στην i d i = όσα στιγμιότυπα δεν ανήκουν στην κλάση εξόδου i και δεν ταξινομήθηκαν σ αυτήν Οπότε a = ai, b bi i i =, c= ci, d= di και οι μετρικές υπολογίζονται από τους αρχικούς τύπους. i i Μπορούμε να δημιουργήσουμε ένα απλό ΕΣ, όχι μέσω συνεντεύξεων με εμπειρογνώμονα ή μέσω βιβλιογραφίας, αλλά ημι-αυτόματα μέσω μιας μεθόδου μηχανικής μάθησης (δέντρο απόφασης) και του εργαλείου WEKA. Πιο συγκεκριμένα μπορούμε να εφαρμόσουμε τον αλγόριθμο J48 (a C4.5-like algorithm) με τη χρήση reduced-error pruning του εργαλείου WEKA στο σύνολο δεδομένων από τη UCI Repository, το οποίο πρέπει να το διαμορφώσουμε κατάλληλα (arff αρχείο) για να εισαχθεί στο WEKA. Μετά την εφαρμογή του αλγορίθμου θα παραχθεί ένα σύνολο κανόνων, το οποίο θα καταγράψουμε. Στη συνέχεια υλοποιούμε τους κανόνες στο CLIPS ώστε να δημιουργήσουμε τη βάση γνώσης του ΕΣ. Θα πρέπει να χωρίσουμε το σύνολο δεδομένων σε σύνολο εκπαίδευσης 20

21 και ελέγχου σύμφωνα με αυτά που ελέχθησαν παραπάνω. Κατόπιν τρέχουμε το ΕΣ στο σύνολο εκπαίδευσης και υπολογίζουμε τις μετρικές των παραπάνω παραμέτρων αξιολόγησης, Αν τα αποτελέσματα είναι ικανοποιητικά (π.χ. accuracy>70%) το αφήνουμε ως έχει, αλλιώς κάνουμε αλλαγές στους κανόνες (π.χ. διαγραφή κάποιων ή αλλαγή στις συνθήκες κάποιων άλλων κλπ.) ώστε να πετύχουμε τα καλύτερα δυνατά αποτελέσματα. Κατόπιν εφαρμόζουμε το ΕΣ στο σύνολο ελέγχου, υπολογίζουμε τις τιμές των μετρικών και τις κρατάμε για σύγκριση. Μπορούμε επίσης να δημιουργήσουμε ένα ασαφές ΕΣ, δηλ. ένα σύνολο ασαφών κανόνων με τη βοήθεια του εργαλείου FuzzyCLIPS. Επιλέγουμε ποιες από τις μεταβλητές που βρίσκονται στο σύνολο δεδομένων θα υλοποιήσουμε ως ασαφείς. Για αυτές τις μεταβλητές θα πρέπει να προσδιορίσουμε τις ασαφείς τιμές που θα πάρουν, δηλ. θα πρέπει να χωρίσουμε το πεδίο τιμών τους σε περιοχές τιμών, θα τις δώσουμε λεκτικά ονόματα. Θα πρέπει να εισάγουμε ορισμούς των ασαφών μεταβλητών και των τιμών τους και θα τροποποιήσουμε τους κανόνες που τις χρησιμοποιούν Μέθοδοι-Εργαλεία Εξαγωγής Κανόνων Η κατηγοριοποίηση (ή αλλιώς ταξινόμηση) (classification) αποτελεί μία από τις βασικές τεχνικές εξόρυξης δεδομένων. Βασίζεται στην εξέταση των χαρακτηριστικών ενός νέου αντικειμένου (μη κατηγοριοποιημένου) το οποίο με βάση τα χαρακτηριστικά αυτά αντιστοιχίζεται σε ένα προκαθορισμένο σύνολο κλάσεων. Γενικότερα, ο στόχος της διαδικασίας αυτής είναι η ανάπτυξη ενός μοντέλου, το οποίο αργότερα θα χρησιμοποιηθεί για την κατηγοριοποίηση μελλοντικών δεδομένων. Η κατηγοριοποίηση μπορεί να περιγραφεί ως μια διαδικασία δύο βημάτων: Την εκμάθηση (learning): όπου δημιουργείται το μοντέλο με βάση ένα σύνολο προκατηγοριοποιημένων στιγμιοτύπων, που ονομάζονται δεδομένα εκπαίδευσης (training data). Τα δεδομένα εκπαίδευσης αναλύονται από έναν αλγόριθμο κατηγοριοποίησης, προκειμένου να σχηματιστεί το μοντέλο. Λόγω του ότι τα δεδομένα εκπαίδευσης ανήκουν σε μία προκαθορισμένη κατηγορία, η οποία είναι γνωστή, η κατηγοριοποίηση αποτελεί μέθοδος εποπτευόμενης μάθησης (supervised learning). Την κατηγοριοποίηση (classification): Μετά την δημιουργία του μοντέλου, το επόμενο βήμα είναι η αξιολόγησή του. Η κατηγοριοποίηση αναφέρεται εναλλακτικά και σαν εξόρυξη κανόνων κατηγοριοποίησης (mining classification rules). Υπάρχουν αρκετές τεχνικές για την παραγωγή κανόνων κατηγοριοποίησης από ένα σύνολο δεδομένων. Οι πιο δημοφιλείς είναι τα δέντρα απόφασης (decision trees), οι κανόνες κατηγοριοποίησης (classification rules), οι Αλγόριθμοι Ακολουθιακής Κάλυψης (Sequential Covering Algorithms), η μέθοδος των k-κοντινότερων Γειτόνων (k-nearest Neighbor knn), τα Νευρωνικά Δίκτυα (Neural Networks), οι Απλοϊκοί Μπευζιανοί Ταξινομητές (Naïve Bayesian Classifiers), τα Μπευζιανά Δίκτυα (Bayesian Networks), οι Μηχανές Διανυσμάτων Υποστήριξης (Support Vector Machines), οι Γενετικοί Αλγόριθμοι (Genetic Algorithms) και η Ασαφής Κατηγοριοποίηση (Fuzzy Classification). Παρακάτω περιγράφουμε συνοπτικά τις μεθόδους αυτές: 21

22 Δέντρα Απόφασης: Είναι μια από τις ευρέως χρησιμοποιούμενες τεχνικές για κατηγοριοποίηση και πρόβλεψη που ακολουθεί την τεχνική του «Διαίρει και Βασίλευε» (Divide and Conquer). Ένα δέντρο απόφασης κατασκευάζεται με βάση ένα σύνολο εκπαίδευσης προκατηγοριοποιημένων δεδομένων. Κάθε ένας από τους εσωτερικούς κόμβους του δέντρου απόφασης προσδιορίζει τον έλεγχο ενός γνωρίσματος και κάθε κλαδί που κατεβαίνει από εκείνον τον κόμβο αντιστοιχεί σε μία από τις πιθανές τιμές για το συγκεκριμένο γνώρισμα. Επίσης, κάθε φύλλο αντιστοιχεί σε μια από τις κλάσεις που έχουν ορισθεί. Η έκβαση αυτής της δοκιμής σ έναν εσωτερικό κόμβο καθορίζει το κλαδί που θα διασχίσουμε στη συνέχεια καθώς και τον επόμενο κόμβο που θα επισκεφτούμε (Σχήμα 2.1.). Διάρκεια (έτη)<1 Παραμένει Ναι Όχι Είδος Συμβολαίου Μικρή χρήση Άλλη χρήση Διάρκεια<1.2 Διάρκεια<2 Ναι Όχι Ναι Όχι Φεύγει Παραμένει Παραμένει Φεύγει Σχήμα 2.1.: Παράδειγμα Δέντρου Απόφασης [2] Η διαδικασία για την κατηγοριοποίηση ενός νέου δείγματος με βάση ένα δέντρο απόφασης είναι η εξής: ξεκινώντας από τη ρίζα του δέντρου και εξετάζοντας τα γνωρίσματα που καθορίζονται από τον κόμβο αυτό προσδιορίζονται διαδοχικά οι εσωτερικοί κόμβοι που θα επισκεφτούμε μέχρι να καταλήξουμε σε ένα φύλλο. Σε κάθε εσωτερικό κόμβο εξετάζεται εάν το δείγμα ικανοποιεί το συγκεκριμένο κόμβο. Γενικά, ένα δέντρο απόφασης μπορεί να αναπαρασταθεί και ως σύνολο κανόνων if-then, που ονομάζονται κανόνες ταξινόμησης και που συνδυάζονται μεταξύ τους από τη ρίζα του δέντρου προς τα φύλλα. Διάφοροι αλγόριθμοι κατασκευής δέντρων απόφασης έχουν αναπτυχθεί κατά την διάρκεια των τελευταίων ετών, μερικοί εκ των οποίων είναι οι ID3, C4.5, SPRINT, SLIQ, CART, RainForest. Ένα δέντρο απόφασης κατασκευάζεται συνήθως σε δύο φάσεις: τη φάση της οικοδόμησης όπου το σύνολο δεδομένων εκπαίδευσης διασπάται κατ επανάληψη μέχρι όλα τα δείγματα σε ένα τμήμα να ανήκουν στην ίδια κλάση, και τη φάση του κλαδέματος στην 22

23 οποία κλαδεύονται οι κόμβοι για να αποτραπεί το υπερταίριασμα (overfitting) και να δημιουργηθεί ένα δέντρο με υψηλότερη ακρίβεια. Οι αλγόριθμοι ID3 και C4.5 βασίζονται σε μια στατιστική ιδιότητα, που καλείται κέρδος πληροφορίας (information gain), προκειμένου να επιλέξουμε το γνώρισμα που θα ελέγξουμε σε κάθε κόμβο του δέντρου. Ο ορισμός του μέτρου βασίζεται στην εντροπία, η οποία χαρακτηρίζει την καθαρότητα μιας αφηρημένης επιλογής των δειγμάτων. Τα δέντρα απόφασης έχουν αρκετά πλεονεκτήματα, μερικά από τα οποία είναι ότι μπορούν να χρησιμοποιηθούν εύκολα και αποτελεσματικά, μπορούν να εξάγουν κανόνες οι οποίοι μπορούν εύκολα να κατανοηθούν και να ερμηνευτούν από το χρήστη, μπορούν να χρησιμοποιηθούν με μεγάλη επιτυχία σε μεγάλες βάσεις δεδομένων και επίσης ότι μπορούμε να κατασκευάσουμε δέντρα για δεδομένα με πολλά χαρακτηριστικά. Σαν μειονεκτήματα μπορούμε να αναφέρουμε ότι δεν μπορούν να χειριστούν συνεχή δεδομένα, μπορεί να εμφανιστεί το φαινόμενο του υπερταιριάσματος, και επίσης τα ελλιπή δεδομένα αποτελούν ένα ακόμη πρόβλημα για τα δέντρα απόφασης. Κανόνες Κατηγοριοποίησης: Η γνώση που αποκτούμε κατά την διαδικασία της κατηγοριοποίησης μπορεί να αναπαρασταθεί και με τη χρήση if-then κανόνων. Οι κανόνες κατηγοριοποίησης, σε σχέση με τα δέντρα απόφασης, γίνονται ευκολότερα κατανοητοί όταν το δέντρο που παράχθηκε είναι μεγάλο. Έτσι μπορούμε να μετατρέψουμε ένα δέντρο απόφασης σε ένα σύνολο κανόνων κατηγοριοποίησης. Αυτό μπορεί να επιτευχθεί εάν θεωρήσουμε ότι κάθε κανόνας αντιστοιχεί σε ένα μονοπάτι του δέντρου από τη ρίζα μέχρι ένα κόμβο φύλλο. Άρα κάθε φύλλο παράγει ένα κανόνα. Οι συνθήκες που θα μας οδηγήσουν στο φύλλο (υπόθεση) αποτελούν το αριστερό μέρος του κανόνα, ενώ το φύλλο (αποτέλεσμα) αντιστοιχεί στο δεξιό μέρος του κανόνα. Για παράδειγμα, από το Σχήμα 2.1 προκύπτει ο κανόνας: if ΔΙΑΡΚΕΙΑ (ΕΤΗ) < 1 then ΠΑΡΑΜΕΝΕΙ Αλγόριθμοι Ακολουθιακής Κάλυψης: Οι κανόνες if-then μπορούν να εξαχθούν απευθείας από τα δεδομένα εκπαίδευσης (δηλαδή, χωρίς να χρειάζεται να παράγουν ένα δέντρο απόφασης πρώτα) χρησιμοποιώντας έναν αλγόριθμο ακολουθιακής κάλυψης. Το όνομά τους προέρχεται από το γεγονός ότι οι κανόνες μαθαίνονται ακολουθιακά (ένας κάθε φορά), όπου κάθε κανόνας από μια δοσμένη κλάση θα καλύψει ιδανικά πολλές από τις πλειάδες αυτής της κλάσης (και ας ελπίσουμε καμιά από τις πλειάδες των άλλων κλάσεων). Υπάρχουν πολλοί αλγόριθμοι ακολουθιακής κάλυψης, εκ των οποίων οι πιο δημοφιλείς είναι οι AQ, CN2, και ο πιο πρόσφατος, ο RIPPER. Η γενική στρατηγική που ακολουθούν έχει ως εξής: Οι κανόνες μαθαίνονται ένας κάθε φορά. Κάθε φορά ένας κανόνας μαθαίνεται, οι πλειάδες που καλύπτονται από τον κανόνα αφαιρούνται, και η διαδικασία επαναλαμβάνεται στις εναπομείναντες πλειάδες. Αυτή η ακολουθιακή εκμάθηση των κανόνων έρχεται σε αντιδιαστολή με τα δέντρα απόφασης. Επειδή το μονοπάτι σε κάθε φύλλο σε ένα δέντρο απόφασης αντιστοιχεί σε έναν κανόνα, μπορούμε να θεωρήσουμε την επαγωγή του δέντρου απόφασης ως την εκμάθηση ενός συνόλου κανόνων ταυτόχρονα. 23

24 Ένας βασικός αλγόριθμος ακολουθιακής κάλυψης φαίνεται στο Σχήμα 2.2. Εδώ, οι κανόνες μαθαίνονται για μια κλάση κάθε φορά. Στην ιδανική περίπτωση, κατά την εκμάθηση ενός κανόνα για μια κλάση C i, θα θέλαμε ο κανόνας να καλύπτει όλες (ή πολλές) από τι πλειάδες εκπαίδευσης της κλάσης C και καμία (ή λίγες) από τις πλειάδες των άλλων κλάσεων. Κατ αυτόν τον τρόπο, οι κανόνες που μαθαίνονται πρέπει να είναι υψηλής ακρίβειας. Οι κανόνες δεν χρειάζεται απαραίτητα αν είναι υψηλής κάλυψης και αυτό γιατί μπορούμε να έχουμε περισσότερο από έναν κανόνες για μια κλάση, έτσι ώστε διαφορετικοί κανόνες μπορεί να καλύπτουν διαφορετικές πλειάδες που ανήκουν στην ίδια κλάση. Η διαδικασία συνεχίζεται μέχρι να ικανοποιηθεί το κριτήριο τερματισμού, όπως όταν δεν υπάρχουν άλλες πλειάδες εκπαίδευσης ή η ποιότητα ενός κανόνα που επιστρέφεται είναι κάτω από ένα κατώφλι που καθορίζεται από τον χρήστη. Η διαδικασία Learn_One_Rule βρίσκει τον «καλύτερο» κανόνα για την τρέχουσα κλάση, δοσμένου του τρέχοντος συνόλου των πλειάδων εκπαίδευσης. Αλγόριθμος: Ακολουθιακή κάλυψη. Εκμάθηση ενός συνόλου κανόνων IF-THEN για ταξινόμηση. Είσοδος: D, πλειάδες της κλάσης ενός συνόλου δεδομένων Att_vals, το σύνολο όλων των μεταβλητών Έξοδος: Ένα σύνολο από κανόνες IF THEN. Μέθοδος: (1) Rule_set = { }; // το αρχικό σύνολο κανόνων για εκμάθηση είναι κενό (2) for each κλάση c do (3) repeat (4) Rule = Learn_One_Rule (D, Att_vals, c); (5) αφαίρεσε πλειάδες από το D που καλύπτονται από το Rule; (6) until να τερματιστεί η συνθήκη; (7) Rule_set = Rule_set + Rule; // πρόσθεσε νέο κανόνα στο σύνολο κανόνων (8) endfor (9) return Rule_Set; Σχήμα 2.2.: Βασικός αλγόριθμος ακολουθιακής κάλυψης [11] Μέθοδος των k-κοντινότερων Γειτόνων: Βασίζεται στην εκμάθηση κατ αναλογία, δηλαδή συγκρίνοντας μια δοσμένη πλειάδα ελέγχου με πλειάδες εκπαίδευσης που είναι παρόμοιες με αυτήν. Κάθε πλειάδα αναπαριστά ένα σημείο σε έναν ν-διάστατο χώρο. Με αυτό τον τρόπο, όλες οι πλειάδες εκπαίδευσης αποθηκεύονται σε ένα ν-διάστατο πρότυπο χώρου. Όταν δοθεί μια άγνωστη πλειάδα, ένα ταξινομητής k κοντινότερων γειτόνων αναζητά το πρότυπο χώρου για τις k πλειάδες εκπαίδευσης που βρίσκονται πλησιέστερα στην άγνωστη πλειάδα. Αυτές οι k πλειάδες εκπαίδευσης είναι οι k «κοντινότεροι γείτονες» της άγνωστης πλειάδας. Η «εγγύτητα» (closeness) ορίζεται με βάση μια μετρική απόστασης, όπως η Ευκλείδεια απόσταση. Η Ευκλείδεια απόσταση μεταξύ δύο σημείων ή πλειάδων, ήτοι, X1= ( x11, x12,..., x1n) και X2= ( x21, x22,..., x2n), είναι 24

25 (, ) = ( x x ) 2 dist X X 1 2 1i 2i i= 1 Για την ταξινόμηση των k-κοντινότερων γειτόνων, στην άγνωστη πλειάδα ανατίθεται η πιο κοινή κλάση μεταξύ των k κοντινότερων γειτόνων της. Όταν k = 1, στην άγνωστη πλειάδα ανατίθεται η κλάση της πλειάδας εκπαίδευσης που βρίσκεται πλησιέστερα σε αυτή στο χώρο προτύπου. Οι ταξινομητές των κοντινότερων γειτόνων χρησιμοποιεί βασισμένες στην απόσταση συγκρίσεις που αναθέτουν ίσα βάρη σε κάθε χαρακτηριστικό. Ως εκ τούτο, μπορεί να υποφέρουν από έλλειψη ακρίβειας όταν δίνονται θορυβώδη ή άσχετα χαρακτηριστικά. Η μέθοδος, ωστόσο, έχει τροποποιηθεί ώστε να ενσωματώσει στάθμιση των χαρακτηριστικών και το κλάδεμα θορυβωδών πλειάδων δεδομένων. Η επιλογή μια μετρικής απόσταση μπορεί να είναι κρίσιμη. Η απόσταση Manhattan, ή άλλες μετρικές απόστασης, μπορούν επίσης να χρησιμοποιηθούν. Ένας NN κανόνας έχει ασυμπτωτικό ποσοστό σφάλματος που είναι δύο φορές το ποσοστό σφάλματος Bayes, ανεξάρτητα από το μέτρο απόστασης που χρησιμοποιείται. Το κύριο μειονέκτημά των ταξινομητών ΝΝ είναι ότι μπορεί να είναι εξαιρετικά αργοί κατά την ταξινόμηση των πλειάδων ελέγχου. Αν D είναι η βάση δεδομένων εκπαίδευσης που αποτελείται από D πλειάδες και k = 1, τότε απαιτούνται O( D ) συγκρίσεις προκειμένου να κατηγοριοποιήσουν μια δοσμένη πλειάδα ελέγχου. Νευρωνικά Δίκτυα: Ένα νευρωνικό δίκτυο είναι ένα σύνολο συνδεδεμένων μονάδων εισόδου/εξόδου, στο οποίο κάθε σύνδεση έχει ένα βάρος που σχετίζεται με αυτήν. Κατά την διάρκεια της φάσης εκμάθησης, το δίκτυο μαθαίνει προσαρμόζοντας τα βάρη έτσι ώστε να είναι σε θέση να προβλέψει τη σωστή κλάση των πλειάδων εισόδου. Τα νευρωνικά δίκτυα χρειάζονται αρκετό χρόνο εκπαίδευσης και επομένως είναι πιο κατάλληλα για εφαρμογές όπου αυτό είναι εφικτό. Χρειάζονται ορισμένες παραμέτρους που καθορίζονται συνήθως εμπειρικά, όπως η τοπολογία του δικτύου ή η δομή. Τα νευρωνικά δίκτυα έχουν επικριθεί για την φτωχή ικανότητα ερμηνείας τους. Για παράδειγμα, είναι δύσκολο για τους ανθρώπους να ερμηνεύσουν τη συμβολική σημασία πίσω από τα βάρη και τις κρυμμένες μονάδες στο δίκτυο. Αυτά τα γνωρίσματα καθιστούν αρχικά τα νευρωνικά δίκτυα λιγότερο επιθυμητά για εξόρυξη δεδομένων. Τα πλεονεκτήματα των νευρωνικών δικτύων, ωστόσο, περιλαμβάνουν την υψηλή ανοχή των δεδομένων με θόρυβο καθώς και την ικανότητά τους να ταξινομούν πρότυπα πάνω στα οποία δεν έχουν εκπαιδευτεί. Μπορούν να χρησιμοποιηθούν όταν έχουμε λίγη γνώση των σχέσεων μεταξύ των χαρακτηριστικών και των κλάσεων. Είναι κατάλληλα για συνεχείς εισόδους και εξόδους, σε αντίθεση με τους περισσότερους αλγόριθμους δέντρων απόφασης. Πρόσφατα διάφορες τεχνικές έχουν αναπτυχθεί για την εξαγωγή κανόνων από εκπαιδευμένα νευρωνικά δίκτυα. Υπάρχουν πολλά διαφορετικά είδη νευρωνικών δικτύων και αλγόριθμων νευρωνικών δικτύων. Ο πιο δημοφιλής αλγόριθμος νευρωνικών δικτύων είναι ο αλγόριθμος back propagation, ο οποίος απέκτησε φήμη στη δεκαετία του n 25

26 Απλοϊκοί Μπεϋζιανοί Ταξινομητές: Οι Μπεϋζιανοί ταξινομητές είναι στατιστικοί ταξινομητές. Μπορούν να προβλέψουν πιθανότητες κλάσης, όπως τη πιθανότητα ότι μια δοσμένη πλειάδα ανήκει σε μια συγκεκριμένη κλάση. Η Μπεϋζιανή ταξινόμηση βασίζεται στο θεώρημα του Bayes. Μελέτες που συγκρίνουν αλγόριθμους ταξινόμησης έχουν βρει έναν απλό Μπεϋζιανό ταξινομητή, γνωστό ως τον απλοϊκό (naive) Μπεϋζιανό ταξινομητή που έχει συγκρίσιμες επιδόσεις με το δέντρο απόφασης και με επιλεγμένους ταξινομητές δικτύων. Οι Μπεϋζιανοί ταξινομητές έχουν παρουσιάσει επίσης υψηλή ακρίβεια και ταχύτητα όταν εφαρμόζονται σε μεγάλες βάσεις δεδομένων. Οι απλοϊκοί (naive) Μπεϋζιανοί ταξινομητές υποθέτουν ότι η επίδραση της τιμής ενός χαρακτηριστικού σε μια δοσμένη κλάση είναι ανεξάρτητη από τις τιμές των άλλων χαρακτηριστικών. Αυτή η υπόθεση καλείται υπό συνθήκη ανεξαρτησία κλάσης, δηλαδή δοσμένης της κλάσης μιας πλειάδας, οι τιμές των χαρακτηριστικών θεωρούνται ότι είναι υπό συνθήκη ανεξάρτητες η μία με την άλλη. Αυτό απλοποιεί τους υπολογισμούς και υπό αυτή την έννοια θεωρείται naive. Όταν η υπόθεση ισχύει, τότε ο απλοϊκός (naive) Μπεϋζιανός ταξινομητής είναι ο πιο ακριβής σε σύγκριση με όλους τους άλλους ταξινομητές. Στην πράξη, ωστόσο, μπορεί να υπάρχουν εξαρτήσεις μεταξύ των μεταβλητών. Το πλεονέκτημα του απλοϊκού (naive) Μπεϋζιανού ταξινομητή είναι ότι απαιτεί μικρό μέγεθος δεδομένων εκπαίδευσης για τον υπολογισμό των παραμέτρων ταξινόμησης. Μπεϋζιανά Δίκτυα: Τα Bayesian belief networks καθορίζουν από κοινού υπό συνθήκη πιθανοτικές κατανομές. Επιτρέπουν υπό συνθήκη ανεξαρτησίες κλάσεων να ορίζονται μεταξύ των υποσυνόλων των μεταβλητών. Παρέχουν ένα γραφικό μοντέλο αιτιωδών σχέσεων, πάνω στο οποίο εκτελείται η εκμάθηση. Εκπαιδευμένα Bayesian belief networks μπορούν να χρησιμοποιηθούν για ταξινόμηση. Τα Bayesian belief networks είναι επίσης γνωστά ως belief networks, Μπεϋζιανά Δίκτυα και πιθανοτικά δίκτυα. Ένα μπεϋζιανό δίκτυο ορίζεται από δύο στοιχεία ένα κατευθυνόμενο ακυκλικό γράφημα και ένα σύνολο πινάκων υπό συνθήκη πιθανοτήτων. Κάθε κόμβος στο κατευθυνόμενο ακυκλικό γράφημα αναπαριστά μια τυχαία μεταβλητή. Οι μεταβλητές μπορεί να είναι διακριτές ή συνεχείς. Μπορεί να αντιστοιχούν σε πραγματικά χαρακτηριστικά που δίνονται στα δεδομένα ή σε «κρυμμένες μεταβλητές» που ενδέχεται να σχηματίζουν μια σχέση (π.χ. στην περίπτωση ιατρικών δεδομένων, μια κρυμμένη μεταβλητή μπορεί να δηλώνει ένα σύνδρομο, που αναπαριστά έναν αριθμό συμπτωμάτων που, από κοινού, χαρακτηρίζουν μια συγκεκριμένη ασθένεια). Κάθε τόξο αναπαριστά μια πιθανοτική εξάρτηση. Αν ένα τόξο σχεδιάζεται από έναν κόμβο Y σε έναν κόμβο Z, τότε ο Y είναι ένας γονέας ή άμεσος πρόγονος του Z, και ο Z είναι ένας απόγονος του Y. Κάθε μεταβλητή είναι υπό συνθήκη ανεξάρτητη από τους μη απογόνους της στο γράφημα, δοσμένων των γονέων του. Ένα μπεϋζιανό δίκτυο έχει έναν πίνακα με υπό συνθήκη πιθανότητες (CPT) για κάθε μεταβλητή. Το CPT για μια μεταβλητή Y καθορίζει την υπό συνθήκη κατανομή P(Y Parents(Y)), όπου το Parents(Y) είναι οι γονείς του Y. 26

27 Ένας κόμβος μέσα στο δίκτυο μπορεί να επιλεχθεί ως κόμβος εξόδου, που αναπαριστά το χαρακτηριστικό της κλάσης. Ενδέχεται να υπάρχουν περισσότεροι από ένας κόμβοι εξόδου. Διάφοροι αλγόριθμοι εκμάθησης μπορούν να εφαρμοστούν στο δίκτυο. Αντί να επιστρέψει μια μόνο κλάση, η διαδικασία ταξινόμησης μπορεί να επιστρέψει μια κατανομή πιθανότητας που δίνει την πιθανότητα κάθε κλάσης. Επειδή τα μπεϋζιανά δίκτυα παρέχουν άμεσες αναπαραστάσεις της αιτιώδους δομής, ένας εμπειρογνώμονας μπορεί να παρέχει εκ των προτέρων γνώση στην διαδικασία εκπαίδευσης με τη μορφή τοπολογίας δικτύου ή/και με τη μορφή τιμών υπό συνθήκη πιθανοτήτων. Αυτό μπορεί να βελτιώσει σημαντικά το ρυθμό εκμάθησης. Μηχανές Διανυσμάτων Υποστήριξης: Πρόκειται για μια πολλά υποσχόμενη νέα μέθοδο για την ταξινόμηση τόσο γραμμικών όσο και μη γραμμικών δεδομένων. Με λίγα λόγια, μια μηχανή διανυσμάτων υποστήριξης (SVM) είναι ένας αλγόριθμός που λειτουργεί ως εξής: Χρησιμοποιεί μια μη γραμμική απεικόνιση για να μετασχηματίσει τα αρχικά δεδομένα εκπαίδευσης σε μια μεγαλύτερη διάσταση. Μέσα σε αυτή τη νέα διάσταση, αναζητά την γραμμική βέλτιστη υπερεπιφάνεια διαχωρισμού (hyperplane) (δηλαδή, ένα «όριο απόφασης» που διαχωρίζει τις πλειάδες μιας κλάσης από τις άλλες). Με μια κατάλληλη μη γραμμική απεικόνιση σε μια αρκετά υψηλή διάσταση, τα δεδομένα από δύο κλάσεις μπορούν πάντα να διαχωρίζονται από μια υπερεπιφάνεια. Η SVM βρίσκει αυτή την υπερεπιφάνεια χρησιμοποιώντας διανύσματα υποστήριξης («ουσιαστικές» πλειάδες εκπαίδευσης) και περιθώρια (margins) (που ορίζονται από τα διανύσματα υποστήριξης). Το πρώτο paper σε SVMs παρουσιάστηκε το 1992 από τον Vladimir Vapnik και τους συναδέλφους του. Αν και ο χρόνος εκπαίδευσης ακόμη και των πιο γρήγορων SVMs μπορεί να είναι εξαιρετικά μεγάλος, έχουν υψηλή ακρίβεια, λόγω της ικανότητάς τους να μοντελοποιούν σύνθετα μη γραμμικά όρια αποφάσεων. Είναι πολύ λιγότερο επιρρεπή σε υπερπροσαρμογή (overfitting) από άλλες μεθόδους. Τα διανύσματα υποστήριξης παρέχουν επίσης μια συμπαγή περιγραφή του μοντέλου μάθησης. Οι SVMs μπορούν να χρησιμοποιηθούν για πρόβλεψη καθώς και ταξινόμηση. Έχουν εφαρμοστεί σε αρκετούς τομείς, όπως στην αναγνώριση χειρόγραφων ψηφίων, την αναγνώριση αντικειμένων, την αναγνώριση ομιλητών. Το βασικό πλεονέκτημα των SVMs έναντι των νευρωνικών δικτύων τύπου Perceptron είναι ότι μπορούν και παράγουν πιο σύνθετες υπερεπιφάνειες, ενσωματώνοντας μετασχηματισμούς και συνδυασμούς των αρχικών μεταβλητών ανάλογα με το πρόβλημα και ξεπερνώντας προβλήματα όπως τα τοπικά ελάχιστα και η διασπορά των λύσεων στο χώρο αναζήτησης Γενετικοί Αλγόριθμοι: Οι γενετικοί αλγόριθμοι επιχειρούν να ενσωματώσουν τις ιδέες της φυσικής εξέλιξης. Σε γενικές γραμμές, η γενετική εκμάθηση ξεκινά ως εξής: Ένας αρχικός πληθυσμός δημιουργείται που αποτελείται από κανόνες που παράγονται τυχαία. Κάθε κανόνας μπορεί να αναπαρασταθεί με μια συμβολοσειρά ψηφίων. Σαν ένα απλό παράδειγμα, έστω ότι δείγματα σε ένα δοσμένο σύνολο εκπαίδευσης περιγράφονται από δύο Boolean χαρακτηριστικά, Α 1 και Α 2, και ότι υπάρχουν δύο κλάσεις, C 1 και C 2. Ο κανόνας IF A 1 AND NOT A 2 THEN C 2 μπορεί να κωδικοποιηθεί ως η συμβολοσειρά ψηφίων 100, όπου τα δύο ψηφία που βρίσκονται πιο αριστερά αναπαριστούν τα 27

28 χαρακτηριστικά A 1 και Α 2, αντίστοιχα, και το πιο δεξιό ψηφίο αναπαριστά την κλάση. Ομοίως, ο κανόνας IF NOT A 1 AND NOT A 2 THEN C 1 μπορεί να κωδικοποιηθεί ως 001. Αν ένα χαρακτηριστικό έχει k τιμές, όπου k>2, τότε τα k ψηφία μπορούν να χρησιμοποιηθούν για να κωδικοποιήσουν τις τιμές του χαρακτηριστικού. Οι κλάσεις μπορούν να κωδικοποιηθούν κατά παρόμοιο τρόπο. Με βάση την έννοια της φυσικής επιλογής, ένα νέος πληθυσμός σχηματίζεται και αποτελείται από τους καλύτερα προσαρμόσιμους κανόνες στον τρέχοντα πληθυσμό, καθώς και από τους απογόνους αυτών των κανόνων. Συνήθως, η καταλληλότητα ενός κανόνα εκτιμάται από την ακρίβεια ταξινόμησής του σε ένα σύνολο δειγμάτων εκπαίδευσης. Οι απόγονοι δημιουργούνται εφαρμόζοντας γενετικούς τελεστές όπως διασταύρωση (crossover) και μετάλλαξη (mutation). Στην διασταύρωση, υποσύνολα συμβολοσειρών από ζεύγη κανόνων ανταλλάσσονται για να σχηματίσουν νέα ζεύγη κανόνων. Στην μετάλλαξη, τυχαία επιλεγμένα ψηφία σε μια συμβολοσειρά κανόνα αντιστρέφονται. Η διαδικασία της παραγωγής νέων πληθυσμών με βάση εκ των προτέρων πληθυσμούς κανόνων συνεχίζει μέχρι να εξελιχθεί ένας πληθυσμός, P, όπου κάθε κανόνας στο P ικανοποιεί ένα προκαθορισμένο κατώφλι καταλληλότητας. Οι γενετικοί αλγόριθμοι είναι εύκολα παραλληλοποιήσιμοι και έχουν χρησιμοποιηθεί για ταξινόμηση καθώς και σε άλλα προβλήματα βελτιστοποίησης. Στην εξόρυξη δεδομένων, δύναται να χρησιμοποιηθούν για να αξιολογήσουν την καταλληλότητα των άλλων αλγορίθμων. Ασαφής Κατηγοριοποίηση: Οι προηγούμενες μέθοδοι κατηγοριοποίησης παράγουν μια αυστηρή κατηγοριοποίηση με την έννοια ότι ένα αντικείμενο είτε ανήκει σε μία κλάση είτε όχι. Αυτό σημαίνει ότι όλα τα αντικείμενα θεωρούνται ότι ανήκουν σε μια κλάση με τον ίδιο βαθμό πίστης. Επομένως δεν λαμβάνεται υπόψη η έννοια της αβεβαιότητας σε αυτές τις μεθόδους. Η ασαφής κατηγοριοποίηση βασίζεται στην ασαφή λογική, όπου εξάγονται ασαφείς κανόνες. Οι μέθοδοι εξαγωγής κανόνων βασίζονται στην υπολογισμό των ομάδων (κλάσεων) στα δεδομένα και κάθε κλάση που ορίζεται αντιστοιχεί σε έναν ασαφή κανόνα που συσχετίζει μια περιοχή στο χώρο εισόδου με μια κλάση εξόδου. Κατά συνέπεια, για κάθε κλάση C i καθορίζεται το κέντρο των ομάδων έτσι ώστε να προκύψει ένας κανόνας της μορφής: if {input is near x i } then class is C i Κατόπιν για ένα δοσμένο διάνυσμα εισόδου x, το σύστημα το βαθμό ικανοποίησης κάθε κανόνα και τα συμπεράσματα του κανόνα με τον υψηλότερο βαθμό ικανοποίησης επιλέγονται ως η έξοδος του ασαφούς συστήματος. Έτσι η προσέγγιση χρησιμοποιεί ασαφή λογική για να καθορίσει την καλύτερη κλάση μέσα στην οποία ένα αντικείμενο μπορεί να κατηγοριοποιηθεί, αλλά το τελικό αποτέλεσμα είναι η κατηγοριοποίηση κάθε στοιχείου σε μία από τις κλάσεις. 28

29 2.3. Δημιουργία-Αυτόματη Παραγωγή Έμπειρων Συστημάτων Αυτοματοποιημένα εργαλεία Πολλά σύνολα δεδομένων είναι διαθέσιμα στις μέρες μας, που περιέχουν γνωστά στιγμιότυπα από διάφορους τομείς (π.χ. η βάση δεδομένων UCI Machine Learning Repository). Απαιτείται προσπάθεια για την ανάκτηση πληροφοριών από αυτά τα σύνολα δεδομένων και τη χρήση τους ως τη βάση γνώσης για την πρόβλεψη νέων στιγμιοτύπων. Συνεπώς, απαιτείται ένα εργαλείο που μπορεί αυτόματα να εξάγει κανόνες από αυτά τα δεδομένα που μπορούν να ταξινομήσουν νέα δεδομένα με την ελάχιστη απαιτούμενη προσπάθεια από το χρήστη. Υπάρχουσες προσπάθειες για την παροχή τέτοιων αυτοματοποιημένων εργαλείων είναι κυρίως εμπορικές και έτσι απευθύνονται σε επαγγελματίες ή μηχανικούς γνώσης, καθιστώντας την διαδικασία δύσκολη για απλούς χρήστες ή εμπειρογνώμονες του τομέα που θέλουν να κάνουν χρήση της υπάρχουσας γνώσης στα σύνολα δεδομένων. Ένα από τα πιο γνωστά εργαλεία για την ανάπτυξη έμπειρων συστημάτων βασισμένων σε κανόνες είναι το περιβάλλον CLIPS. Το JESS, το αντίστοιχο σε Java, έχει λάβει επίσης μεγάλο ενδιαφέρον. Το Expert System Creator είναι ένα εμπορικό εργαλείο λογισμικού για την ανάπτυξη εφαρμογών βασισμένων σε έμπειρα συστήματα, που αναπαριστά τη γνώση του πεδίου χρησιμοποιώντας σύνολα κανόνων, πίνακες απόφασης ή δέντρα ταξινόμησης. Απευθύνεται κυρίως σε επαγγελματίες, εμπειρογνώμονες ή μηχανικούς γνώσης και λιγότερο σε απλούς χρήστες. Το EXSYS, ένα επίσης εμπορικό λογισμικό ανάπτυξης έμπειρων συστημάτων, είναι ευκολότερο στη χρήση και παρέχει πολλά διαφορετικά μοντέλα αβεβαιότητας που μπορείς να επιλέξεις [4]. Αλγόριθμοι αυτόματης παραγωγής κανόνων ταξινόμησης Η τάση για δημιουργία κανόνων με αυτοματοποιημένο τρόπο αναπτύσσεται ταχύτατα. Για να εισάγουμε τις διάφορες διαθέσιμες τεχνικές είναι να σημαντικό να παρουσιάσουμε τα γενικά βήματα της αυτόματης παραγωγής κανόνων. Το πρώτο βήμα είναι η απόκτηση γνώσης (knowledge acquisition), όπου συλλέγουμε τα δεδομένα και τα αναπαριστούμε σε κατάλληλη μορφή ως είσοδο στο δεύτερο βήμα. Πρόκειται για ένα από τα πιο σημαντικά προβλήματα στην ανάπτυξη έμπειρων συστημάτων. Ενώ έχουν αναπτυχθεί πολλά εργαλεία απόκτησης γνώσης για να απλοποιήσουν αυτή τη διαδικασία, είναι ακόμα δύσκολο να αυτοματοποιηθεί αυτή η διαδικασία. Η συλλογή γνώσης γίνεται με τη βοήθεια ενός ειδικού τομέα και περιλαμβάνει πολλές άσχετες λεπτομέρειες της πληροφορικής, εντούτοις η αναπαράσταση της γνώσης πρέπει να γίνει προκειμένου να εξυπηρετήσει καλύτερα τη διαδικασία εξόρυξης γνώσης/ εξαγωγής κανόνων. Το δεύτερο και το πιο σημαντικό βήμα είναι η εξαγωγή της γνώσης (knowledge elicitation), η οποία παρέχει περισσότερες πληροφορίες από αυτές που παρέχονται στη βάση γνώσης, δηλ. την παραγωγή γενικών κανόνων που προκύπτουν από δοσμένα δεδομένα [22]. Το κίνητρο για την αυτόματη παραγωγή κανόνων έγκειται στα πλεονεκτήματα που προσφέρει. Η διαδικασία αυτοματοποιημένης παραγωγής είναι απαραίτητη αν δεν υπάρχουν μηχανικοί γνώσης για να εξορύξουν τα δεδομένα με μη αυτόματο τρόπο προκειμένου να αποκτήσουν τη βαθιά γνώση. Η αυτόματη παραγωγή κανόνων απαιτείται στους τομείς όπου είναι σημαντικό 29

30 να αξιολογηθεί και να επικυρωθεί η γνώση εμπειρογνωμόνων με έναν ταχύτερο και πιο αξιόπιστο τρόπο, κυρίως σε εφαρμογές όπου η έλλειψη αξιοπιστίας είναι επικίνδυνη. Η γνώση που παρέχεται στα περισσότερα πεδία εφαρμογής είναι ελλιπής και μερικές φορές είναι χρήσιμο να είμαστε σε θέση να εξάγουμε κανόνες αυτόματα κάθε φορά που η βάση γνώσης πρέπει να ενημερώνεται. Τέτοιες ενημερώσεις, αν γίνουν χειροκίνητα, επηρεάζουν άκρως το κόστος. Η αυτόματη παραγωγή κανόνων μερικές φορές αναφέρεται και ως εξόρυξη γνώσης είναι ένας τρόπος εξαγωγής κανόνων απευθείας από τα δεδομένα και παρουσιάζοντάς τα με μια εύκολα κατανοητή μορφή. Μερικές από τις τεχνικές που χρησιμοποιούνται περιλαμβάνουν Νευρωνικά Δίκτυα, Γενετικούς Αλγόριθμους, Ασαφής Λογική και επίσης Νευροασαφή Λογική. Τα συστήματα που κατασκευάζουν ταξινομητές είναι ένα από τα εργαλεία που χρησιμοποιούνται συνήθως στην εξόρυξη δεδομένων. Τέτοια συστήματα παίρνουν ως είσοδο μια συλλογή περιπτώσεων, που καθεμιά ανήκει σε έναν μικρό αριθμό κλάσεων και περιγράφονται από τις τιμές τους για ένα σταθερό σύνολο μεταβλητών, και ως έξοδο έναν ταξινομητή που μπορεί να προβλέψει με ακρίβεια την κλάση στην οποία ανήκει μια νέα περίπτωση. Υπάρχουν διάφοροι αλγόριθμοι κανόνων ταξινόμησης, όπως οι OneR, Ridor, Conjuctive Rule κ.α. Υπάρχουν δύο τύποι στην εξαγωγή κανόνων ταξινόμησης, δηλαδή την άμεση μέθοδο και την έμμεση μέθοδο. Στην άμεση μέθοδο οι κανόνες εξάγονται από δεδομένα. Στην έμμεση μέθοδο οι κανόνες εξάγονται από άλλα μοντέλα ταξινόμησης. Οι κανόνες ταξινόμησης είναι επίσης γνωστοί ως κανόνες if then. Θα περιγράψουμε συνοπτικά μερικούς αλγόριθμους κανόνων ταξινόμησης [22]. Ο αλγόριθμος JRip (RIPPER) Προτάθηκε από τον William W. Cohen ως μια βελτιστοποιημένη έκδοση του IREP. Ο RIPPER κατασκευάζει ένα σύνολο κανόνων προσθέτοντας επαναληπτικά κανόνες σε ένα κενό σύνολο κανόνων μέχρι να καλυφθούν όλα τα θετικά παραδείγματα. Οι κανόνες σχηματίζονται προσθέτοντας συνθήκες στην υπόθεση ενός κανόνα (ξεκινώντας με κενή υπόθεση) μέχρι να μην καλύπτονται αρνητικά παραδείγματα. Ένας συνδυασμός με τεχνικές cross-validation και μήκους ελάχιστης περιγραφής χρησιμοποιείται για να αποτρέψει την υπερπροσαρμογή (overfitting). Μπορεί να εφαρμοστεί επίσης και σε συνεχή δεδομένα. Έχει πολύ καλή απόδοση από άποψη χρόνου εκτέλεσης ακόμα και για μεγάλες βάσεις δεδομένων με θόρυβο [21]. Ο αλγόριθμος ΟneR Ο OneR ή One Rule είναι ένας απλός αλγόριθμός που προτάθηκε από τον Holt. Ο OneR κατασκευάζει έναν κανόνα για κάθε μεταβλητή στα δεδομένα εκπαίδευσης και μετά επιλέγει τον κανόνα με το μικρότερο ποσοστό σφάλματος. Για να δημιουργηθεί ένας κανόνας για μια μεταβλητή, η πιο συχνή κλάση για κάθε τιμή της μεταβλητής πρέπει να προσδιοριστεί. Η πιο συχνή κλάση είναι απλά η κλάση που εμφανίζεται πιο συχνά για αυτή την τιμή της μεταβλητής. Ένας κανόνας είναι απλά ένα σύνολο από τιμές μεταβλητών που δεσμεύεται στην κλάση πλειοψηφίας τους. Ο OneR επιλέγει τον κανόνα με το χαμηλότερο ποσοστό σφάλματος. Σε περίπτωση που δύο ή περισσότεροι κανόνες έχουν το ίδιο ποσοστό σφάλματος, ο κανόνας επιλέγεται τυχαία [21]. 30

31 Ο αλγόριθμος PART Ο PART είναι ένας αλγόριθμος που ακολουθεί την τεχνική «separate and conquer» και προτάθηκε από τους Eibe και Witten. Ο αλγόριθμος παράγει σύνολα κανόνων που καλούνται λίστες απόφασης οι οποίες είναι διατεταγμένα σύνολα κανόνων. Ένα νέο δεδομένο συγκρίνεται με κάθε κανόνα στη λίστα με τη σειρά, και το στοιχείο ανατίθεται σε μια κατηγορία του πρώτου κανόνα ταιριάσματος (μια προεπιλογή εφαρμόζεται αν δεν ταιριάζει με επιτυχία κανένας κανόνας). Ο PART κατασκευάζει ένα μερικό δέντρο απόφασης σε κάθε επανάληψη και κάνει το καλύτερο φύλλο σε έναν κανόνα. Ο αλγόριθμός είναι ένας συνδυασμός του C4.5 και του RIPPER [21]. Ο αλγόριθμος RIDOR Ο αλγόριθμος Ridor είναι μια υλοποίηση ενός Ripple-Down learner που προτάθηκε από τους Gaines και Compton. Παράγει πρώτα ένα προεπιλεγμένο κανόνα και στη συνέχεια τις εξαιρέσεις για τον προεπιλεγμένο κανόνα με το ελάχιστο (σταθμισμένο) ποσοστό σφάλματος. Κατόπιν παράγει τις καλύτερες εξαιρέσεις για κάθε εξαίρεση και επαναλαμβάνει μέχρι να κάνει καθαρό. Έτσι εκτελεί μια επέκταση εξαιρέσεων που μοιάζει με δέντρο. Οι εξαιρέσεις είναι ένα σύνολο κανόνων που προβλέπει κλάσεις διαφορετικές από την προεπιλεγμένη. Ο IREP χρησιμοποιείται για να παράγει τις εξαιρέσεις [21]. Ο αλγόριθμος Decision Table Ο αλγόριθμος αυτός προτάθηκε από τον Kohavi. Συνοψίζει το σύνολο δεδομένων με έναν πίνακα απόφασης ο οποίος περιέχει τον ίδιο αριθμό μεταβλητών με το αρχικό σύνολο δεδομένων. Κατόπιν, ένα νέο στοιχείο δεδομένων ανατίθεται σε μια κατηγορία βρίσκοντας τη γραμμή στον πίνακα απόφασης που να ταιριάζει με τις τιμές της μη κλάσης του στοιχείου δεδομένων. Ο Decision Table απασχολεί τη μέθοδο wrapper για να βρει ένα καλό υποσύνολο μεταβλητών για να το εντάξει στον πίνακα. Με την διαγραφή μεταβλητών που συμβάλλουν ελάχιστα ή καθόλου σε ένα μοντέλο του συνόλου δεδομένων, ο αλγόριθμος μειώνει την πιθανότητα του overfitting και δημιουργεί έναν μικρότερο και συμπυκνωμένο πίνακα απόφασης [21]. Ο αλγόριθμος ConjuctiveRule Ο αλγόριθμος αυτός υλοποιεί ένα μόνο conjunctive rule learner που μπορεί να προβλέψει για αριθμητικές και κατηγορικές κλάσεις. Ένας κανόνας αποτελείται από υποθέσεις που έχουν AND μεταξύ τους και το συμπέρασμα (τιμή κλάση) για την ταξινόμηση. Σε αυτή την περίπτωση, το συμπέρασμα του κανόνα είναι η κατανομή των διαθέσιμων κλάσεων (ή μέση τιμή για μια αριθμητική τιμή) στο σύνολο δεδομένων. Αν το στιγμιότυπο ελέγχου δεν καλύπτεται από αυτό τον κανόνα, τότε προβλέπεται χρησιμοποιώντας τη τιμή της προεπιλεγμένης κλάσης που δεν καλύπτεται από τον κανόνα στα δεδομένα εκπαίδευσης. Αυτός ο learner επιλέγει μια υπόθεση υπολογίζοντας το Κέρδος Πληροφορίας κάθε υπόθεσης και κλαδεύει τον παραγόμενο κανόνα χρησιμοποιώντας το Reduced Error Pruning (REP) στον αριθμό των υποθέσεων. Για ταξινόμηση, η Πληροφορία μιας υπόθεσης είναι ο σταθμισμένος μέσος όρος των εντροπιών και των δεδομένων που καλύπτονται και αυτών που δεν καλύπτονται από τον κανόνα [21]. 31

32 3. Το κέλυφος CLIPS 3.1. Γενικά Το CLIPS (C Language Integrated Production System) είναι ένα περιβάλλον που προσφέρει δυνατότητες για προγραμματισμό με κανόνες, αντικείμενα και συναρτήσεις. Αναπτύχθηκε από τη NASA με σκοπό να αποτελέσει μια χαμηλού κόστους πλατφόρμα ανάπτυξης έμπειρων συστημάτων, αντικαθιστώντας τα ήδη υπάρχοντα τα οποία βασίζονταν στη γλώσσα LISP. Το CLIPS ακολουθεί την ορθή αλυσίδωση ως μέθοδο εξαγωγής συμπερασμάτων και αποτελείται από: τη λίστα γεγονότων (facts list) η οποία αντιστοιχεί στη μνήμη εργασίας των έμπειρων συστημάτων. Πρόκειται για τον χώρο στον οποίο αποθηκεύονται τα γεγονότα (facts), τόσο εκείνα που ορίζονται αρχικά όσο και εκείνα κατά την διάρκεια εκτέλεσης του προγράμματος. τη βάση κανόνων (ή βάση γνώσης) (rule base ή αλλιώς knowledge base), όπου περιέχονται οι κανόνες. τον μηχανισμό εξαγωγής συμπερασμάτων (inference engine) που ελέγχει τη λειτουργία του συστήματος και περιέχει στρατηγικές επίλυσης συγκρούσεων για την επιλογή του κανόνα προς πυροδότηση. Το σύνολο των υποψήφιων προς πυροδότηση κανόνων αποτελεί την ατζέντα (agenda) του συστήματος. Ένα πρόγραμμα στο CLIPS είναι ένα σύνολο από κανόνες και γεγονότα και η εκτέλεσή του συνίσταται σε μια ακολουθία από πυροδοτήσεις κανόνων των οποίων οι συνθήκες ικανοποιούνται. Η ικανοποίηση των συνθηκών γίνεται μέσω ταυτοποίησής τους με γεγονότα που υπάρχουν στη λίστα γεγονότων. Η εκτέλεση τερματίζεται όταν δεν υπάρχουν άλλοι κανόνες προς πυροδότηση. Ο κύκλος λειτουργίας του CLIPS είναι ο κλασσικός κύκλος λειτουργίας ενός έμπειρου συστήματος: 1. Εύρεση όλων των κανόνων των οποίων οι συνθήκες ικανοποιούνται και προσθήκη τους στην ατζέντα. 2. Αν η ατζέντα είναι κενή ή ο μέγιστος αριθμός πυροδοτήσεων έχει συμπληρωθεί τότε η εκτέλεση τερματίζεται. 3. Διάταξη των κανόνων στην ατζέντα με βάση τη στρατηγική επίλυσης συγκρούσεων. 4. Πυροδότηση του πρώτου κανόνα στην ατζέντα. 5. Επιστροφή στο βήμα 1, εκτός αν υπάρχει εντολή τερματισμού (halt). 32

33 Το περιβάλλον του CLIPS Το περιβάλλον του CLIPS ξεκινά σε περιβάλλον MS-Windows εκτελώντας το αρχείο CLIPSWIN.EXE. Αμέσως μετά εμφανίζεται στην οθόνη το γραφικό περιβάλλον του κελύφους, όπως φαίνεται στο Σχήμα 3.1., όπου είναι ανοικτά όλα τα παράθυρα περιβάλλοντος. Στο Dialog Window γίνεται το τρέξιμο των προγραμμάτων και εμφανίζονται τα αποτελέσματα. Στο Facts εμφανίζονται τα περιεχόμενα της λίστας γεγονότων, ενώ στο Agenda τα περιεχόμενα της ατζέντας. Για να «φορτώσουμε» ένα πρόγραμμα CLIPS, επιλέγουμε από το μενού File ή την επιλογή Load και μέσα από το σχετικό παράθυρο επιλέγουμε το αρχείο που θέλουμε που συνήθως έχει κατάληξη *.clp. Για να εκτελέσουμε ένα πρόγραμμα γραμμένο σε CLIPS, επιλέγουμε και εκτελούμε αρχικά την εντολή Reset από το μενού επιλογής Execution του CLIPS, και στη συνέχεια, εκτελούμε την εντολή Run από το ίδιο μενού. Για να εξέλθουμε από το περιβάλλον του CLIPS χρησιμοποιούμε την εντολή exit: CLIPS> (exit). Βασικά Δομικά Στοιχεία Σχήμα 3.1.: Το Περιβάλλον του κελύφους CLIPS Τα βασικά δομικά στοιχεία του CLIPS είναι τα εξής: Σύμβολα (symbols): Οποιαδήποτε ακολουθία εκτυπώσιμων χαρακτήρων που δεν ξεκινά από <,, \, &, (, ), $,?, +, - και δεν περιέχει κανέναν από τους χαρακτήρες <,, \, &, (, ), ; Αλφαριθμητικά (strings): Οποιαδήποτε ακολουθία εκτυπώσιμων χαρακτήρων ανάμεσα σε διπλά εισαγωγικά, π.χ. This is a nice program, 2A Αριθμοί (numbers): 23, -23, +23 (integers), 23.34, +23.0, 23e4, -23.2e-5 (floats) 33

34 Σχόλια: από το ; μέχρι το τέλος της γραμμής Μεταβλητές Υπάρχουν δύο είδη μεταβλητών, οι μονότιμες και οι πολλαπλών τιμών. Μονότιμες (singlevalue): ξεκινούν με? (Π.χ.?x,?day και οι επιτρεπτές τιμές που μπορεί να πάρει είναι: 32, flight34, mary, a12 ). Πολλαπλών τιμών (multivalue): ξεκινούν με $?. (Π.χ. $?days με επιτρεπτές τιμές: ( ), (mon tues wedn). Οι μεταβλητές, ανάλογα με την εμβέλειά τους, διακρίνονται σε: Καθολικές μεταβλητές (global variables): οι οποίες είναι προσπελάσιμες από παντού και ορίζονται ως: (defglobal?*<σύμβολο>* = <έκφραση>). Π.χ. (defglobal?*x* = 0) Τοπικές μεταβλητές (local variables): οι οποίες είναι προσπελάσιμες μόνο μέσα από τη δομή (π.χ. κανόνας, συνάρτηση) που χρησιμοποιούνται. Γεγονότα Τα γεγονότα είναι λίστες από σύμβολα τα οποία περικλείονται σε παρενθέσεις, αποτελούν την πληροφορία την οποία το σύστημα γνωρίζει και βάσει της οποίας εξάγει συμπεράσματα και μπορεί να είναι δύο ειδών: Διατεταγμένα: Πρόκειται για λίστες από τιμές, που παριστάνουν σχετικά απλά γεγονότα, όπου όμως παίζει ρόλο η σειρά των τιμών, π.χ. (flight 734 DELTA), (person George), (class A1 1995). Μη διατεταγμένα ή προτύπου: Πρόκειται για ονοματοποιημένες λίστες που περιέχουν λίστες δύο στοιχείων, οι οποίες σχετίζονται με αντίστοιχο πρότυπο γεγονότων (fact template), και παριστάνουν πιο σύνθετα γεγονότα, π,χ, (student (age 19) (year a) (sex male)) Εισαγωγή και διαγραφή γεγονότων Για να εισάγουμε γεγονότα στη λίστα γεγονότων υπάρχουν δύο τρόποι: Με την εντολή assert: Εισάγει ένα γεγονός και χρησιμοποιείται συνήθως στο δεξιό μέρος των κανόνων. Σύνταξη: (assert <fact>). Π.χ. (assert (water-tank empty)) Με την εντολή deffacts: Χρησιμοποιείται για τη μαζική εισαγωγή γεγονότων. Σύνταξη: (deffacts <όνομα> σχόλιο <fact1> <fact2> <factn>) 34

35 Για να διαγράψουμε ένα γεγονός από τη λίστα χρησιμοποιούμε την εντολή retract η οποία συντάσσεται ως εξής: (retract <fact-index>) π.χ. (retract 2) Συνήθως όμως σε έναν κανόνα δεν ξέρουμε τον αριθμό του γεγονότος, οπότε τότε θα χρησιμοποιούμε τον ειδικό τελεστή <-, π.χ.?x <- (car AudiA nai idravliki 25700) (retract?x) Πρότυπα Γεγονότων Τα πρότυπα γεγονότων είναι μια δομή αναπαράστασης πιο σύνθετων γεγονότων. Κάθε πρότυπο έχει ένα σύνολο από ιδιότητες (slots) στις οποίες μπορεί να ανατεθούν τιμές αυτόνομα, ενώ επιπλέον μπορεί να ορισθούν και οι τύποι των τιμών αυτών ώστε να γίνονται οι απαραίτητοι έλεγχοι. Ο ορισμός των προτύπων γεγονότων γίνεται με τη συνάρτηση deftemplate. Σύνταξη προτύπου: (deftemplate <template name> (slot <slotname1> (type <type1>)) (multislot <slotname2> (type <type2>)) (slot <slotnamen> (type <typen>)) ) ;ιδιότητα 1 τύπου1 ;ιδιότητα 2 τύπου2 ;ιδιότητα Ν τύπουν όπου το slotnamen είναι το όνομα της ιδιότητας και το όρισμα (type <typen>) καθορίζει τον τύπο της συγκεκριμένης ιδιότητας. Οι ιδιότητες slot μπορεί να πάρουν σαν τιμή ένα σύμβολο ή αριθμό και οι ιδιότητες multislot δέχονται πολλαπλές τιμές. Στο παρακάτω πίνακα δίνονται οι διαθέσιμοι τύποι τιμών για τις ιδιότητες των προτύπων: Τύπος Η ιδιότητα μπορεί να περιέχει SYMBOL σύμβολα STRING αλφαριθμητικά LEXEME σύμβολα ή αλφαριθμητικά INTEGER ακέραιες τιμές FLOAT πραγματικές τιμές NUMBER ακέραιες ή πραγματικές τιμές FACT-ADDRESS διεύθυνση γεγονότος?variable τιμές οποιουδήποτε τύπου H deftemplate δεν προσθέτει κάποιο γεγονός, αλλά ορίζει τη μορφή που θα έχουν τα γεγονότα αυτού του είδους. 35

36 3.2. Συμβολικοί κανόνες CLIPS Οι κανόνες στο CLIPS, όπως και σε όλα τα έμπειρα συστήματα, αποτελούνται από δύο μέρη, τις συνθήκες και τις ενέργειες, είναι δηλαδή της μορφής: if <συνθήκες> then <ενέργειες> που αναπαριστούν ευρετική γνώση (heuristic knowledge) στη βάση γνώσης. Οι συνθήκες είναι τις περισσότερες φορές ένα σύνολο από γεγονότα τα οποία πρέπει να υπάρχουν στη λίστα γεγονότων για να ικανοποιείται ο κανόνας. Οι συνθήκες ενός κανόνα μπορεί να περιέχουν μεταβλητές και έτσι να ταυτοποιούνται με περισσότερα του ενός γεγονότα της λίστας γεγονότων. Αυτό επιτρέπει να ικανοποιείται ο κανόνας με περισσότερους από έναν τρόπους, έχοντας κάθε φορά διαφορετικές αναθέσεις τιμών στις μεταβλητές του. Στην περίπτωση αυτή στην ατζέντα εισάγεται ο κανόνας τόσες φορές, όσοι είναι οι διαφορετικοί τρόποι με τους οποίους ικανοποιείται και φυσικά με διαφορετικές αναθέσεις στις αντίστοιχες μεταβλητές. Στις ενέργειες του κανόνα περιγράφεται το τι θα λάβει χώρα κατά την πυροδότησή του. Οι ενέργειες μπορεί να περιλαμβάνουν οποιαδήποτε συνάρτηση του CLIPS, όπως για παράδειγμα την εισαγωγή ή διαγραφή ενός γεγονότος από τη λίστα γεγονότων, την εκτύπωση αποτελεσμάτων, υπολογισμό τιμών, κτλ. Οι κανόνες ορίζονται μέσω της συνάρτησης defrule του CLIPS. defrule Σύνταξη: (defrule <rule-name> <comments> => ) (condition 1) ;Συνθήκη 1 (condition 2) ;Συνθήκη 2. (condition n) ;Όνομα Κανόνα (μοναδικό) ;Επεξηγηματικά σχόλια για τον κανόνα ;Συνθήκη n (command 1) ;Εντολή 1 (command 2) ;Εντολή 2. (command n) ;Εντολή n Το σύμβολο => διαχωρίζει τις συνθήκες από τις ενέργειες του κανόνα. Το όνομα του κανόνα πρέπει να είναι μοναδικό. Αν και είναι δυνατό εντολές της παραπάνω μορφής να εισαχθούν από τη γραμμή εντολών του συστήματος, συνήθως αποθηκεύονται σε κάποιο αρχείο κειμένου και φορτώνονται στο CLIPS. [2] 36

37 3.3. Ασαφείς Κανόνες FuzzyCLIPS Γενικά Το FuzzyCLIPS είναι μια επέκταση του κελύφους CLIPS για την αναπαράσταση κα το χειρισμό ασαφών γεγονότων και κανόνων. Σε αντίθεση με την λειτουργικότητα του CLIPS, το FuzzyCLIPS μπορεί να ασχοληθεί με ακριβές, ασαφές (ή ανακριβές), και συνδυαστικό συλλογισμό, επιτρέποντας ασαφείς και κανονικούς όρους να αναμειγνύονται ελεύθερα στους κανόνες και τα γεγονότα ενός έμπειρου συστήματος. Το σύστημα χρησιμοποιεί δύο βασικές ανακριβείς έννοιες, την ασάφεια (fuzziness) και την αβεβαιότητα (uncertainty). Ασάφεια Η ασάφεια εμφανίζεται όταν το σύνορο μιας πληροφορίας δεν είναι σαφές. Για παράδειγμα, έννοιες όπως νέος, ψηλός, καλός ή υψηλό είναι ασαφείς. Δεν υπάρχει καμία ενιαία ποσοτική τιμή η οποία να ορίζει τον όρο νέος. Για κάποιους ανθρώπους, η ηλικία 25 είναι νέα, και για άλλους, η ηλικία 35 είναι νέα. Στην πραγματικότητα η έννοια νέος δεν έχει καθαρά όρια. Η ηλικία 1 είναι σίγουρα νέα και η ηλικία 100 δεν είναι σίγουρα νέα, εντούτοις, η ηλικία 35 έχει κάποια πιθανότητα να είναι νέα καθώς επίσης και κάποια πιθανότητα να μην είναι νέα και συνήθως εξαρτάται από το κείμενο στο οποίο εξετάζεται. Η αναπαράσταση αυτού του είδους πληροφορίας στο FuzzyCLIPS βασίζεται στην έννοια της θεωρίας των ασαφών συνόλων. Σε αντίθεση με την κλασσική θεωρία συνόλων όπου κάποιος ασχολείται με αντικείμενα των οποίων η συμμετοχή σε ένα σύνολο μπορεί να περιγραφτεί ξεκάθαρα, στην θεωρία ασαφών συνόλων η συμμετοχή ενός στοιχείου σε ένα σύνολο μπορεί να είναι μερική, δηλ. ένα στοιχείο ανήκει σε ένα σύνολο με ένα ορισμένο βαθμό (πιθανότητα) συμμετοχής. Πιο αυστηρά ένα ασαφές σύνολο A σε ένα κόσμο αναφοράς U χαρακτηρίζεται με μια συνάρτηση συμμετοχής μ Α : U [0,1] η οποία απεικονίζει έναν αριθμό μ Α (x) στο διάστημα [0, 1] με κάθε στοιχείο x του U. Αυτός ο αριθμός αναπαριστά το βαθμό συμμετοχής του x στο ασαφές σύνολο A. Αβεβαιότητα Η αβεβαιότητα προκύπτει όταν κάποιος δεν είναι απόλυτα σίγουρος σχετικά με μια πληροφορία. Ο βαθμός αβεβαιότητας αναπαριστάται συνήθως με μία crisp αριθμητική τιμή σε μια κλίμακα από το 0 ως το 1, όπου ένας συντελεστής βεβαιότητας του 1 συμβολίζει ότι το έμπειρο σύστημα είναι πολύ σίγουρο ότι ένα γεγονός είναι αληθές, και ένας συντελεστής βεβαιότητας του 0 συμβολίζει ότι είναι πολύ αβέβαιο ότι ένα γεγονός είναι αληθές. Στο FuzzyCLIPS, ένα γεγονός αποτελείται από δύο μέρη: το γεγονός και τον συντελεστή βεβαιότητας. Γενικά ένα γεγονός στο FuzzyCLIPS παίρνει την εξής μορφή: (fact) [CF certainty factor] Ο CF ενεργεί ως ο διαχωριστής ανάμεσα στο γεγονός και τον συντελεστή βεβαιότητας και το [ ] συμβολίζει ένα προαιρετικό μέρος. 37

38 Ασαφή Πρότυπα Όλες οι ασαφείς μεταβλητές πρέπει να προκαθορίζονται πριν από την χρήση τους με την εντολή deftemplate. Η σύνταξη των ασαφών μεταβλητών είναι η εξής: (deftemplate <name> [ <comment> ] <from> <to> [<unit>] (<fuzzy-set-description-1> < fuzzy-set-description-2> <fuzzy-set-description-n>) Ασαφές Πρότυπο Π.χ. (deftemplate age ;ορισμός της ασαφούς μεταβλητής age years ( (young (25 1) (50 0)) (old (50 0) (65 1)) ) ) όπου τα young, old είναι ασαφείς όροι, και το age είναι γλωσσική (ασαφής) μεταβλητή. Κάθε γλωσσική (ασαφής) μεταβλητή είναι μεταβλητή που παίρνει ασαφείς τιμές και έχει ένα σύνολο ασαφών όρων (που καλούνται πρωταρχικοί όροι στο FuzzyCLIPS) που είναι το σύνολο των τιμών που μπορεί να πάρει η ασαφής μεταβλητή. Ασαφείς Τιμές Μια ασαφής τιμή έχει τη μορφή: (<name> <fuzzy-set-description>) όπου το <name> αναπαριστά το όνομα που περιγράφει μια ασαφή έννοια, και το <fuzzy-setdescription> ορίζει μια συνάρτηση συμμετοχής μιας δοσμένης ασαφής τιμής. Η συνάρτηση συμμετοχής μπορεί να περιγραφεί χρησιμοποιώντας: ζεύγη τιμών. <Το <description-of-fuzzy-set> είναι (x 1 μ 1 ) (x 2, μ 2 ) (x n μ n ), όπου x i < x i+1 συναρτήσεις. 38

39 Τύπου S: (S a c) Τύπου Ζ: (Z a c) Τύπου Π: (PI d b) λεκτικές εκφράσεις. <description of fuzzy set> ::= <singletons> <standard> <linq-expr> Ασαφή Πρότυπα με fuzzy slots Ένα fuzzy slot έχει τη μορφή: Ασαφείς Κανόνες <fuzzy-slot> ::= (slot <slot-name> (type FUZZY-VALUE <fuzzy-temp-name>) Οι ασαφείς κανόνες είναι κανόνες if-then των οποίων οι συνθήκες, οι ενέργειες ή και τα δύο είναι ασαφείς παρά crisp. Έχουν την εξής μορφή: if x is A then y is B, όπου x, y είναι λεκτικές μεταβλητές και τα Α, Β είναι λεκτικές τιμές (ασαφή σύνολα). Π,χ. ένας κλασσικός (crisp) κανόνας είναι if speed is >100 then stop-distance is >50 και ένας αντίστοιχος ασαφής κανόνας είναι if speed is fast then stop-distance is long. Πιο σύνθετοι κανόνες χρησιμοποιούν τελεστές AND ή/και OR στις συνθήκες, και έχουν περισσότερα του ενός συμπεράσματα. Απλοί Κανόνες Τρεις τύποι απλών κανόνων ορίζονται: CRISP_, FUZZY_CRISP, και FUZZY_FUZZY. Το μέρος πριν το _ αφορά τις συνθήκες και το μέρος μετά το _ αφορά τις ενέργειες. Αν οι συνθήκες του κανόνα δεν περιέχουν ένα ασαφές αντικείμενο, τότε το είδος του κανόνα είναι CRISP_ άσχετα με το αν οι ενέργειες περιέχουν ένα ασαφές γεγονός. Αν μόνο οι συνθήκες περιέχουν ένα 39

40 ασαφές γεγονός, τότε το είδος του κανόνα είναι FUZZY_CRISP. Αν και οι συνθήκες και οι ενέργειες περιέχουν ασαφή γεγονότα, τότε το είδος του κανόνα είναι FUZZY_FUZZY. Σύνθετοι Κανόνες Με πολλαπλές ενέργειες. Στο CLIPS, οι ενέργειες του κανόνα μπορούν μόνο να περιέχουν πολλαπλά πρότυπα (C 1, C 2,, C n ) με το τελεστή and ανάμεσά τους. Αντιμετωπίζονται ως πολλαπλοί κανόνες με μοναδική ενέργεια. Οπότε ο ακόλουθος κανόνας: if Α then C 1 and C 2 and and C n είναι ισοδύναμο με τους εξής κανόνες: if Α then C 1 if A then C 2 if A then C n Με πολλαπλές συνθήκες. Αν το C δεν περιέχει ασάφεια, τότε δεν χρειάζεται ιδιαίτερη μεταχείριση, δεδομένου ότι το συμπέρασμα θα είναι το (crisp fact) C. if A 1 and A 2 and A n then C 40

41 4. To Εργαλείο WEKA 4.1. Γενικά Το WEKA (Waikato Environment for Knowledge Analysis) είναι ένα δημοφιλές λογισμικό μηχανικής μάθησης γραμμένο σε Java, που αναπτύχθηκε στο Πανεπιστήμιο του Waikato, στην Νέα Ζηλανδία (Σχήμα 4.1). Το WEKA περιέχει μια συλλογή από εργαλεία οπτικοποίησης και αλγορίθμων για την ανάλυση δεδομένων και μοντέλων πρόβλεψης με γραφικές εφαρμογές για εύκολη πρόσβαση σε αυτή τη λειτουργία [20]. Σχήμα 4.1.: Το εργαλείο WEKA Το περιβάλλον εργασίας του Explorer (Σχήμα 4.2.) έχει διάφορα πάνελ που παρέχουν πρόσβαση στα κύρια συστατικά του πλαισίου εργασίας : Το πάνελ Preprocess μας επιτρέπει να εισάγουμε στοιχεία από μια βάση δεδομένων, ένα CSV αρχείο, κλπ. και να προεπεξεργαστούμε αυτά τα δεδομένα χρησιμοποιώντας αλγόριθμους φιλτραρίσματος. Αυτά τα φίλτρα μπορούν να χρησιμοποιηθούν για να μετασχηματίσουν τα δεδομένα (π.χ. να μετατρέψουν αριθμητικές τιμές σε αντίστοιχες διακριτές) και δύναται να διαγράψουν στιγμιότυπα και μεταβλητές σύμφωνα με συγκεκριμένα κριτήρια. Το πάνελ Classify επιτρέπει στο χρήστη να εφαρμόσει αλγόριθμους ταξινόμησης και παλινδρόμησης (που καλούνται ταξινομητές στο WEKA) σε ένα σύνολο δεδομένων, να υπολογίσει την ακρίβεια του μοντέλου πρόβλεψης που προκύπτει, και να οπτικοποιεί εσφαλμένες προβλέψεις, καμπύλες ROC, κλπ. ή το ίδιο το μοντέλο (εάν το μοντέλο είναι δυνατόν να οπτικοποιηθεί, όπως π.χ. σε ένα δέντρο απόφασης). Το πάνελ Associate παρέχει πρόσβαση στην εκμάθηση κανόνων συσχετίσεων που επιχειρούν να προσδιορίσουν όλες τις σημαντικές αλληλεξαρτήσεις μεταξύ των μεταβλητών στα δεδομένα. Το πάνελ Cluster δίνει πρόσβαση στις τεχνικές συσταδοποίησης στο WEKA, όπως π.χ. ο απλός αλγόριθμος k-means. Το πάνελ Select attributes παρέχει αλγόριθμους για τον προσδιορισμό των μεταβλητών με το μεγαλύτερο βαθμό πρόβλεψης σε ένα σύνολο δεδομένων. 41

42 Το πάνελ Visualize δείχνει έναν πίνακα διαγραμμάτων, όπου ξεχωριστά διαγράμματα μπορούν να επιλεχθούν και να διερευνηθούν και να αναλυθούν περαιτέρω χρησιμοποιώντας διάφορες εφαρμογές χειρισμού Σχήμα 4.2: Η επιφάνεια του Explorer Το πάνελ Preprocess Έστω ότι έχουμε μερικά δεδομένα και θέλουμε να κατασκευάσουμε ένα δέντρο απόφασης από αυτά. Καταρχήν, πρέπει να προετοιμάσουμε τα δεδομένα, μετά να ανοίξουμε τον Explorer και να φορτώσουμε τα δεδομένα. Κατόπιν επιλέγουμε μια μέθοδο κατασκευής δέντρου απόφασης, κατασκευάζουμε ένα δέντρο, και ερμηνεύουμε το αποτέλεσμα. Στον Explorer μπορούμε να πάμε πίσω και εμπρός ανάμεσα στα αποτελέσματα που έχουμε λάβει, να αξιολογήσουμε τα μοντέλα που έχουν κατασκευαστεί πάνω σε διαφορετικά σύνολα δεδομένων, και να οπτικοποιήσουμε γραφικά και τα μοντέλα και τα σύνολα δεδομένων από μόνα τους συμπεριλαμβανομένων οποιωνδήποτε λαθών ταξινόμησης που τα μοντέλα κάνουν Προεπεξεργασία στο WEKA Προετοιμάζοντας τα δεδομένα (Μετατροπή αρχείου σε.arff) Τα δεδομένα που βρίσκονται στην βάση δεδομένων του UCI Machine Repository (στο παραπάνω site) πρέπει να εισαχθούν στο Weka με την μορφή.arff. Φορτώνουμε τα δεδομένα σε έναν κειμενογράφο και δημιουργούμε αρχείο arff ως εξής: Τα ARFF αρχεία έχουν δύο ξεχωριστά τμήματα. Το πρώτο τμήμα είναι το Header, το οποίο ακολουθείται από το τμήμα Data. 42

43 Το Header του αρχείου ARFF περιέχει το όνομα της σχέσης, μια λίστα των μεταβλητών (οι στήλες στα δεδομένα), και τους τύπους τους. Η Το όνομα της σχέσης ορίζεται ως η πρώτη γραμμή στο αρχείο arff. Η μορφή <relation-name> όπου το <relation-name> είναι ένα string και αποτελεί το όνομα του dataset. Οι Με αυτές προσθέτουμε τις πληροφορίες των μεταβλητών. Η μορφή τους <attribute-name> <data-type> όπου το <attribute-name πρέπει να ξεκινά με έναν αλφαβητικό χαρακτήρα και το <data-type> μπορεί να είναι: numeric. Οι numeric μεταβλητές μπορεί να είναι πραγματικοί ή ακέραιοι αριθμοί nominal. Οι nominal τιμές ορίζονται παρέχοντας ένα <nominal-specification> που απαριθμεί τις δυνατές τιμές: <nominal-name1>, <nominal-name2>, string date [<date-format>] Το τμήμα Data περιέχει τη γραμμή δήλωσης των δεδομένων και τις γραμμές των στιγμιοτύπων. Η Η είναι μια απλή γραμμή που δηλώνει την έναρξη του τμήματος των δεδομένων στο αρχείο. Η μορφή είναι: Τα δεδομένα των Κάθε στιγμιότυπο αναπαριστάται με μια απλή γραμμή. Ένα σύμβολο ποσοστού (%) εισάγει ένα σχόλιο, το οποίο συνεχίζει στο τέλος της γραμμής. Οι τιμές των μεταβλητών για κάθε στιγμιότυπο χωρίζονται με κόμματα. Πρέπει να εμφανίζονται με τη σειρά που δηλώθηκαν στο τμήμα header (δηλ. τα δεδομένα που αντιστοιχούν στην ν-οστή είναι πάντα το ν-οστό πεδίο της μεταβλητής). Οι ελλιπείς τιμές αναπαριστώνται με ένα ερωτηματικό, 4.4,?, 1.5,?, Iris-setosa 43

44 Κατόπιν αποθηκεύουμε το αρχείο.arff και το αρχείο είναι έτοιμο για να εισαχθεί στο Weka. Στο παρακάτω σχήμα (Σχήμα 4.3.) παραθέτουμε ένα παράδειγμα ενός αρχείου buying maint doors persons lug_boot safety class vhigh,vhigh,2,2,small,low,unacc vhigh,vhigh,2,2,small,med,unacc vhigh,vhigh,2,2,small,high,unacc vhigh,vhigh,2,2,med,low,unacc vhigh,vhigh,2,2,med,med,unacc vhigh,vhigh,2,2,med,high,unacc vhigh,vhigh,2,2,big,low,unacc vhigh,vhigh,2,2,big,med,unacc vhigh,vhigh,2,2,big,high,unacc vhigh,vhigh,2,4,small,low,unacc vhigh,vhigh,2,4,small,med,unacc... Σχήμα 4.3.: Παράδειγμα ARFF αρχείου Μόλις φορτωθεί το αρχείο arff στο WEKA, το πάνελ Preprocess δείχνει διάφορες πληροφορίες για το σύνολο δεδομένων (Σχήμα 4.2.), όπως το πλήθος των στιγμιοτύπων και των μεταβλητών αυτού. Επιλέγοντας μια μεταβλητή μας δίνονται επίσης πληροφορίες για το αν η μεταβλητή αυτή έχει ελλιπείς τιμές, τί τύπου είναι (αριθμητική ή κατηγορική) το πλήθος των διακριτών τιμών της, το πόσες φορές εμφανίζεται η καθεμία από αυτές και των πλήθος των μοναδικών τιμών της. Σε περίπτωση που η μεταβλητή είναι αριθμητική (numerical), μας δίνει την μέγιστη και ελάχιστη τιμή της, το μέσο της και την τυπική απόκλισή της. Επιπλέον μας δίνονται ιστογράμματα για κάθε μεταβλητή σε σχέση με τις τιμές της μεταβλητής κλάσης. Εφαρμόζοντας Φίλτρα Μπορούμε να διαγράψουμε μια μεταβλητή χρησιμοποιώντας φίλτρα μεταβλητών στο WEKA (Σχήμα 4.4.). Στο πάνελ Filter, κλικάρουμε την επιλογή Choose και ανοίγει ένα παράθυρο με μια λίστα διαθέσιμων φίλτρων. Επιλέγουμε το φίλτρο weka.filters,unsupervised.attribute.remove 44

45 Μπορούμε να κάνουμε διακριτοποίηση των αριθμητικών ή συνεχών μεταβλητών επιλέγοντας από την λίστα το φίλτρο weka.filters.unsupervised.attribute.discretize. Σχήμα 4.4.: Φίλτρα στο WEKA 4.3. Κατηγοριοποίηση στο WEKA Γενικά Η κατηγοριοποίηση δεδομένων (data classification) αποτελεί μία από τις βασικές μορφές εξόρυξης γνώσης. Βασίζεται στην εξέταση των χαρακτηριστικών ενός νέου αντικειμένου (μη κατηγοριοποιημένο), το οποίο με βάση τα χαρακτηριστικά αυτά αντιστοιχίζεται σε ένα προκαθορισμένο σύνολο κλάσεων. Βασικές μέθοδοι κατηγοριοποίησης αποτελούν οι μέθοδοι Bayes, τα Δέντρα Απόφασης, τα Νευρωνικά Δίκτυα και άλλα. Κατασκευάζοντας ένα δέντρο απόφασης Επιλέγουμε την καρτέλα Classify και βλέπουμε την εικόνα του Σχήματος 4.5. Στην πραγματικότητα, το σχήμα δείχνει πώς θα είναι αφότου έχουμε αναλύσει το σύνολο δεδομένων μας. Επιλέγουμε αρχικά τον ταξινομητή κάνοντας κλικ στο Choose, όπου μας ανοίγει το τμήμα trees ενός ιεραρχικού μενού και βρίσκουμε τον ταξινομητή J48. Μόλις τον επιλέξουμε μπορούμε να δούμε τις παραμέτρους του και να αλλάξουμε τις τιμές του αν επιθυμούμε. Ο Explorer επιλέγει γενικά λογικές τιμές. Εμείς ορίζουμε το Cross Validation στο 5, 45

46 και το reduced error pruning το κάνουμε true. Εξ ορισμού, η κλάση λαμβάνεται να είναι η τελευταία μεταβλητή στα δεδομένα. Μόλις ορίσουμε αυτές τις παραμέτρους, πατάμε το Start και το WEKA παράγει την έξοδο που βλέπουμε στο Σχήμα 4.5 [12]. Εξετάζοντας την Έξοδο Σχήμα 4.5.: Κατηγοριοποίηση στο WEKA Στην αρχή μας δίνεται μια περίληψη του συνόλου δεδομένων και το γεγονός ότι χρησιμοποιήθηκε cross-validation 5 για να το αξιολογήσει. Κατόπιν βλέπουμε ένα κλαδεμένο δέντρο απόφασης σε κειμενική μορφή. Στη δομή του δέντρου, μια : εισάγει την κλάση που έχει ανατεθεί σε ένα συγκεκριμένο φύλλο, ακολουθούμενη από τον αριθμό των στιγμιοτύπων που φτάνουν σε αυτό το φύλλο, ο οποίος εκφράζεται σαν ένας δεκαδικός αριθμός λόγω του ότι ο αλγόριθμος χρησιμοποιεί κλασματικά στιγμιότυπα για να χειριστεί ελλιπείς τιμές. Αν υπάρχουν λάθος ταξινομημένα στιγμιότυπα, ο αριθμός τους θα εμφανίζεται επίσης, π.χ. (3.0/1.0) σημαίνει ότι τρία στιγμιότυπα έφτασαν σε αυτό το φύλλο, από τα οποία ένα ταξινομείται λανθασμένα. Κάτω από τη δομή του δέντρου τυπώνεται ο αριθμός των φύλλων και το μέγεθος του δέντρου που είναι ο συνολικός αριθμός των κόμβων. Υπάρχει τρόπος να δούμε τα δέντρα απόφασης πιο γραφικά επιλέγοντας Visualize tree. Το επόμενο κομμάτι της εξόδου αξιολογεί την απόδοση του δέντρου (Σχήμα 4.6.). Όπως μπορούμε να δούμε, περισσότερο από το 10% των στιγμιοτύπων (189 από τα 1728) έχουν ταξινομηθεί λάθος στο cross-validation. Αυτό δηλώνει ότι τα αποτελέσματα που λαμβάνονται από τα δεδομένα εκπαίδευσης είναι αισιόδοξα σε σύγκριση με το τι μπορεί να ληφθεί από ένα ανεξάρτητο σύνολο ελέγχου από την ίδια πηγή. Από τον πίνακα σύγχυσης στο τέλος 46

47 παρατηρούμε ότι 65 στιγμιότυπα της κλάσης unacc έχουν ανατεθεί στην κλάση acc, 2 στην κλάση good και 2 στην κλάση vgood κ.ο.κ. Η έξοδος μας δίνει ακόμα εκτός από το σφάλμα ταξινόμησης, και το Kappa statistic, το μέσο απόλυτο σφάλμα και το μέσο τετραγωνικό σφάλμα της κλάσης. Time taken to build model: 0.02seconds === Stratified cross-validation === === Summary === Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances 1728 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class unacc acc good vgood Weighted Avg === Confusion Matrix === a b c d <-- classified as a = unacc b = acc c = good d = vgood Σχήμα 4.6.: Κομμάτι της εξόδου του ταξινομητή J Ο αλγόριθμος J48 Είναι ένας αλγόριθμος που χρησιμοποιείται για να παράγει ένα δέντρο απόφασης και αποτελεί μια επέκταση του αλγορίθμου ID3. O J48 (ή αλλιώς C4.5) δημιουργεί δέντρα απόφασης από ένα σύνολο δεδομένων εκπαίδευσης χρησιμοποιώντας την έννοια της εντροπίας πληροφοριών. Τα δεδομένα εκπαίδευσης είναι ένα σύνολο S = s 1, s 2, από ήδη ταξινομημένα δείγματα. Κάθε δείγμα S i = x 1, x 2, είναι ένα διάνυσμα όπου τα x 1, x 2, 47

48 αντιπροσωπεύουν τις ιδιότητες ή τα χαρακτηριστικά γνωρίσματα του δείγματος. Επίσης, στα δεδομένα εκπαίδευσης αντιστοιχεί ένα διάνυσμα C = c 1, c 2, όπου c 1, c 2, αντιπροσωπεύει την κατηγορία στην οποία ανήκει κάθε δείγμα. Ο J48 χρησιμοποιεί το γεγονός ότι κάθε χαρακτηριστικό των δεδομένων μπορεί να χρησιμοποιηθεί για να λάβει μια απόφαση, η οποία χωρίζει τα δεδομένα σε μικρότερα υποσύνολα. Ο J48 εξετάζει το ομαλοποιημένο κέρδος πληροφοριών (information gain - διαφορά στην εντροπία) που προκύπτει από την επιλογή ενός χαρακτηριστικού για το διαχωρισμό των δεδομένων. Το χαρακτηριστικό με το υψηλότερο ομαλοποιημένο κέρδος πληροφοριών είναι αυτό που χρησιμοποιείται για να ληφθεί μια απόφαση. Ο αλγόριθμος επαναλαμβάνεται για μικρότερες υπολίστες δεδομένων. Στο Σχήμα 4.7., παρακάτω, παρουσιάζεται ο ψευδοκώδικας του αλγόριθμου J48. Αλγόριθμός C4.5 (Weka J48) Για κάθε χαρακτηριστικό Α Βρίσκουμε το ομαλοποιημένο κέρδος πληροφοριών από το διαχωρισμό στο Α Έστω ότι A_best είναι το χαρακτηριστικό με το υψηλότερο ομαλοποιημένο κέρδος πληροφοριών Δημιούργησε έναν κόμβο απόφασης Node που χωρίζεται στο A_best Επανερχόμαστε στις υπολίστες που λαμβάνονται με το διαχωρισμό στο A_best και προσθέτουμε αυτούς τους κόμβους ως παιδιά του Node. Σχήμα 4.7.: Ο ψευδοκώδικας του αλγόριθμου J48 48

49 5. Το Εργαλείο GUI Ant-Miner 5.1. Γενικά Το GUI Ant-Miner είναι ένα εργαλείο για την εξαγωγή κανόνων ταξινόμησης από δεδομένα. Είναι μια ενημερωμένη έκδοση ενός αλγόριθμου της εξόρυξης δεδομένων που καλείται Ant- Miner (Ant Colony-based Data Miner), ο οποίος προτάθηκε το 2002 από τους Parpinelli, Lopes και Freitas [15]. Το GUI Ant-Miner διαφέρει από τους παραδοσιακούς αλγόριθμους στο εξής: έχει ένα φιλικό περιβάλλον εργασίας χρήστη, καθιστά δυνατή τη χρήση πληθυσμών μυρμηγκιών εντός της έννοιας Βελτιστοποίησης με Αποικίες Μυρμηγκιών (Ant Colony Optimization ACO), το αρχείο εισόδου των δεδομένων τυποποιείται με το γνωστό σύστημα Weka, και τρέχει σε σχεδόν οποιοδήποτε λειτουργικό σύστημα μιας και είναι γραμμένο σε Java. Το αρχείου εισόδου των δεδομένων Το GUI Ant-Miner φορτώνει μόνο αρχεία ARFF, όπως και το εργαλείο WEKA. Είναι σημαντικό να αναφέρουμε ότι το GUI Ant-Miner μπορεί να χειριστεί μόνο nominal μεταβλητές. Αν προσπαθήσουμε να χρησιμοποιήσουμε numerical μεταβλητές, θα εμφανιστεί ένα μήνυμα σφάλματος. Για να μπορούμε να κάνουμε χρήση numerical μεταβλητών πρέπει πρώτα να τις διακριτοποιήσουμε στο WEKA. Παράμετροι Οι παράμετροι που μπορούν να τροποποιηθούν από το χρήστη (Σχήματα 5.1. & 5.2.) είναι: Number of cross-validation folds: Το σύνολο δεδομένων διαιρείται σε έναν αριθμό φορών, ο οποίος είναι επίσης ο αριθμός των επαναλήψεων που εκτελεί ο αλγόριθμος. Σε κάθε επανάληψη μια φορά επιλέγεται ως το σύνολο ελέγχου, ενώ όλες οι άλλες φορές ομαδοποιούνται στο σύνολο εκπαίδευσης. Όταν ολοκληρωθεί ο αριθμός των επαναλήψεων, οι προβλεφθείσες ορθότητες υπολογίζονται κατά μέσο όρο και αναφέρονται ως η προβλεφθείσα ορθότητα (accuracy) της λίστας κανόνων που προκύπτει. Αυτή η διαδικασία είναι γνωστή ως διασταυρωμένη επικύρωση (cross-validation). Number of ants: Αυτός είναι ο αριθμός των μελών ενός πληθυσμού. Κάθε μέλος κατασκευάζει έναν κανόνα που αξιολογείται έναντι της ποιότητας των κανόνων των άλλων μελών. Μόνο το καλύτερο μονοπάτι μυρμηγκιού (κατασκευασμένος κανόνας) ενημερώνει το ίχνος της φερομόνης 1. Αν δεν είναι επιθυμητή η έννοια του πληθυσμού μυρμηγκιών, απλώς θέτουμε αυτό τον αριθμό με 1. Με τον τρόπο αυτό, η συμπεριφορά του GUI Ant- Miner είναι η ίδια με αυτήν του κλασσικού Ant-Miner. Minimum number of cases per rule: Κάθε κανόνας πρέπει να καλύπτει ένα ελάχιστο αριθμό περιπτώσεων για να επιβάλει κάποια γενικότητα στους ανακαλυφθέντες κανόνες. Αυτό βοηθά στην αποτροπή του υπερταιριάσματος (overfitting) του κανόνα στα δεδομένα εκπαίδευσης. 1 Τα μυρμήγκια εναποθέτουν στο δρόμο τους τη χημική ουσία φερομόνη, που την αντιλαμβάνονται και ακολουθούν τα υπόλοιπα. Αυτό γίνεται για την εύρεση του κοντινότερου δρόμου ανάμεσα στη φωλιά και την πηγή φαγητού. 49

50 Maximum number of uncovered cases in the training set: Η διαδικασία της ανακάλυψης κανόνων εκτελείται επαναληπτικά έως ότου ο αριθμός των περιπτώσεων εκπαίδευσης που δεν καλύπτονται από κανέναν ανακαλυφθέντα κανόνα να είναι μικρότερος από αυτό το κατώφλι. Number of rules used to test the convergence of the ants: Αν ένα μυρμήγκι έχει κατασκευάσει έναν κανόνα που είναι ακριβώς ο ίδιος με τον κανόνα που κατασκευάστηκε από τα n προηγούμενα μυρμήγκια, τότε το σύστημα συμπεραίνει ότι τα μυρμήγκια έχουν συγκλίνει σε έναν μοναδικό κανόνα (μονοπάτι). Number of iterations: Αυτός είναι ο μέγιστος αριθμός των επαναλήψεων που μπορεί να εκτελέσει ένας πληθυσμός μυρμηγκιών. Από κάθε πληθυσμό μόνο ο καλύτερος κανόνας που κατασκευάζεται εξάγεται και χρησιμοποιείται για την ενημέρωση του ίχνους της φερομόνης. Αν τα μυρμήγκια συγκλίνουν σε ένα μοναδικό κανόνα επιτυγχάνεται ο καθορισμένος αριθμός επαναλήψεων, η επανάληψη σταματά και μια άλλη επανάληψη ξεκινά. Το Περιβάλλον Εργασίας GUI Ant-Miner Σχήμα 5.1.: Η Προεπεξεργασία στο GUI Ant-Miner 1. Η ετικέτα Preprocess παρέχει πληροφορίες για το σύνολο δεδομένων 2. Δηλώνει το όνομα της σχέσης, τον πλήθος των στιγμιοτύπων και το πλήθος των μεταβλητών. 3. Εμφανίζει όλες τις μεταβλητές του συνόλου δεδομένων. Η τελευταία μεταβλητή της λίστας είναι πάντα η μεταβλητή κλάση. 50

51 4. Παρέχει πληροφορίες για την μεταβλητή που έχει επιλεχτεί. Αυτές περιέχουν το όνομα της μεταβλητής, τον αριθμό των στιγμιοτύπων με τις ελλιπείς τιμές, το πλήθος των διακριτών τιμών που η μεταβλητή έχει, και το πλήθος των εμφανίσεων κάθε τιμής. 5. Περιοχή που πρόκειται να εμφανίσει γραφήματα (μένει να υλοποιηθεί σε μια μελλοντική έκδοση του GUI Ant-Miner). 6. Status bar: εμφανίζει μια κινούμενη μπάρα στο διάστημα που εκτελείται η ταξινόμηση. Σχήμα 5.2.: Η Tαξινόμηση στο GUI Ant-Miner 7. Παράμετροι που μπορούν να τροποποιηθούν από το χρήστη, όπως περιγράφονται παραπάνω. 8. Επιλογές εξόδου: Το Clear output screen καθαρίζει την οθόνη εξόδου κάθε φορά που ξεκινά μια νέα ταξινόμηση, Οι επιλογές Print test set και Print training set τυπώνουν το σύνολο ελέγχου και το σύνολο εκπαίδευσης για κάθε cross-validation, αντίστοιχα. 9. Ξεκίνα μια ταξινόμηση ή σταμάτα μια ταξινόμηση. 10. Περιοχή εξόδου: εμφανίζει όλες τις πληροφορίες που αφορούν την ταξινόμηση που εκτελέστηκε ή εκτελείται Ο αλγόριθμος AntMiner Ο αλγόριθμος Ant-Miner ακολουθεί μια προσέγγιση ακολουθιακής κάλυψης για να ανακαλύψει μια λίστα κανόνων ταξινόμησης που καλύπτουν όλες, ή σχεδόν όλες τις περιπτώσεις εκπαίδευσης. Ο Ant-Miner διαφέρει αρκετά από άλλους αλγόριθμους μυρμηγκιών. Η πρώτη διαφορά προκύπτει από την προσέγγιση divide-and-conquer που χρησιμοποιεί. Ο βρόγχος WHILE εκτελείται διαδοχικά πολλές φορές, κάθε φορά εκτελείται 51

52 έναντι ενός μειωμένου συνόλου δεδομένων. Η άλλη βασική διαφορά από άλλους αλγόριθμους μυρμηγκιών είναι η έννοια της επανάληψης και του μεγέθους του πληθυσμού. Σε έναν κανονικό αλγόριθμο μυρμηγκιών το μέρος μεταξύ των REPEAT και UNTIL θα ήταν μια επανάληψη με κάθε επανάληψη να δημιουργεί ένα σταθερό αριθμό μυρμηγκιών, κανονικά μεγαλύτερο από ένα. Στον Ant-Miner κάθε τεχνητό μυρμήγκι αναπαριστά έναν υποψήφιο κανόνα ταξινόμησης της μορφής: IF <term1 AND term2 AND > THEN <class>. Κάθε όρος είναι μια τριάδα <μεταβλητή, τελεστής, τιμή>, όπου η τιμή είναι μια από τις τιμές που ανήκουν στο πεδίο της μεταβλητής. Ένα παράδειγμα ενός όρου είναι: <Sex = female>. Το <class> είναι η τιμή της μεταβλητής-κλάσης που προβλέπεται από τον κανόνα για κάθε περίπτωση που ικανοποιεί όλους τους όρους της συνθήκης του κανόνα. Ένα παράδειγμα ενός κανόνα είναι: IF <Salary = high> AND <Mortgage = No> THEN <Credit = good>. Στην τρέχουσα έκδοση του Ant-Miner ο τελεστής είναι πάντα =, οπότε ο Ant-Miner μπορεί να ασχοληθεί μόνο με κατηγορικές (διακριτές) μεταβλητές. Οι συνεχείς μεταβλητές πρέπει να διακριτοποιηθούν σε ένα βήμα προεπεξεργασίας. Ο Ant-Miner μπορεί να θεωρηθεί ως τρέχουσες επαναλήψεις με μέγεθος πληθυσμού ενός μυρμηγκιού. Κατά την διάρκεια ενός AntRun κάθε μυρμήγκι ξεκινά με έναν κενό κανόνα, δηλ. χωρίς όρο στη συνθήκη του κανόνα του, και προσθέτει έναν όρο κάθε φορά (Σχήμα 5.3.). Η επιλογή ενός όρου για να προστεθεί στη συνθήκη του τρέχοντος κανόνα εξαρτάται και από την ευρετική τιμή (heuristic value) (που βασίζεται στην εντροπία του όρου) και το επίπεδο φερομόνης που σχετίζεται με κάθε όρο. Η επιλογή γίνεται πιθανοτικά αλλά τείνει υπέρ των όρων που έχουν σχετικά υψηλότερη ευρετική τιμή και τιμή φερομόνης. Ένας όρος αποκλείεται από τη συνθήκη του τρέχοντος κανόνα, αν έχει ήδη επιλεχθεί προηγουμένως, ή αν η σχετιζόμενη μεταβλητή του παρουσιάζεται ήδη στη συνθήκη του κανόνα λόγω ενός άλλου όρου που έχει επιλεχθεί προηγουμένως. Ένα μυρμήγκι θα σταματήσει να κατασκευάζει τη συνθήκη ενός κανόνα αν έχει επιλέξει έναν όρο από καθεμιά από τις διαθέσιμες μεταβλητές, ή αν οποιοσδήποτε όρος που μπορεί να προστεθεί μετά θα μείωνε τον αριθμό των στιγμιοτύπων εκπαίδευσης που καλύπτονται από τη συνθήκη του τρέχοντος κανόνα κάτω από ένα προκαθορισμένο κατώφλι, που καλείται mininstperrule. Αυτό το κριτήριο δρα σαν ένα στοιχείο ελέγχου για τη ποσότητα του υπερταιριάσματος που επιτρέπεται στα δεδομένα εκπαίδευσης, όσο μεγαλύτερη είναι η τιμή αυτού του κατωφλιού, τόσο πιο γενικές αναγκάζονται να είναι οι συνθήκες των κανόνων που δημιουργούνται από μυρμήγκια. Μόλις ένα μυρμήγκι σταματήσει να κατασκευάζει τη συνθήκη ενός κανόνα, επιλέγεται η ενέργεια του κανόνα. Αυτό γίνεται αναθέτοντας στην ενέργεια του κανόνα την ετικέτα κλάσης της κλάσης πλειοψηφίας μεταξύ των στιγμιοτύπων που καλύπτονται από την κατασκευασμένη συνθήκη του κανόνα. 52

53 Σύνολο εκπαίδευσης = όλες οι περιπτώσεις εκπαίδευσης; WHILE (ο αριθμός των περιπτώσεων στο Σύνολο εκπαίδευσης > από το max_uncovered_cases) i = 0; REPEAT i = i + 1; το Ant i αυξητικά κατασκευάζει έναν κανόνα ταξινόμησης; Κλάδεψε τον κανόνα που μόλις κατασκευάστηκε; Ενημέρωσε τη φερομόνη του μονοπατιού που ακολουθείται από το Ant i ; UNTIL (i No_of_Ants) ή (το Ant i κατασκεύασε τον ίδιο κανόνα με τον προηγούμενο No_Rules_Converg-1 Ants) Επέλεξε τον καλύτερο κανόνα μεταξύ όλων των κατασκευασμένων κανόνων; Αφαίρεσε από το σύνολο εκπαίδευσης τις περιπτώσεις που καλύπτονται σωστά από τον επιλεγμένο κανόνα; END WHILE Σχήμα 5.3.: Ο ψευδοκώδικας του αλγόριθμου Ant-Miner [13] 53

54 6. Το εργαλείο ACRES 6.1. Γενικά Το ACRES (Automatic CReator of Expert Systems) είναι ένα εργαλείο το οποίο μπορεί με αυτόματο τρόπο (χωρίς δηλαδή να χρειαστεί να προγραμματίσουμε) να παράγει έμπειρα συστήματα βασισμένα σε κανόνες, χρησιμοποιώντας το κέλυφος CLIPS, από ένα σύνολο δεδομένων που περιέχει γνώση για ένα πρόβλημα. Πρόκειται για ένα εργαλείο που αναπτύσσεται ως τρόπος για να δοκιμάσει και να συγκρίνει διαφορετικές μεθόδους συνδυασμού συντελεστών βεβαιότητας σε έμπειρα συστήματα. Το εργαλείο ACRES παρέχει δύο βασικές λειτουργίες. Η πρώτη είναι δοθέντος ενός συνόλου δεδομένων να καθοδηγήσει το χρήστη στο σχεδιασμό μιας αρχιτεκτονικής και στη συνέχεια να παράγει με βάση αυτήν ένα έμπειρο σύστημα στη γλώσσα CLIPS, το οποίο να μπορεί να ταξινομήσει νέα δεδομένα του προβλήματος. Η δεύτερη λειτουργία είναι να φορτώσει ένα έμπειρο σύστημα που έχει δημιουργηθεί με το εργαλείο ώστε να ταξινομήσει νέα άγνωστα δεδομένα του προβλήματος ή να το ενημερώσει με νέα γνωστά δεδομένα. Παρακάτω αναλύουμε τις δύο αυτές λειτουργίες [5]. Δημιουργία Έμπειρου Συστήματος Είσοδος Συνόλου Δεδομένων Επιλέγοντας τη δημιουργία έμπειρου συστήματος, το γραφικό περιβάλλον μεταφέρεται σε μια οθόνη όπου ο χρήστης καλείται να δώσει το μονοπάτι για δύο αρχεία που αφορούν το σύνολο δεδομένων που θα χρησιμοποιήσει, αφού πρώτα δώσει κάποιο όνομα για το σύνολο δεδομένων. Εικόνα 1: Είσοδος Συνόλου Δεδομένων Το πρώτο αρχείο περιέχει τις μεταβλητές με τη σειρά που εμφανίζονται στο σύνολο δεδομένων. Ακολουθεί παράδειγμα τέτοιου αρχείου για το σύνολο δεδομένων car_evaluation: 1_buying 2_maint 3_doors 4_persons 5_lug_boot 6_safety 7_class Εικόνα 2: Αρχείο μεταβλητών για το σύνολο δεδομένων car_evaluation 54

55 Το δεύτερο αρχείο περιέχει τα στιγμιότυπα του συνόλου δεδομένων. Κάθε γραμμή του αρχείου περιέχει τις τιμές για τις παραμέτρους ενός στιγμιότυπου του προβλήματος χωρισμένες με κόμμα. Ακολουθεί παράδειγμα με τις πρώτες 10 γραμμές τέτοιου αρχείου για το σύνολο δεδομένων car_evaluation : vhigh,vhigh,2,2,small,low,unacc vhigh,vhigh,2,2,small,med,unacc vhigh,vhigh,2,2,small,high,unacc vhigh,vhigh,2,2,med,low,unacc vhigh,vhigh,2,2,med,med,unacc vhigh,vhigh,2,2,med,high,unacc vhigh,vhigh,2,2,big,low,unacc vhigh,vhigh,2,2,big,med,unacc vhigh,vhigh,2,2,big,high,unacc vhigh,vhigh,2,4,small,low,unacc Εικόνα 3: Αρχείο δεδομένων για το σύνολο δεδομένων car_evaluation Προεπεξεργασία Συνόλου Δεδομένων Στη συνέχεια ο χρήστης μπορεί να επεξεργαστεί το σύνολο δεδομένων. Συγκεκριμένα μπορεί να αλλάξει άμεσα τιμές στο σύνολο δεδομένων επιλέγοντας ένα κελί από τον πίνακα, ή να χρησιμοποιήσει μια από τις λειτουργίες της καρτέλας Επεξεργασία Συνόλου Δεδομένων (Dataset Edit): Διαγραφή μιας παραμέτρου (στήλης) του συνόλου δεδομένων. Η διαγραφή παραμέτρων που δεν θεωρούνται χρήσιμες, μπορεί να επιταχύνει την διαδικασία αυτόματης επιλογής και κατάταξης υποσυνόλων στο στάδιο της σχεδίασης. Συγχώνευση δύο παραμέτρων (στηλών) του συνόλου δεδομένων. Ο χρήστης επιλέγει δύο παραμέτρους και το σύστημα συγχωνεύει τις τιμές κάθε στιγμιότυπου σε μία διαχωρίζοντάς τες με το σύμβολο _. Διακριτοποίηση πραγματικών μεταβλητών. Ο χρήστης επιλέγει μια μεταβλητή και τον αριθμό των κλάσεων που θέλει να έχει αυτή μετά την διακριτοποίηση. Επίσης μπορεί να επιλέξει μεταξύ δύο μεθόδων. Η πρώτη δίνει σε κάθε κλάση το ίδιο εύρος τιμών (intervals). Η δεύτερη δίνει σε κάθε κλάση όρια τέτοια ώστε κάθε μία να περιέχει τον ίδιο αριθμό στιγμιοτύπων στο σύνολο δεδομένων. Το όνομα των νέων κλάσεων προκύπτει από τα όρια που αντιπροσωπεύουν διαχωρίζοντάς τα με το σύμβολο _. Αφού ολοκληρώσουμε τις τροποποιήσεις, αποθηκεύουμε το νέο αρχείο, το οποίο μπορούμε να φορτώσουμε στη συνέχεια, κάνοντας πρώτα τις κατάλληλες αλλαγές στο αρχείο με τα ονόματα των μεταβλητών. 55

56 Εικόνα 4: Προεπεξεργασία στο ACRES Προσδιορισμός των μεταβλητών του συνόλου δεδομένων Ο χρήστης καλείται τώρα να χωρίσει τις μεταβλητές του προβλήματος σε 3 είδη: Εισόδου: Είναι οι μεταβλητές για τις οποίες ο χρήστης θα διαθέτει τιμές τις οποίες θα δίνει σε αυτό για να πάρει προβλέψεις. Εξόδου: Είναι η μεταβλητή (μία μόνο) την οποία ο χρήστης δεν γνωρίζει και για την οποία θέλει να πάρει πρόβλεψη. Ενδιάμεσες: Είναι οι μεταβλητές για τις οποίες επίσης δεν γνωρίζει τιμές ο χρήστης και ενδεχομένως δεν το ενδιαφέρουν άμεσα. Εικόνα 5: Προσδιορισμός των μεταβλητών του προβλήματος 56

57 Για να βοηθήσει τον χρήστη στην επιλογή ενός υποσυνόλου, τρεις μονάδες προσφέρονται: Subset Selection 4 (κλικάροντας το Find Subset ) Feature Ranking 5 (Παράγεται αυτόματα κατά την επιλογή μιας μεταβλητής) Selected Subset Evaluation 6 (κλικάροντας το Test ) Εικόνα 6: Μονάδες για την ευκολία επιλογής υποσυνόλου Σχεδίαση της Αρχιτεκτονικής του ΕΣ Στη συνέχεια, ο δημιουργός του ΕΣ καλείται, με βάση την εμπειρία του για τις μεταβλητές και τις μεταξύ τους σχέσεις, να χτίσει την αρχιτεκτονική του, σχηματίζοντας ένα δέντρο. Συγκεκριμένα για κάθε ενδιάμεση μεταβλητή που έχει επιλέξει καλείται να διαλέξει τις μεταβλητές οι οποίες θα χρησιμοποιηθούν για την παραγωγή πρόβλεψης για αυτήν σχηματίζοντας μια ομάδα. 57

58 Εικόνα 7: Επιλογή μεταβλητής για παραγωγή κανόνων πρόβλεψης Αρχικά στη λίστα με τις μεταβλητές από τις οποίες μπορεί να σχηματιστεί η ομάδα περιέχονται αποκλειστικά οι μεταβλητές εισόδου, ωστόσο κάθε φορά που προσδιορίζεται το γκρουπ για μια ενδιάμεση μεταβλητή, αυτή προστίθεται στη λίστα, οπότε μπορεί να χρησιμοποιηθεί στον προσδιορισμό της επόμενης ενδιάμεσης μεταβλητής. Εικόνα 8: Προσδιορισμός ομάδων παραμέτρων Επίσης μπορεί να προσδιοριστεί και ένα δεύτερο γκρουπ για προσδιορισμό πρόβλεψης. Οπότε ο δημιουργός του ΕΣ θα πρέπει να επιλέξει και τον τρόπο με τον οποίο θα συνδυαστούν οι δύο προβλέψεις για τον υπολογισμό μιας τελικής πρόβλεψης. Συγκεκριμένα επιλέγει μια από τις μεθόδους ΜΥCIN ή Weighted που περιγράφουμε παρακάτω. Εικόνα 9: Προσδιορισμός δύο ομάδων και μεθόδου συνδυασμού 58

59 Αν επιλεχθεί η μέθοδος Weighted, ο χρήστης μπορεί να προσδιορίσει τις παραμέτρους του γενετικού και το βάρος κάθε μετρικής απόδοσης στον υπολογισμό του σκορ της αντικειμενικής συνάρτησης. Εικόνα 10: Προσδιορισμός παραμέτρων του γενετικού αλγόριθμου Αφού προσδιορίσει διαδοχικά τον τρόπο προσδιορισμού όλων των ενδιάμεσων μεταβλητών, ο δημιουργός του ΕΣ καλείται να κάνει το ίδιο και για την μεταβλητή εξόδου. Αποτέλεσμα των παραπάνω είναι ο σχηματισμός ενός δέντρου που αναπαριστά την αρχιτεκτονική του παραγόμενου ΕΣ. Στο δέντρο αυτό ρίζα θα είναι η μεταβλητή εξόδου ενώ οι εσωτερικοί κόμβοι θα αναπαριστούν ενδιάμεσες μεταβλητές ή συνδυασμό προβλέψεων για το ίδιο συμπέρασμα. Τα φύλλα του δέντρου θα είναι μεταβλητές εισόδου. Εικόνα 11: Παράδειγμα Αρχιτεκτονικής ΕΣ 59

60 Το Create ES θα δημιουργήσει το έμπειρο σύστημα σαν ένα αρχείο clips. Το Evaluate θα δημιουργήσει ένα έμπειρο σύστημα χρησιμοποιώντας ένα σύνολο εκπαίδευσης και θα το αξιολογήσει με ένα σύνολο δοκιμής. Φόρτωση Έμπειρου Συστήματος Το ΕΣ που δημιουργήθηκε μπορεί να φορτωθεί μέσα από το γραφικό περιβάλλον του συστήματος και σχηματισμό του ερωτήματος (νέου γεγονότος) μέσω ειδικών μενού που παρέχονται.. Εικόνα 12: Φόρτωση ΕΣ 6.2. Μέθοδοι Συνδυασμού Συντελεστών Βεβαιότητας Μέθοδος MYCIN Το μοντέλο συντελεστών βεβαιότητας (CF model) είναι μια μέθοδος αναπαράστασης της αβεβαιότητας στην εξαγωγή συμπερασμάτων, που χρησιμοποιείται στα συστήματα βασισμένα σε κανόνες. Πρόκειται για εμπειρική μέθοδο, δηλ μέθοδο που δεν στηρίζεται στη θεωρία πιθανοτήτων, όπως παρόμοιες μέθοδοι (π.χ. κανόνες Bayes). Οι συντελεστές βεβαιότητας πρωτοεισήχθησαν στο βασισμένο σε κανόνες έμπειρο σύστημα MYCIN (Shortliffe and Buchanan, 1975), το οποίο ήταν ένα ΕΣ για διάγνωση μολύνσεων του αίματος και λήψη απόφασης για κατάλληλη φαρμακευτική αγωγή για την αντιμετώπισή τους. 60

61 Συντελεστής βεβαιότητας cf (certainty factor, cf) είναι ένας αριθμός ( 1 cf 1 ) που παριστάνει το βαθμό βεβαιότητας του εμπειρογνώμονα ότι μια υπόθεση h ισχύει δεδομένου ενός στοιχείου/γεγονότος e: if e then h (cf) Φυσικά ο κανόνας μπορεί να είναι πιο σύνθετος, δηλ. να έχει περισσότερα του ενός γεγονότα/στοιχεία συνδεόμενα μεταξύ τους με λογικό and ή or. Κάθε συντελεστής βεβαιότητας ορίζεται με βάση δύο μεγέθη/συναρτήσεις, το μέτρο βεβαιότητας (measure of belief: MB) και το μέτρο αβεβαιότητας (measure of disbelief: MD), ως εξής: τα οποία με τη σειρά τους ορίζονται ως εξής: Μέτρο βεβαιότητας (measure of belief): MB( h, e) MD( h, e) cf( h, e) = 1 min{ MB( h, e), MD( h, e)} 1 MBh (, e) = ph ( / e) ph ( ) max 0, 1 ph ( ), αν p(h) = 1, αλλιώς Μέτρο αβεβαιότητας (measure of disbelief): 1 MD( h, e) = ph ( ) ph ( / e) max 0, ph ( ), αν p(h) = 0, αλλιώς για τα οποία ισχύει 0 MB( h, e), MD( h, e) 1, οπότε προκύπτει ότι 1 cf( h, e) 1. Σε πραγματικές εφαρμογές, συνήθως, οι συντελεστές βεβαιότητας προσδιορίζονται από τον εμπειρογνώμονα, είναι δηλαδή εκτίμηση του εμπειρογνώμονα. Η βασική μέθοδος συνδυασμού δύο συντελεστών βεβαιότητας cf 1, cf 2 για το ίδιο συμπέρασμα/υπόθεση ορίστηκε στο έμπειρο σύστημα MYCIN ως εξής: cf = cf1 + cf2 cf1 cf2, αν cf 1, cf 2 θετικοί cf + cf + cf cf, αν cf 1, cf 2 αρνητικοί cf1 + cf2 1 min, { cf1 cf2}, αν cf 1, cf 2 ετερόσημοι 61

62 Η παραπάνω συνάρτηση καλείται συνάρτηση παράλληλου συνδυασμού (parallel-combination function) Μέθοδος WEIGHTED Σε ένα πρόσφατο ΕΣ, το PASS που προέβλεπε την πιθανότητα επιτυχίας ενός μαθητή Τ.Ε.Ε. στις πανελλαδικές εξετάσεις, έγινε η παρατήρηση ότι, αν θεωρήσουμε θετικούς συντελεστές βεβαιότητας στο διάστημα [0,1], τότε ο τύπος συνδυασμού δύο συντελεστών για την ίδια υπόθεση, δηλαδή: cf = cf1 + cf2 cf1 cf2, δίνει την ίδια βαρύτητα στις δύο αρχικές προβλέψεις για τον υπολογισμό της τελικής. Ωστόσο σε πολλές εφαρμογές όταν δημιουργούνται κανόνες που προβλέπουν την ίδια υπόθεση, ενδέχεται ένας από τους δύο κανόνες να είναι πιο ακριβής στις προβλέψεις του και πιο αξιόπιστος, ειδικά όταν οι κανόνες προέρχονται από ανθρώπους εμπειρογνώμονες ή από περιορισμένα δεδομένα. Προκειμένου να αντιμετωπίσουν τη συγκεκριμένη αδυναμία του μοντέλου, στο ΕΣ PASS, πρότειναν μια γενικευμένη μέθοδο συνδυασμού συντελεστών βεβαιότητας που δίνει διαφορετική βαρύτητα σε κάθε επιμέρους πρόβλεψη, χρησιμοποιώντας βάρη. Σύμφωνα με αυτή την μέθοδο δύο προβλέψεις για ένα γεγονός cf 1 και cf 2 συνδυάζονται με τον τύπο: ( ) cf = w cf + w cf + w cf cf, όπου οι τιμές των βαρών w 1, w 2, w ικανοποιούν τη σχέση: w 1 + w 2 + w = 1. Η δυσκολία του προτεινόμενου μοντέλου έγκειται στον προσδιορισμό των βέλτιστων βαρών, προκύπτει δηλαδή ένα πρόβλημα βελτιστοποίησης. Μια λύση θα ήταν να χρησιμοποιηθούν τα δεδομένα του συνόλου εκπαίδευσης του συστήματος εφόσον υπάρχει. Στην περίπτωση του PASS, για τον προσδιορισμό των βαρών αυτών χρησιμοποιήθηκε μια πολύ απλή μέθοδος, όπου δοκιμάστηκαν διάφοροι συνδυασμοί βαρών μέχρι κάποιος να δώσει επιθυμητά αποτελέσματα στα δεδομένα. Στο ACRES, χρησιμοποιήθηκε ένας γενετικός αλγόριθμος στα δεδομένα του συνόλου εκπαίδευσης, όπου προσδιορίζει τις τιμές w 1, w 2. 62

63 7. Δημιουργία Έμπειρων Συστημάτων από δοσμένα σύνολα δεδομένων 7.1. Γενικά Σκοπός αυτού του κεφαλαίου είναι η δημιουργία έμπειρων συστημάτων από πέντε δοσμένα σύνολα δεδομένων που λαμβάνονται από τη βάση δεδομένων UCI Machine Learning Repository ( Για την δημιουργία και υλοποίησή τους χρησιμοποιούμε τα διάφορα εργαλεία που περιγράψαμε αναλυτικά στα προηγούμενα κεφάλαια, δηλαδή, το ACRES, το οποίο είναι ένα εργαλείο αυτόματης παραγωγής έμπειρων συστημάτων με συντελεστές βεβαιότητας, το WEKA, το οποίο είναι ένα εργαλείο που περιέχει αλγόριθμους μηχανικής μάθησης, το CLIPS, το οποίο είναι ένα κέλυφος για προγραμματισμό με κανόνες, το FuzzyCLIPS, το οποίο επίσης είναι ένα κέλυφος για την δημιουργία ασαφών ΕΣ, και το GUI Ant-Miner, το οποίο είναι ένα εργαλείο για την εξαγωγή κανόνων κατηγοριοποίησης από σύνολο δεδομένων. με τη χρήση ενός μοντέλου ακολουθιακής κάλυψης, όπως ο αλγόριθμος AntMiner. Παραθέτουμε τις μετρικές που προκύπτουν και συγκρίνουμε κάθε φορά τις μεθόδους. Τέλος, αναφέρουμε παρατηρήσεις και γενικά συμπεράσματα που προκύπτουν και από τα πέντε σύνολα δεδομένων όσον αφορά και τις επιμέρους συγκρίσεις των μεθόδων και τις τιμές των μετρικών τους Το σύνολο δεδομένων Car Evaluation Περιγραφή του προβλήματος που πραγματεύεται το ΕΣ Σκοπός του προβλήματος είναι η δημιουργία έμπειρου συστήματος για την κατηγοριοποίηση αυτοκινήτων ανάλογα με τον βαθμό αποδοχής τους από τους πελάτες. Ο βαθμός αποδοχής των αυτοκινήτων εξαρτάται από βασικά χαρακτηριστικά των αυτοκινήτων. Το ερώτημα το οποίο το έμπειρο σύστημα που θα δημιουργηθεί θα κληθεί να απαντήσει είναι αν ένα αυτοκίνητο με συγκεκριμένα χαρακτηριστικά είναι αποδεκτό, καλό, πολύ καλό ή δεν είναι αποδεκτό. Για την δημιουργία του έμπειρου συστήματος θα στηριχθούμε στο σύνολο δεδομένων Car Evaluation της βάσης δεδομένων UCI Machine Learning Repository. ( Το σύνολο δεδομένων το οποίο έχουμε στη διάθεσή μας και βάσει του οποίου θα δημιουργηθούν τα έμπειρα συστήματα αποτελείται από 1728 στιγμιότυπα. Κάθε στιγμιότυπο περιλαμβάνει έξι χαρακτηριστικά εισόδου και ένα χαρακτηριστικό εξόδου που αποτελεί την κλάση του προβλήματος, τα οποία φαίνονται στο παρακάτω πίνακα: Χαρ/κό Περιγραφή Πιθανές τιμές buying Ύψος τιμής απόκτησης αυτοκινήτου vhigh, high, med, low maint Κόστος συντήρησης (maintenance) του αυτοκινήτου vhigh, high, med, low doors Αν το αυτοκίνητο είναι 2θυρο, 3θυρο ή 5θυρο και πάνω 2, 3, 4, 5more persons Αριθμός χωρητικότητας σε επιβάτες του αυτοκινήτου 2, 4, more lug_boot Κατηγορία χωρητικότητας του πορτμπαγκάζ σε αποσκευές small, med, big safety Δείκτης ασφάλειας του αυτοκινήτου high, med, low class Αξιολόγηση αυτοκινήτου Χαρακτηριστικά εισόδου Unacc -Unacceptable Acc -Acceptable Good Good Vgood-very good 63

64 Χαρακτηριστικό εξόδου (class value) Το χαρακτηριστικό του βαθμού αποδοχής θα χρησιμοποιηθεί για την κατηγοριοποίηση των αυτοκινήτων βάσει της αποδοχής τους από τους πελάτες ως μεταβλητή πρόβλεψης, ενώ τα υπόλοιπα χαρακτηριστικά θα χρησιμοποιηθούν ως μεταβλητές εισόδου. Οι κλάσεις εξόδου του συστήματος το οποίο δημιουργήθηκε είναι οι: 1. unacc (unacceptable) Τα αυτοκίνητα τα οποία κατηγοριοποιούνται στην κλάση αυτή θεωρούνται μη αποδεκτά 2. acc (acceptable) Τα αυτοκίνητα τα οποία κατηγοριοποιούνται στην κλάση θεωρούνται αποδεκτά 3. good (good) Τα αυτοκίνητα τα οποία κατηγοριοποιούνται στην κλάση αυτή θεωρούνται καλά 4. vgood (very good) Τα αυτοκίνητα τα οποία κατηγοριοποιούνται στην κλάση αυτή θεωρούνται πολύ καλά Εφαρμογή WEKA Εξαγωγή γνώσης από τα δεδομένα Τα δεδομένα τα οποία έχουμε στη διάθεσή μας και βάσει των οποίων θα αναπτυχθούν τα έμπειρα συστήματα εμπερικλείουν γνώση η οποία έχει αποτυπωθεί στο σύνολο υπό μορφή παρατηρήσεων. Εάν για παράδειγμα υποθέσουμε ότι οι 1728 περιπτώσεις αυτοκινήτων έχουν καταγραφεί από κάποιον υπάλληλο του τμήματος «ελέγχου αποδοχής» μιας αυτοκινητοβιομηχανίας, αυτός θα μπορούσε να μας πει ότι σύμφωνα με την εμπειρία του τα αυτοκίνητα με δύο πόρτες και πολύ υψηλή τιμή, κατά κανόνα δεν γίνονται αποδεκτά. Αυτή ακριβώς την πληροφορία μπορούμε να εξάγουμε από την ανάλυση των δεδομένων μας. Η διαδικασία η οποία ακολουθήθηκε προκειμένου για την παραγωγή των αποτελεσμάτων είναι η ακόλουθη: Α. Έλεγχος των δεδομένων για πληρότητα Τα δεδομένα μας ελέγχθηκαν και διαπιστώθηκε ότι όλες οι εγγραφές είναι πλήρης, δεν υπάρχει έλλειψη σε κάποιο χαρακτηριστικό. Β. Δημιουργία του δέντρου απόφασης Προκειμένου για τη δημιουργία του δέντρου απόφασης, το εργαλείο WEKA χρησιμοποιήθηκε και εφαρμόστηκε ο αλγόριθμος C4.5 (J48) με reduced error pruning και cross-validation

65 Περιγραφή εξαγωγής κανόνων μέσω WEKA Προκειμένου για την μετατροπή του αρχείου σε.arff και την εισαγωγή του στο WEKA έγιναν τα εξής: Τα δεδομένα που βρίσκονται στην βάση δεδομένων του UCI Machine Repository (στο παραπάνω site) πρέπει να εισαχθούν στο WEKA με την μορφή.arff. Φορτώνω τα δεδομένα σε έναν κειμενογράφο και δημιουργώ αρχείο.arff ως buying maint doors persons lug_boot safety class vhigh,vhigh,2,2,small,low,unacc vhigh,vhigh,2,2,small,med,unacc vhigh,vhigh,2,2,small,high,unacc vhigh,vhigh,2,2,med,low,unacc vhigh,vhigh,2,2,med,med,unacc vhigh,vhigh,2,2,med,high,unacc vhigh,vhigh,2,2,big,low,unacc vhigh,vhigh,2,2,big,med,unacc vhigh,vhigh,2,2,big,high,unacc vhigh,vhigh,2,4,small,low,unacc vhigh,vhigh,2,4,small,med,unacc Κατόπιν αποθηκεύω το αρχείο.arff με όνομα car_evaluation.arff και το αρχείο είναι έτοιμο για να εισαχθεί στο WEKA, όπως φαίνεται στην Εικόνα1. 65

66 Εικόνα 1: Φόρτωση του αρχείου car_evaluation.arff στην επιφάνεια του Explorer Η παρακάτω εικόνα (Εικόνα 2) απεικονίζει την κατανομή των αυτοκινήτων στις κλάσεις του χαρακτηριστικού class. Όπως παρατηρούμε στην εικόνα, 1210 αυτοκίνητα έχουν κατηγοριοποιηθεί ως «unacc», 384 «acc», 69 «good» και 65 «vgood». Οι επόμενες εικόνες δείχνουν την κατανομή του αριθμού των αυτοκινήτων ανά κλάση του συγκεκριμένου χαρακτηριστικού και ανά κλάση του χαρακτηριστικού «class». Για παράδειγμα, στην Εικόνα 3 για το χαρακτηριστικό persons παρατηρούμε ότι όλα τα αυτοκίνητα τα οποία είναι για 2 άτομα χαρακτηρίζονται «unacc», για τα αυτοκίνητα των 4 και παραπάνω ατόμων σχεδόν τα μισά θεωρούνται «unacc». Από τα υπόλοιπα αυτοκίνητα των 4 ή περισσότερων ατόμων το μεγαλύτερο ποσοστό θεωρούνται απλώς «acc» και ένας μικρός αριθμός θεωρούνται «good» ή «vgood». 66

67 Εικόνα 2α): η κατανομή των αυτοκινήτων στις κλάσεις του χαρακτηριστικού «class» Εικόνα 1β): Η κατανομή των αυτοκινήτων στις κλάσεις των χαρακτηριστικών «buying» και «maint» 67

68 Εικόνα 2: Η κατανομή των αυτοκινήτων στις κλάσεις των χαρακτηριστικών «doors» και «persons» Εικόνα 3: Η κατανομή των αυτοκινήτων στις κλάσεις των χαρακτηριστικών «lug_boot» και «safety» Δεν χρειάζεται να κάνω διακριτοποίηση των μεταβλητών μιας και όλες είναι nominal και παίρνουν διακριτές τιμές. Επιλέγω την καρτέλα Classify, μετά στο Trees επιλέγω τον αλγόριθμό J48. Μετά την επιλογή του αλγορίθμου ανοίγουμε την επιλογή των ρυθμίσεων για να επιλέξουμε το reduced error pruning. Επιλέγουμε ten fold cross validation και τρέχουμε τον αλγόριθμο ο οποίος εξάγει το ακόλουθο δέντρο απόφασης: === Run information === Scheme:weka.classifiers.trees.J48 -R -N 3 -Q 1 -M 2 Relation: car_evaluation Instances:

69 Attributes:7 buying maint doors persons lug_boot safety class Test mode:10-fold cross-validation === Classifier model (full training set) === J48 pruned tree safety = low: unacc (395.0) safety = med persons = 2: unacc (147.0) persons = 4 buying = vhigh maint = vhigh: unacc (12.0) maint = high: unacc (12.0) maint = med lug_boot = small: unacc (3.0) lug_boot = med: acc (3.0/1.0) lug_boot = big: acc (2.0) maint = low lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (1.0) buying = high lug_boot = small: unacc (13.0) lug_boot = med: unacc (10.0/3.0) lug_boot = big: acc (12.0/4.0) buying = med maint = vhigh lug_boot = small: unacc (3.0) lug_boot = med: acc (3.0/1.0) lug_boot = big: acc (4.0) maint = high lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (4.0) maint = med: acc (4.0) maint = low lug_boot = small: acc (4.0) lug_boot = med: acc (2.0/1.0) 69

70 lug_boot = big: good (3.0) buying = low: acc (26.0/10.0) persons = more maint = vhigh buying = vhigh: unacc (12.0) buying = high: unacc (12.0) buying = med lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (2.0) buying = low: unacc (4.0) maint = high buying = vhigh: unacc (12.0) buying = high lug_boot = small: unacc (3.0) lug_boot = med: acc (3.0/1.0) lug_boot = big: acc (2.0) buying = med lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (1.0) buying = low: acc (8.0) maint = med lug_boot = small: unacc (14.0/6.0) lug_boot = med: acc (10.0/3.0) lug_boot = big: acc (12.0/4.0) maint = low lug_boot = small buying = vhigh: unacc (3.0) buying = high: unacc (3.0) buying = med: acc (3.0/1.0) buying = low: acc (4.0/1.0) lug_boot = med: acc (9.0/4.0) lug_boot = big buying = vhigh: acc (2.0) buying = high: acc (2.0) buying = med: good (2.0) buying = low: good (4.0) safety = high persons = 2: unacc (114.0) persons = 4 buying = vhigh: acc (16.0) buying = high: acc (25.0) buying = med: acc (39.0/17.0) buying = low maint = vhigh: acc (12.0) maint = high 70

71 lug_boot = small: acc (4.0) lug_boot = med: acc (4.0/2.0) lug_boot = big: vgood (3.0) maint = med lug_boot = small: good (3.0) lug_boot = med: good (4.0/2.0) lug_boot = big: vgood (2.0) maint = low: good (5.0) persons = more lug_boot = small doors = 2: unacc (10.0) doors = 3: acc (10.0/2.0) doors = 4: acc (8.0/1.0) doors = 5more: acc (11.0/3.0) lug_boot = med buying = vhigh: acc (8.0) buying = high: acc (5.0) buying = med maint = vhigh: acc (3.0) maint = high: acc (4.0) maint = med: vgood (3.0/1.0) maint = low: vgood (3.0/1.0) buying = low: vgood (10.0/5.0) lug_boot = big buying = vhigh: acc (6.0) buying = high: acc (7.0) buying = med maint = vhigh: acc (3.0) maint = high: acc (2.0) maint = med: vgood (4.0) maint = low: vgood (3.0) buying = low: vgood (11.0/4.0) Number of Leaves : 80 Size of the tree : 112 Time taken to build model: 0.11seconds === Stratified cross-validation === === Summary === Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error

72 Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances 1728 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class unacc acc good vgood Weighted Avg === Confusion Matrix === a b c d <-- classified as a = unacc b = acc c = good d = vgood Οι κανόνες του δέντρου απόφασης θα αποτελέσουν τη βάση του έμπειρου συστήματός μας. Από το δέντρο απόφασης έχουμε τα εξής: safety = low: unacc (395.0) safety = med persons = 2: unacc (147.0) persons = 4 buying = vhigh maint = vhigh: unacc (12.0) maint = high: unacc (12.0) maint = med lug_boot = small: unacc (3.0) Τα αυτοκίνητα τα οποία έχουν ασφάλεια "low" θεωρούνται unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 2 άτομα θεωρούνται unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς vhigh και τιμή συντήρησης vhigh και high είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς vhigh, τιμή συντήρησης med και έχουν lug_boot small high είναι unacc 72

73 lug_boot = med: acc (3.0/1.0) lug_boot = big: acc (2.0) maint = low lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (1.0) buying = high lug_boot = small: unacc (13.0) lug_boot = med: unacc (10.0/3.0) lug_boot = big: acc (12.0/4.0) buying = med maint = vhigh lug_boot = small: unacc (3.0) lug_boot = med: acc (3.0/1.0) lug_boot = big: acc (4.0) maint = high lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (4.0) Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς vhigh, τιμή συντήρησης med και έχουν lug_boot small med / big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς vhigh, τιμή συντήρησης med και έχουν lug_boot small/med είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς vhigh, τιμή συντήρησης med και έχουν lug_boot big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς high, και lug_boot small/med είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς high, και lug_boot big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης vhigh και lug_boot small είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης vhigh και lug_boot med / big είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης high και lug_boot small / med είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης high και lug_boot big είναι acc 73

74 maint = med: acc (4.0) maint = low lug_boot = small: acc (4.0) lug_boot = med: acc (2.0/1.0) lug_boot = big: good (3.0) buying = low: acc (26.0/10.0) persons = more maint = vhigh buying = vhigh: unacc (12.0) buying = high: unacc (12.0) buying = med lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (2.0) buying = low: unacc (4.0) maint = high buying = vhigh: unacc (12.0) buying = high lug_boot = small: unacc (3.0) Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης med είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης low και lug_boot small/med είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς med τιμή συντήρησης low και lug_boot big είναι good Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med" και είναι για 4 άτομα, έχουν τιμή αγοράς low είναι good Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης vhigh και τιμή αγοράς vhigh/high είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης vhigh και τιμή αγοράς med και lug_boot small / med είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης vhigh και τιμή αγοράς med και lug_boot big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης vhigh και τιμή αγοράς low είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης high και τιμή αγοράς vhigh είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης high, τιμή αγοράς high και lug_boot small είναι unacc 74

75 lug_boot = med: acc (3.0/1.0) lug_boot = big: acc (2.0) buying = med lug_boot = small: unacc (3.0) lug_boot = med: unacc (2.0/1.0) lug_boot = big: acc (1.0) buying = low: acc (8.0) maint = med lug_boot = small: unacc (14.0/6.0) lug_boot = med: acc (10.0/3.0) lug_boot = big: acc (12.0/4.0) maint = low lug_boot = small buying = vhigh: unacc (3.0) buying = high: unacc (3.0) buying = med: acc (3.0/1.0) buying = low: acc (4.0/1.0) lug_boot = med: acc (9.0/4.0) Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης high, τιμή αγοράς high και lug_boot med/big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης high, τιμή αγοράς med και lug_boot small / med είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης high, τιμή αγοράς med και lug_boot big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης high, τιμή αγοράς low είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης med, και lug_boot small είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης med, και lug_boot med/big είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης low και lug_boot small και τιμή αγοράς vhigh / high είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης low, και lug_boot small και τιμή αγοράς med / low είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης low, και lug_boot med είναι acc 75

76 lug_boot = big buying = vhigh: acc (2.0) buying = high: acc (2.0) buying = med: good (2.0) buying = low: good (4.0) safety = high persons = 2: unacc (114.0) persons = 4 buying = vhigh: acc (16.0) buying = high: acc (25.0) buying = med: acc (39.0/17.0) buying = low maint = vhigh: acc (12.0) maint = high lug_boot = small: acc (4.0) lug_boot = med: acc (4.0/2.0) lug_boot = big: vgood (3.0) maint = med lug_boot = small: good (3.0) lug_boot = med: good (4.0/2.0) lug_boot = big: vgood (2.0) Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης low, lug_boot big και τιμή αγοράς vhigh/high είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια "med", είναι για περισσότερα από 4 άτομα, έχουν τιμή συντήρησης low, lug_boot big και τιμή αγοράς med/low είναι good Τα αυτοκίνητα τα οποία έχουν ασφάλεια high και είναι για 2 άτομα είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα και έχουν τιμή αγοράς vhigh/high/med είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα, έχουν τιμή αγοράς low και τιμή συντήρησης vhigh είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα, έχουν τιμή αγοράς low, τιμή συντήρησης high και lug_boot small / med είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα, έχουν τιμή αγοράς low, τιμή συντήρησης high και lug_boot big είναι vgood Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα, έχουν τιμή αγοράς low, τιμή συντήρησης med και lug_boot small / med είναι good Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα, έχουν τιμή αγοράς low, τιμή συντήρησης med και lug_boot big είναι vgood 76

77 maint = low: good (5.0) persons = more lug_boot = small doors = 2: unacc (10.0) doors = 3: acc (10.0/2.0) doors = 4: acc (8.0/1.0) doors = 5more: acc (11.0/3.0) lug_boot = med buying = vhigh: acc (8.0) buying = high: acc (5.0) buying = med maint = vhigh: acc (3.0) maint = high: acc (4.0) maint = med: vgood (3.0/1.0) maint = low: vgood (3.0/1.0) buying = low: vgood (10.0/5.0) lug_boot = big buying = vhigh: acc (6.0) buying = high: acc (7.0) buying = med Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για 4 άτομα, έχουν τιμή αγοράς low, τιμή συντήρησης low είναι good Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot small και 2 πόρτες είναι unacc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot small και 3/4/5more πόρτες είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot med και τιμή αγοράς vhigh / high είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot med, τιμή αγοράς med και τιμή συντήρησης vhigh / high είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot med, τιμή αγοράς med και τιμή συντήρησης med/low είναι vgood Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot med και τιμή αγοράς low είναι vgood Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot big και τιμή αγοράς vhigh / high είναι acc 77

78 maint = vhigh: acc (3.0) maint = high: acc (2.0) maint = med: vgood (4.0) maint = low: vgood (3.0) buying = low: vgood (11.0/4.0) Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot big τιμή αγοράς med και τιμή συντήρησης vhigh / high είναι acc Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot big τιμή αγοράς med και τιμή συντήρησης med / low είναι vgood Τα αυτοκίνητα τα οποία έχουν ασφάλεια high, είναι για περισσότερα από 4 άτομα, έχουν lug_boot big και τιμή αγοράς low είναι vgood Υλοποίηση σε CLIPS Για την υλοποίηση του προγράμματος δημιουργήσαμε δύο αρχεία, ένα batch αρχείο (carclip.bat) το οποίο φορτώνει τους κανόνες και τα δεδομένα και τρέχει το πρόγραμμα και το αρχείο των κανόνων (car.clp) το οποίο περιλαμβάνει και τους κανόνες κατηγοριοποίησης και τους κανόνες υπολογισμού των μετρικών. Η deftemplate ορίζει τη μορφή των facts τα οποία θα εισαχθούν. Στην παρούσα εφαρμογή το είδος των δεδομένων που πρόκειται να εισαχθούν είναι το ακόλουθο: (deftemplate car-evaluation (slot buying) (slot maint) (slot doors) (slot persons) (slot lug_boot) (slot safety) (slot class) ) Κατόπιν ορίζεται η μορφή την οποία θα έχουν τα facts τα οποία θα αποθηκευτούν: (deftemplate es_result (slot classp) (slot classr) (slot nr)) 78

79 Κάθε κανόνας θα αποθηκεύει ένα es_result το οποίο θα έχει την κλάση στην οποία κατηγοριοποιήθηκε το fact (classp), την κλάση στην οποία ανήκει το fact (classr), έναν αριθμό διαφορετικό ανά κανόνα (nr). Το αρχείο των κανόνων Το αρχείο των κανόνων περιλαμβάνει τους κανόνες οι οποίοι εξήχθησαν από το WEKA και τους κανόνες για τον υπολογισμό των μετρικών. Οι κανόνες οι οποίοι εξήχθησαν από το WEKA υλοποιήθηκαν με την εξής λογική: Κατηγοριοποιεί τα δεδομένα στις κλάσεις του «class» ανάλογα με τις τιμές των υπολοίπων 6 παραμέτρων. Για κάθε κανόνα κατηγοριοποίησης αποθηκεύει: 1. την κλάση στην οποία κατηγοριοποιείται ένα αυτοκίνητο από το σύστημα 2. την κλάση στην οποία ανήκει στην πραγματικότητα το αυτοκίνητο 3. έναν αύξων αριθμό για κάθε περίπτωση Στη συνέχεια το fact το οποίο κατηγοριοποιήθηκε σβήνεται από το σύστημα. Οι πρώτοι 3 κανόνες από τους 52 που υλοποιούνται στο CLIPS είναι οι ακόλουθοι: (defrule MAIN::one (car-evaluation (safety low) (class?x))?c <- (car-evaluation (safety low) (class?x)) => (assert (es_result (classp unacc) (classr?x) (nr 1))) (retract?c)) (defrule MAIN::two (car-evaluation (safety med) (persons 2) (class?x))?c <- (car-evaluation (safety med) (persons 2) (class?x)) => (assert (es_result (classp unnacc) (classr?x) (nr 2))) (retract?c)) (defrule MAIN::three (car-evaluation (safety med) (persons 4) (buying vhigh) (maint vhigh high) (class?x))?c <- (car-evaluation (safety med) (persons 4) (buying vhigh) (maint vhigh high) (class?x)) => (assert (es_result (classp unacc) (classr?x) (nr 3))) (retract?c)) Ο πρώτος κανόνας ελέγχει αν η ασφάλεια είναι low. Αποθηκεύει το fact σε μια μεταβλητή. Αν η ασφάλεια είναι low, αποθηκεύει στο es_result το αποτέλεσμα της κατηγοριοποίησης, την πραγματική κλάση στην οποία ανήκει το fact, και διαγράφει το αρχικό fact. 79

80 Κατά τον ίδιο τρόπο αποθηκεύει όλα τα αποτελέσματα. Στη συνέχεια υπολογίζονται οι μεταβλητές a,b,c,d οι οποίοι θα χρησιμοποιηθούν για τον υπολογισμό των μετρικών. Αυτό γίνεται ως εξής: Κανόνες a: Αν το αυτοκίνητο κατηγοριοποιήθηκε στην κλάση στην οποία ανήκει, τότε αύξησε την μεταβλητή α κατά 1. Κανόνες b: Αν το αυτοκίνητο ΔΕΝ (~) κατηγοριοποιήθηκε από το σύστημα στην κλάση στην οποία ανήκει, τότε αύξησε την μεταβλητή b κατά 1. Κανόνες c: Αν το αυτοκίνητο δεν ανήκει στην κλάση στην οποία κατηγοριοποιήθηκε αύξησε την μεταβλητή c κατά 1. Κανόνες d: Αν το αυτοκίνητο δεν κατηγοριοποιήθηκε στην κλάση στην οποία δεν ανήκει, τότε αύξησε την μεταβλητή d κατά 1. (defrule MAIN::onea (es_result (classp acc) (classr acc)) => (bind?*a* (+?*a* 1))) (defrule MAIN::twoa (es_result (classp unacc) (classr unacc)) => (bind?*a* (+?*a* 1))) (defrule MAIN::threea (es_result (classp good) (classr good)) => (bind?*a* (+?*a* 1))) (defrule MAIN::foura (es_result (classp vgood) (classr vgood)) => (bind?*a* (+?*a* 1))) (defrule MAIN::oneb (es_result (classp ~acc) (classr acc)) => (bind?*b* (+?*b* 1))) (defrule MAIN::twob (es_result (classp ~unacc) (classr unacc)) => (bind?*b* (+?*b* 1))) 80

81 (defrule MAIN::threeb (es_result (classp ~good) (classr good)) Στη => συνέχεια υπολογίζονται και τυπώνονται οι μετρικές: (bind?*b* (+?*b* 1))) Στη συνέχεια υπολογίζονται και τυπώνονται οι μετρικές: (defrule MAIN::fourb (es_result (classp ~vgood) (classr vgood)) => (bind?*b* (+?*b* 1))) (defrule MAIN::onec (es_result (classp acc) (classr ~acc)) => (bind?*c* (+?*c* 1))) (defrule MAIN::twoc (es_result (classp unacc) (classr ~unacc)) => (bind?*c* (+?*c* 1))) (defrule MAIN::threec (es_result (classp good) (classr ~good)) => (bind?*c* (+?*c* 1))) (defrule MAIN::fourc (es_result (classp vgood) (classr ~vgood)) => (bind?*c* (+?*c* 1))) (defrule MAIN::oned (es_result (classp ~acc) (classr ~acc)) => (bind?*d* (+?*d* 1))) (defrule MAIN::twod (es_result (classp ~unacc) (classr ~unacc)) => (bind?*d* (+?*d* 1))) (defrule MAIN::threed (es_result (classp ~good) (classr ~good)) => (bind?*d* (+?*d* 1))) (defrule MAIN::fourd (es_result (classp ~vgood) (classr ~vgood)) => (bind?*d* (+?*d* 1))) 81

82 Στη συνέχεια υπολογίζονται και τυπώνονται οι μετρικές: (defrule MAIN::results => (printout t "accuracy " (/ (+?*a*?*d*) (+?*a*?*b*?*c*?*d*))) (printout t "sensitivity " (/?*a* (+?*a*?*b*))) (printout t "specificity " (/?*d* (+?*c*?*d*))) (printout t "precision " (/?*a* (+?*a*?*c*)))) Το batch αρχείο Το batch αρχείο χρησιμοποιείται για τον ορισμό των global μεταβλητών και τη φόρτωση του αρχείου των κανόνων και του αρχείου των δεδομένων. Οι global μεταβλητές του συστήματος ορίζονται όπως φαίνεται ακόλουθα: (defglobal MAIN?*a* = 0) ;orismos mtavlitwn gia ton ypologimso twn metrikwn (defglobal MAIN?*b* = 0) (defglobal MAIN?*c* = 0) (defglobal MAIN?*d* = 0) (defglobal?*car-evaluation* = "") ;orismos metablitwn tou provlimatos (defglobal?*buying* = 0) (defglobal?*maint* = 0) (defglobal?*doors* = 0) (defglobal?*persons* = 0) (defglobal?*lug_boot* = 0) (defglobal?*safety* = 0) (defglobal?*class* = 0) Στη συνέχεια φορτώνεται το αρχείο των κανόνων (load car.clp). Στη συνέχεια τα δεδομένα φορτώνονται στο σύστημα. (open "trainingset.txt" inputfile "r") ;anoigma tou arxeiou twn dedomenwn (while (stringp(bind?*car-evaluation*(readline inputfile))) (bind?*buying*(nth$ 1 (explode$?*car-evaluation*))) (bind?*maint*(nth$ 2 (explode$?*car-evaluation*))) (bind?*doors*(nth$ 3 (explode$?*car-evaluation*))) (bind?*persons*(nth$ 4 (explode$?*car-evaluation*))) (bind?*lug_boot*(nth$ 5 (explode$?*car-evaluation*))) (bind?*safety*(nth$ 6 (explode$?*car-evaluation*))) (bind?*class*(nth$ 7 (explode$?*car-evaluation*))) 82

83 (assert (car-evaluation (buying?*buying*) (maint?*maint*) (doors?*doors*) (persons?*persons*) (lug_boot?*lug_boot*) (safety?*safety*) (class?*class*) ) ) ) Κάθε μία από τις πρώτες σειρές με το bind διαβάζουν με τη σειρά τα δεδομένα και κάθε ένα στοιχείο το αντιστοιχεί σε μια μεταβλητή του car evaluation. Οι επόμενες αποθηκεύουν τις σειρές των δεδομένων. Στο while (stringp(bind?*car-evaluation*(readline inputfile)) η κάθε γραμμή δεδομένων του αρχείου εισόδου είναι το car evaluation. Στο bind?*buying*(nth$ 1 (explode$?*car-evaluation*)) το πρώτο σε σειρά δεδομένο που διαβάζεται (nth$ 1) αντιστοιχεί στη μεταβλητή buying του car evaluation. Το αρχείο των δεδομένων κλείνει και το αρχείο τρέχει. (close inputfile) ;kleisimo toy arxeiou dedomenwn (run) Η εφαρμογή των κανόνων στο σύνολο εκπαίδευσης (1140 στιγμιότυπα) έχει τα ακόλουθα αποτελέσματα: accuracy sensitivity specificity precision Τα αποτελέσματα των μετρικών είναι ικανοποιητικά και δεν θα χρειαστεί να κάνουμε κάποια αλλαγή στους κανόνες μας. Στο σύνολο ελέγχου (586 στιγμιότυπα) τα αποτελέσματα είναι τα εξής: accuracy sensitivity specificity precision

84 7.2.3.Εφαρμογή GUI Ant-Miner Φορτώνουμε στην εφαρμογή το αρχείο car_evaluation.arff όπως φαίνεται στην παρακάτω εικόνα: Στη συνέχεια κάνουμε την κατηγοριοποίηση θεωρώντας default τις παραμέτρους και παίρνουμε την ακόλουθη έξοδο του συστήματος μετά και το δέκατο cross validation: Cross Validation # Cases in the training set: 1555 Cases in the test set: 173 Rules: 15 IF safety = 'low' THEN 'unacc' IF persons = '2' THEN 'unacc' IF maint = 'vhigh' THEN 'unacc' IF buying = 'vhigh' THEN 'unacc' IF lug_boot = 'big' AND safety = 'high' THEN 'vgood' IF lug_boot = 'small' AND safety = 'med' THEN 'unacc' IF buying = 'low' THEN 'good' 84

85 IF buying = 'high' THEN 'acc' IF doors = '2' AND lug_boot = 'small' THEN 'unacc' IF lug_boot = 'med' AND safety = 'high' THEN 'vgood' IF maint = 'low' THEN 'good' IF maint = 'med' THEN 'acc' IF lug_boot = 'big' THEN 'acc' IF lug_boot = 'small' THEN 'acc' Default rule: acc Accuracy rate on the training set: % Accuracy rate on the test set: % Time taken: s Fold Cross Validation Results Accuracy Rate on Test Set Rules Number Conditions Number ,96% +/- 1,45% 15,6 +/- 0,4 20,7 +/- 1,01 Total elapsed time: 34 s. 85

86 7.2.4.Εφαρμογή ACRES Σκοπός του πειράματος: Δημιουργία έμπειρου συστήματος χωρίς ενδιάμεση μεταβλητή για ένα υποσύνολο μεταβλητών θεωρώντας μία μεταβλητή εξόδου για την οποία το έμπειρο σύστημα θα παράσχει προβλέψεις Αρχιτεκτονική του συστήματος (δενδρική δομή) Σύγκριση των δύο μεθόδων συντελεστών βεβαιότητας (MYCIN και P(H E)) Αξιολόγηση του έμπειρου συστήματος 1_buying 2_maint 3_doors 4_persons 5_lug_boot 6_safety 7_class Αρχείο μεταβλητών car_variables_name.txt vhigh,vhigh,2,2,small,low,unacc vhigh,vhigh,2,2,small,med,unacc vhigh,vhigh,2,2,small,high,unacc vhigh,vhigh,2,2,med,low,unacc vhigh,vhigh,2,2,med,med,unacc vhigh,vhigh,2,2,med,high,unacc vhigh,vhigh,2,2,big,low,unacc vhigh,vhigh,2,2,big,med,unacc vhigh,vhigh,2,2,big,high,unacc vhigh,vhigh,2,4,small,low,unacc Περιγραφή Παράδειγμα αρχείου συνόλου δεδομένων car_evaluation_data.txt Φορτώνω στο εργαλείο ACRES το αρχείο μεταβλητών car_variables_name.txt, κατόπιν το αρχείο του συνόλου δεδομένων car_evaluation_data.txt και δίνω το όνομα CarEvaluation ως Dataset Name. Καλούμαι τώρα να κάνω προεπεξεργασία του συνόλου δεδομένων (εδώ δεν χρειάζεται) και να ορίσω την μεταβλητή εξόδου για την οποία θέλω να πάρω προβλέψεις. Ορίζω σαν μεταβλητή εξόδου/πρόβλεψης την μεταβλητή 7_class και πατάω Continue. 86

87 Καλούμαι τώρα να ορίσω το υποσύνολο μεταβλητών για τη δημιουργία κανόνων πρόβλεψης. Πατάω το Find Subset το οποίο μου δίνει όλα τα υποσύνολα κατά αύξουσα σειρά με το καλύτερο σκορ. Σκοπός μας είναι να υπάρχει καλή απόδοση των μετρικών, σχετικά μικρός αριθμός κανόνων και μεγάλο ποσοστό των στιγμιότυπων που καλύπτονται. Επιλέγω το υποσύνολο {1, 2, 4, 5, 6} όπου από τα αποτελέσματα του Test φαίνεται ότι δημιουργούνται 430 κανόνες και καλύπτονται 425 από τα 431 στιγμιότυπα του συνόλου ελέγχου. Παραθέτω την αρχιτεκτονική του συστήματος (δέντρο): Από το αρχείο log.txt προκύπτει ότι: 87

88 class0 Instances: 1210 class1 Instances: 384 class2 Instances: 65 class3 Instances: 69 ratio: 0.25 Class Data Train Test Ratio Total unacc acc vgood good τo σύνολο δεδομένων είναι μη ισορροπημένο και ότι η κλάση unacc είναι κλάση πλειοψηφίας και οι κλάσεις vgood και good είναι κλάσεις μειοψηφίας. Αξιολογώ το έμπειρο σύστημα για καθένα από τα μοντέλα συντελεστών βεβαιότητας (MYCIN CFs και P(H E)): unacc acc vgood good Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.95 MYCIN CFs unacc acc vgood good Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.94 P(H E) Συμπέρασμα: Από τη σύγκριση για τις δύο μεθόδους εκτίμησης των συντελεστών βεβαιότητας στους κανόνες, βλέπουμε ότι η γενικότερη απόδοση όσον αφορά την πρόβλεψη είναι σχεδόν ίδια (η μέθοδος MYCIN πετυχαίνει ποσοστό πρόβλεψης μεγαλύτερο κατά 1%). Παρατήρηση: Αν προσπαθήσω να πάρω ως υποσύνολο μεταβλητών και τις έξι μεταβλητές ως μεταβλητές εισόδου, παρατηρώ ότι όλες οι τιμές στις μετρικές και για τις δύο μεθόδους έχουν την ένδειξη -1.#IND. Το -1.#IND οφείλεται σε διαίρεση με 0 στον υπολογισμό της μετρικής. Τα στιγμιότυπα των κλάσεων πάνε όλα στο σύνολο εκπαίδευσης. Δεν υπάρχει κανένα στιγμιότυπό τους στο σύνολο ελέγχου, οπότε στον υπολογισμό των μετρικών προκύπτει διαίρεση με 0. 88

89 7.2.5.Σύγκριση μεθόδων Σχολιασμός μετρικών Όσον αφορά την αντιμετώπιση μεγάλων συνόλων δεδομένων, όπως το σύνολο δεδομένων Car Evaluation, ταχύτερες είναι οι εφαρμογές WEKA και CLIPS, σε αντίθεση με τα ACRES και GUI Ant-miner που αργούν στην παραγωγή της εξόδου. Ακόμη η εφαρμογή WEKA παρέχει ένα πιο εύχρηστο περιβάλλον για ρυθμίσεις παραμέτρων. Συγκρίνοντας τα ποσοστά επιτυχίας της κάθε μεθόδου παίρνουμε τον παρακάτω πίνακα: CLIPS ACRES GUI ANT-MINER WEKA TRAINING SET TEST SET MYCIN P(H E) TRAINING SET TEST SET Accuracy Sensitivity Specificity Precision Συγκρίνοντας τις τιμές της Accuracy λοιπόν, παρατηρούμε ότι το ACRES μέσω των μεθόδων MYCIN και P(H E) δίνει καλύτερη ακρίβεια από τις άλλες μεθόδους, αλλά χρησιμοποιώντας τις 5 από τις 6 μεταβλητές ως υποσύνολο, οπότε η μέθοδος WEKA και το GUI Ant-miner και εν συνέχεια η μέθοδος CLIPS δίνουν ακριβέστερα αποτελέσματα, πιο αξιόπιστα και πιο γρήγορα. Το WEKA και το GUI Ant-miner δεν δίνει αποτελέσματα για τις άλλες μετρικές. Εάν τώρα συγκρίνουμε επιμέρους τις υπόλοιπες μετρικές μεταξύ των μεθόδων CLIPS και MYCIN P(H E), παρατηρούμε ότι οι MYCIN P(H E) υπερτερούν σε όλες τις μετρικές Το σύνολο δεδομένων Pima Indians Diabetes Περιγραφή του προβλήματος που πραγματεύεται το ΕΣ Σκοπός του προβλήματος είναι η δημιουργία έμπειρου συστήματος το οποίο θα μπορεί να συμπεραίνει αν ένα άτομο από τους Ινδιάνους Pima με συγκεκριμένα χαρακτηριστικά είναι διαβητικός ή όχι. Τα δεδομένα στα οποία θα βασιστεί η δημιουργία του συστήματός μας, αποτελούν 768 περιπτώσεις ατόμων για τα οποία έχουν καταγραφεί συγκεκριμένα χαρακτηριστικά τους συμπεριλαμβανομένου του αποτελέσματος του διαβητικού τεστ στο οποίο έχουν υποβληθεί. Το σύνολο δεδομένων Pima Indians Diabetes της βάσης δεδομένων UCI Machine Learning Repository ( αποτελείται από 768 στιγμιότυπα. Κάθε στιγμιότυπο περιλαμβάνει εννέα χαρακτηριστικά τα οποία είναι: 89

90 Α/Α Μεταβλητή Επεξήγηση 1 number-of-times-pregnant Πόσες φορές έμεινε έγκυος 2 plasma Συγκέντρωση πλάσματος γλυκόζης 2 ώρες σε τεστ ανοχής γλυκόζης από το στόμα 3 diastolic-blood-pressure Διαστολική αρτηριακή πίεση (σε mmhg) 4 triceps_skin_fold_thickness Πάχος της δερματοπτυχής τρικέφαλου (σε mm) 5 2-hour-serum-insulin 2-ώρες ινσουλίνη ορού (σε mu U/ml) 6 body_mass_index Δείκτης Μάζας Σώματος ((βάρος in kg/(height in m)^2)) 7 diabetes_pedigree_function Γενεαλογική λειτουργία του διαβήτη 8 age Ηλικία (σε Έτη) 9 class Αξιολόγηση του ασθενή ως διαβητικού (τιμή 1) ή μη (τιμή 0) Εφαρμογή WEKA Εξαγωγή γνώσης από τα δεδομένα Η έξοδος του WEKA, με cross validation 10, reduced error pruning και εφαρμόζοντας τον αλγόριθμο j48, είναι: === Run information === Scheme:weka.classifiers.trees.J48 -R -N 3 -Q 1 -M 2 Relation: Pima_Indians_Diabetes Instances:768 Attributes:9 number-of-times-pregnant plasma diastolic-blood-pressure triceps_skin_fold_thickness 2-hour-serum-insulin body_mass_index diabetes_pedigree_function age class Test mode:10-fold cross-validation === Classifier model (full training set) === 90

91 J48 pruned tree plasma <= 123 age <= 29: 0 (173.0/14.0) age > 29 body_mass_index <= 26.8: 0 (29.0/1.0) body_mass_index > 26.8 diastolic-blood-pressure <= 90 plasma <= 107: 0 (50.0/15.0) plasma > 107: 1 (35.0/12.0) diastolic-blood-pressure > 90: 0 (7.0) plasma > 123 plasma <= 166 age <= 24: 0 (34.0/6.0) age > 24: 1 (128.0/55.0) plasma > 166: 1 (56.0/9.0) Number of Leaves : 8 Size of the tree : 15 Time taken to build model: 0.33seconds === Stratified cross-validation === === Summary === Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances 768 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class Weighted Avg === Confusion Matrix === a b <-- classified as 91

92 a = b = 1 Κάνοντας Visualize Tree, προκύπτει από το WEKA το ακόλουθο δέντρο απόφασης: Οι κανόνες τους οποίους θα υλοποιήσουμε βάσει του παραπάνω δέντρου είναι οι ακόλουθοι: 1. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μικρότερη ή ίση με 123 και η ηλικία του ατόμου είναι μικρότερη ή ίση του 29, το άτομο δεν είναι διαβητικό 2. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μικρότερη ή ίση με 123, η ηλικία του ατόμου είναι μεγαλύτερη από 29 έτη και ο δείκτης μάζας σώματος είναι μικρότερος ή ίσος με 26.8 το άτομο δεν είναι διαβητικό 3. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μικρότερη ή ίση με 107, η ηλικία του ατόμου είναι μεγαλύτερη από 29 έτη, ο δείκτης μάζας σώματος είναι μεγαλύτερος από 26.8, η διαστολική αρτηριακή πίεση είναι μικρότερη ή ίση με 90 το άτομο δεν είναι διαβητικό 4. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μικρότερη ή ίση με 123 και μεγαλύτερη από 107, η ηλικία του ατόμου είναι μεγαλύτερη από 29 έτη, ο δείκτης μάζας σώματος είναι μεγαλύτερος από 26.8, η διαστολική αρτηριακή πίεση είναι μικρότερη ή ίση με 90 το άτομο είναι διαβητικό 5. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μικρότερη ή ίση με 123, η ηλικία του ατόμου είναι μεγαλύτερη από 29 έτη, ο δείκτης μάζας σώματος είναι μεγαλύτερος από 26.8, η διαστολική αρτηριακή πίεση είναι μεγαλύτερη από 90 το άτομο δεν είναι διαβητικό 6. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μεγαλύτερη από 123 και μικρότερη ή ίση με 166 και η ηλικία του ατόμου είναι μικρότερη ίση με 24 τότε το άτομο δεν είναι διαβητικό. 92

93 7. Όταν η συγκέντρωση πλάσματος γλυκόζης είναι μεγαλύτερη από 166, το άτομο είναι διαβητικό. Με τη χρήση του WEKA εν συνεχεία χωρίζουμε το σύνολο δεδομένων σε σύνολο εκπαίδευσης (66% του συνόλου δεδομένων) και σύνολο ελέγχου με τη χρήση του φίλτρου «remove percentage» Υλοποίηση σε CLIPS Ο κώδικας σε CLIPS είναι υλοποιημένος με τον ίδιο τρόπο όπως και στο προηγούμενο σύνολο και δίνεται στο Παράρτημα, όπως και όλοι οι άλλοι κώδικες. Τα αποτελέσματα από την εφαρμογή των παραπάνω κανόνων στο σύνολο εκπαίδευσης (515 στιγμιότυπα) είναι: accuracy 0.5 sensitivity specificity precision 0.5 Διαγράφοντας τον τέταρτο κανόνα, παρατηρούμε ότι δεν βελτιώθηκε καθόλου η ακρίβεια, αλλά μόνο το specificity: accuracy 0.5 sensitivity specificity precision 0.5 Στο σύνολο ελέγχου (253 στιγμιότυπα) τα αποτελέσματα είναι τα εξής: accuracy sensitivity 0.5 specificity precision Υλοποίηση σε FuzzyCLIPS Θα κάνουμε ασαφείς τις μεταβλητές age με όνομα agef και plasma με όνομα plasmaf. Παρακάτω φαίνεται ο ορισμός των ασαφών αυτών μεταβλητών με χρήση της εντολής deftemplate και χρήση των συναρτήσεων τύπου Z και S για την περιγραφή των συναρτήσεων συμμετοχής: 93

94 (deftemplate agef ((young (z 21 24)) (old (s 24 29) ) ) ) ;asafeis metablites (deftemplate plasmaf ((small (z 0 99) ) (big (s ) ) ) ) Πλέον στους κανόνες η ασαφής μεταβλητή age θα παίρνει τις λεκτικές τιμές young ή old και η ασαφής μεταβλητή plasma θα παίρνει τις λεκτικές τιμές small ή big. Για το σύνολο δεδομένων εκπαίδευσης τα αποτελέσματα είναι: και στο σύνολο ελέγχου είναι: accuracy 0.6 sensitivity 0.5 specificity precision 0.5 accuracy sensitivity specificity 0.6 precision Εφαρμογή GUI Ant-Miner Φορτώνουμε στην εφαρμογή το αρχείο pima_indians_diabetes1.arff, το οποίο έχει υποστεί διακριτοποίηση όλων των μεταβλητών του, εκτός της μεταβλητής class, όπως φαίνεται στην παρακάτω εικόνα: 94

95 Στη συνέχεια κάνουμε την κατηγοριοποίηση θεωρώντας default τις παραμέτρους και παίρνουμε την ακόλουθη έξοδο του συστήματος μετά και το δέκατο cross validation: Cross Validation # Cases in the training set: 691 Cases in the test set: 77 Rules: 9 IF plasma = '\( ]\' THEN '0' IF age = '\(-inf-33]\' THEN '0' IF plasma = '\(159.2-inf)\' THEN '1' IF diastolic-blood-pressure = '\( ]\' AND 2-hour-serum-insulin = '\(-inf-169.2]\' AND diabetes_pedigree_function = '\(-inf ]\' THEN '0' IF plasma = '\( ]\' AND 2-hour-serum-insulin = '\(-inf-169.2]\' AND body_mass_index = '\( ]\' THEN '1' 95

96 IF body_mass_index = '\( ]\' THEN '1' IF 2-hour-serum-insulin = '\(-inf-169.2]\' THEN '0' IF number-of-times-pregnant = '\( ]\' THEN '0' Default rule: 1 Accuracy rate on the training set: % Accuracy rate on the test set: % Time taken: s Fold Cross Validation Results Accuracy Rate on Test Set Rules Number Conditions Number ,36% +/- 0,82% 9 +/- 0,3 11,9 +/- 0,71 Total elapsed time: 34 s Εφαρμογή ACRES 1_number-of-times-pregnant 2_plasma 3_diastolic-blood-pressure 4_triceps_skin_fold_thickness 5_2-hour-serum-insulin 6_body_mass_index 7_diabetes_pedigree_function 8_age 9_class Αρχείο μεταβλητών με όνομα pima_variables-name.txt 6,148,72,35,0,33.6,0.627,50,1 1,85,66,29,0,26.6,0.351,31,0 8,183,64,0,0,23.3,0.672,32,1 1,89,66,23,94,28.1,0.167,21,0 0,137,40,35,168,43.1,2.288,33,1 5,116,74,0,0,25.6,0.201,30,0 3,78,50,32,88,31.0,0.248,26,1 10,115,0,0,0,35.3,0.134,29,0 2,197,70,45,543,30.5,0.158,53,1 8,125,96,0,0,0.0,0.232,54,1 Παράδειγμα αρχείου συνόλου δεδομένων diabetes.data 96

97 Περιγραφή Φορτώνω στο εργαλείο ACRES το αρχείο μεταβλητών pima_variables-name.txt, κατόπιν το αρχείο του συνόλου δεδομένων diabetes.data και δίνω το όνομα Pima Indians Diabetes ως Dataset Name. Κάνω διακριτοποίηση των πραγματικών μεταβλητών: 1_number-of-times-pregnant 2_plasma 3_diastolic-blood-pressure 4_triceps_skin_fold_thickness 5_2-hour-serum-insulin 6_body_mass_index 7_diabetes_pedigree_function 8_age και αποθηκεύω τις αλλαγές που έγιναν σε ένα νέο αρχείο diabetes1.data το οποίο φορτώνω ξανά για να συνεχίσω με τη δημιουργία του έμπειρου συστήματος , , , , , , ,45-57, , , , , , , ,21-33, , , ,0-19.8, , , ,21-33, , , , , , , ,21-33, , , , , , , ,21-33, , , ,0-19.8, , , ,21-33, , , , , , , ,21-33, , ,0-24.4,0-19.8, , , ,21-33, , , , , , , ,45-57, , , ,0-19.8, , , ,45-57,1 Παράδειγμα αρχείου συνόλου δεδομένων μετά την προεπεξεργασία diabetes1.data Ορίζω σαν μεταβλητή εξόδου/πρόβλεψης την μεταβλητή 9_class που έχει δύο κλάσεις εξόδου 0 ή 1 και πατάω Continue. Ορίζω ως υποσύνολο μεταβλητών για τη δημιουργία κανόνων πρόβλεψης το σύνολο {2, 3, 6, 8}. Αυτό το υποσύνολο μεταβλητών χρησιμοποιήθηκε στους κανόνες που προέκυψαν από το WEKA. Από το Test φαίνεται ότι παράγονται 108 κανόνες και καλύπτονται 177 από τα 192 στιγμιότυπα του συνόλου ελέγχου. 97

98 Παραθέτω την αρχιτεκτονική του συστήματος (δέντρο): Από το αρχείο log.txt προκύπτει ότι: class0 Instances: 268 class1 Instances: 500 ratio: 0.25 Class Data Train Test Ratio Total c c τo σύνολο δεδομένων είναι μη ισορροπημένο και ότι η κλάση c1 είναι κλάση μειοψηφίας και η κλάση c0 είναι κλάση πλειοψηφίας. 98

99 Αξιολογώ το έμπειρο σύστημα για καθένα από τα μοντέλα συντελεστών βεβαιότητας (MYCIN CFs και P(H E)): c1 c0 Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.73 MYCIN CFs c1 c0 Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.74 P(H E) ΣΧΟΛΙΑ: Από τη σύγκριση για τις δύο μεθόδους εκτίμησης των συντελεστών βεβαιότητας στους κανόνες, βλέπουμε καταρχάς ότι η γενικότερη απόδοση όσον αφορά την πρόβλεψη είναι σχεδόν ίδια (η μέθοδος P(H E) πετυχαίνει ποσοστό πρόβλεψης μεγαλύτερο κατά 1%). Βλέποντας κάθε κλάση ξεχωριστά, παρατηρούμε ότι η διαφορά στο Precision είναι μεγαλύτερη στην κλάση μειοψηφίας (καλύτερη κατά 0,08% με τη μέθοδο P(H E)) και στην κλάση πλειοψηφίας (καλύτερη με την μέθοδο MYCIN κατά 8%). Στις τιμές Ευαισθησίας, η μέθοδος MYCIN ευνοεί την κλάση μειοψηφίας (c1) κατά 27% και η μέθοδος P(H E) ευνοεί την κλάση πλειοψηφίας κατά 15%. Ρίχνοντας μια ματιά στην διαφορά στην απόδοση των δύο κλάσεων, φαίνεται ότι στην μέθοδο MYCIN οι τιμές SQRT(p*r) είναι πιο κοντά (0,67 0,78) σε σχέση με την μέθοδο P(H E) όπου υπάρχει μεγαλύτερη διαφορά (0,58 0,82). Συμπέρασμα: Φαίνεται ότι στο συγκεκριμένο πείραμα η μέθοδος P(H E) δουλεύει καλύτερα σύμφωνα με την γενικότερη απόδοση, αλλά η MYCIN πετυχαίνει μεγαλύτερη ισορροπία μεταξύ των δύο κλάσεων Σύγκριση μεθόδων Σχολιασμός μετρικών Συγκρίνοντας τα ποσοστά επιτυχίας της κάθε μεθόδου παίρνουμε τον παρακάτω πίνακα: CLIPS ACRES GUI ANT-MINER WEKA TRAINING SET TEST SET MYCIN P(H E) TRAINING SET TEST SET Accuracy Sensitivity Specificity Precision FuzzyCLIPS TRAINING SET TEST SET Συγκρίνοντας τις τιμές της Accuracy λοιπόν, παρατηρούμε ότι το ACRES μέσω των μεθόδων MYCIN και P(H E) δίνει καλύτερη ακρίβεια από τις άλλες μεθόδους, αλλά χρησιμοποιώντας τις 99

100 4 από τις 6 μεταβλητές ως υποσύνολο, οπότε η μέθοδος WEKA και το GUI Ant-miner δίνουν μεγαλύτερη ακρίβεια και πιο αξιόπιστα. Το WEKA και το GUI Ant-miner δεν δίνει αποτελέσματα για τις άλλες μετρικές. Εάν τώρα συγκρίνουμε επιμέρους τις υπόλοιπες μετρικές μεταξύ των μεθόδων CLIPS και MYCIN P(H E), παρατηρούμε ότι οι MYCIN P(H E) υπερτερούν σε όλες τις μετρικές. Επίσης συγκρίνοντας το CLIPS με το FuzzyCLIPS παρατηρούμε ότι ασαφοποιώντας δύο μεταβλητές η ακρίβεια μεγαλώνει Το σύνολο δεδομένων Blood Transfusion Service Center Περιγραφή του προβλήματος που πραγματεύεται το ΕΣ Σκοπός του προβλήματος είναι η δημιουργία έμπειρου συστήματος το οποίο θα μπορεί να συμπεραίνει αν ένα άτομο έδωσε αίμα τον Μάρτιο του 2007 ή όχι. Τα δεδομένα στα οποία θα βασιστεί η δημιουργία του συστήματός μας, αποτελούν 748 περιπτώσεις ατόμων για τα οποία έχουν καταγραφεί συγκεκριμένα χαρακτηριστικά τους. Το σύνολο δεδομένων Blood Transfusion Service Center της βάσης δεδομένων UCI Machine Learning Repository αποτελείται από 748 στιγμιότυπα. Κάθε στιγμιότυπο περιλαμβάνει πέντε χαρακτηριστικά τα οποία είναι: Α/Α Μεταβλητή Επεξήγηση 1 Recency Μήνες από την τελευταία αιμοδοσία 2 Frequency Συνολικές φορές αιμοδοσίας 3 Monetary Συνολική ποσότητα αίματος που δωρήθηκε σε c.c. 4 Time Μήνες μετά την πρώτη αιμοδοσία 5 class Αξιολόγηση του ατόμου με το αν δώρησε αίμα τον Μάρτιο του 2007 (τιμή 1) ή όχι (τιμή 0) Εφαρμογή WEKA Εξαγωγή γνώσης από τα δεδομένα Η έξοδος του WEKA, με cross validation 10, reduced error pruning και εφαρμόζοντας τον αλγόριθμο j48 είναι: === Run information === Scheme:weka.classifiers.trees.J48 -R -N 3 -Q 1 -M 2 Relation: Blood_Transfusion_Service_Center Instances:

101 Attributes:5 Recency Frequency Monetary Time class Test mode:10-fold cross-validation === Classifier model (full training set) === J48 pruned tree Recency <= 7 Frequency <= 3: 0 (100.0/23.0) Frequency > 3 Time <= 46 Frequency <= 6: 0 (54.0/27.0) Frequency > 6: 1 (33.0/8.0) Time > 46 Frequency <= 24 Frequency <= 12: 0 (35.0/3.0) Frequency > 12 Recency <= 1: 0 (4.0) Recency > 1 Recency <= 4 Time <= 57: 1 (4.0) Time > 57 Recency <= 3: 0 (5.0/1.0) Recency > 3: 1 (5.0/2.0) Recency > 4: 0 (3.0) Frequency > 24: 1 (6.0) Recency > 7: 0 (250.0/27.0) Number of Leaves : 11 Size of the tree : 21 Time taken to build model: 0.19seconds === Stratified cross-validation === === Summary === Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic

102 Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances 748 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class Weighted Avg === Confusion Matrix === a b <-- classified as a = b = 1 Κάνοντας Visualize Tree, προκύπτει από το WEKA το ακόλουθο δέντρο απόφασης: Οι κανόνες τους οποίους θα υλοποιήσουμε βάσει του παραπάνω δέντρου είναι οι ακόλουθοι: 1. Όταν το Recency είναι μικρότερο ή ίσο του 7, το Frequency είναι μικρότερο ή ίσο του 3, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του

103 2. Όταν το Recency είναι μικρότερο ή ίσο του 7, το Frequency είναι μεγαλύτερο του 3 και μικρότερο ή ίσο του 6 και το time είναι μικρότερο ίσο του 46, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μικρότερο ή ίσο του 7, το Frequency είναι μεγαλύτερο του 6 και το time είναι μικρότερο ίσο του 46, τότε το άτομο δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μικρότερο ή ίσο του 7, το Frequency είναι μεγαλύτερο του 3 και μικρότερο ή ίσο του 12 και το time είναι μεγαλύτερο του 46, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μικρότερο ή ίσο του 7, το Frequency είναι μεγαλύτερο του 24 και το time είναι μεγαλύτερο του 46, τότε το άτομο δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μικρότερο ή ίσο του 1, το Frequency είναι μεγαλύτερο του 12 και μικρότερο ή ίσο του 24 και το time είναι μεγαλύτερο του 46, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μεγαλύτερο του 1 και μικρότερο ή ίσο του 4, το Frequency είναι μεγαλύτερο του 12 και μικρότερο ή ίσο του 24 και το time είναι μεγαλύτερο του 46 και μικρότερο ή ίσο του 57, τότε το άτομο δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μεγαλύτερο του 4 και μικρότερο ή ίσο του 7, το Frequency είναι μεγαλύτερο του 12 και μικρότερο ή ίσο του 24 και το time είναι μεγαλύτερο του 46, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι μεγαλύτερο του 7, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι ίσο με 4, το Frequency είναι μεγαλύτερο του 12 και μικρότερο ή ίσο του 24 και το time είναι μεγαλύτερο του 57, τότε το άτομο δώρησε αίμα τον Μάρτιο του Όταν το Recency είναι ίσο με 2 και Recency είναι ίσο με 3, το Frequency είναι μεγαλύτερο του 12 και μικρότερο ή ίσο του 24 και το time είναι μεγαλύτερο του 57, τότε το άτομο δεν δώρησε αίμα τον Μάρτιο του Με τη χρήση του WEKA εν συνεχεία χωρίζουμε το σύνολο δεδομένων σε σύνολο εκπαίδευσης (66% του συνόλου δεδομένων) και σύνολο ελέγχου με τη χρήση του φίλτρου «remove percentage» Υλοποίηση σε CLIPS Ο κώδικας σε CLIPS είναι υλοποιημένος με τον ίδιο τρόπο όπως και στα προηγούμενα σύνολα και δίνεται στο Παράρτημα, όπως και όλοι οι άλλοι κώδικες. Τα αποτελέσματα από την εφαρμογή των παραπάνω κανόνων στο σύνολο εκπαίδευσης (500 στιγμιότυπα) είναι: accuracy sensitivity 0.5 specificity precision 0.75 Στο σύνολο ελέγχου (248 στιγμιότυπα) τα αποτελέσματα είναι τα εξής: 103

104 accuracy sensitivity 0.5 specificity precision Υλοποίηση σε FuzzyCLIPS Θα κάνουμε ασαφείς τις μεταβλητές frequency με όνομα frequencyf και time με όνομα timef. Παρακάτω φαίνεται ο ορισμός των ασαφών αυτών μεταβλητών με χρήση της εντολής deftemplate και χρήση των συναρτήσεων τύπου Z και S για την περιγραφή των συναρτήσεων συμμετοχής: (deftemplate frequencyf 1 50 ((low (z 1 25)) (high (s 25 50)) ) ) (deftemplate timef 2 98 ((short (z 2 48)) (long (s 48 98)) ) ) Πλέον στους κανόνες η ασαφής μεταβλητή frequency θα παίρνει τις λεκτικές τιμές low ή high και η ασαφής μεταβλητή time θα παίρνει τις λεκτικές τιμές short ή long. Για το σύνολο δεδομένων εκπαίδευσης τα αποτελέσματα είναι: και στο σύνολο ελέγχου είναι: accuracy sensitivity 0.5 specificity 0.8 precision accuracy sensitivity 0.4 specificity precision

105 7.4.4.Εφαρμογή GUI Ant-Miner Φορτώνουμε στην εφαρμογή το αρχείο Blood_Transfusion_Service_Center1.arff, το οποίο έχει υποστεί διακριτοποίηση όλων των μεταβλητών του, εκτός της μεταβλητής class, όπως φαίνεται στην παρακάτω εικόνα: Στη συνέχεια κάνουμε την κατηγοριοποίηση θεωρώντας default τις παραμέτρους και παίρνουμε την ακόλουθη έξοδο του συστήματος μετά και το δέκατο cross validation: Cross Validation # Cases in the training set: 673 Cases in the test set: 75 Rules: 8 IF Recency = '\( ]\' THEN '0' IF Time = '\(-inf-21.2]\' THEN '0' IF Frequency = '\(-inf-10.8]\' THEN '0' IF Time = '\(78.8-inf)\' THEN '0' IF Time = '\( ]\' THEN '0' IF Frequency = '\( ]\' AND Time = '\( ]\' THEN '0' IF Frequency = '\( ]\' THEN '1' 105

106 Default rule: 1 Accuracy rate on the training set: % Accuracy rate on the test set: % Time taken: s Fold Cross Validation Results Accuracy Rate on Test Set Rules Number Conditions Number ,55% +/- 1,78% 7,4 +/- 0,34 7,3 +/- 0,56 Total elapsed time: 4 s Εφαρμογή ACRES 1_Recency 2_Frequency 3_Monetary 4_Time 5_class 2,50,12500,98,1 0,13,3250,28,1 1,16,4000,35,1 2,20,5000,45,1 1,24,6000,77,0 4,4,1000,4,0 2,7,1750,14,1 1,12,3000,35,0 2,9,2250,22,1 5,46,11500,98,1 Περιγραφή Αρχείο μεταβλητών με όνομα transfusion_variables_name.txt Παράδειγμα αρχείου συνόλου δεδομένων transfusion.data Φορτώνω στο εργαλείο ACRES το αρχείο μεταβλητών transfusion_variables_name.txt, κατόπιν το αρχείο του συνόλου δεδομένων transfusion.data και δίνω το όνομα Blood_Transfusion_Service_Center ως Dataset Name. 106

107 Κάνω διακριτοποίηση των πραγματικών μεταβλητών: 1_Recency 2_Frequency 3_Monetary 4_Time και αποθηκεύω τις αλλαγές που έγιναν σε ένα νέο αρχείο transfusion1.data το οποίο φορτώνω ξανά για να συνεχίσω με τη δημιουργία του έμπειρου συστήματος , , , , , , , , , , , , , , , , , , , , ,1-10.8, ,2-21.2, ,1-10.8, ,2-21.2, , , , , ,1-10.8, , , , , , ,1 Παράδειγμα αρχείου συνόλου δεδομένων μετά την προεπεξεργασία transfusion1.data Ορίζω σαν μεταβλητή εξόδου/πρόβλεψης την μεταβλητή 5_class που έχει δύο κλάσεις εξόδου 0 ή 1 και πατάω Continue. Ορίζω ως υποσύνολο μεταβλητών για τη δημιουργία κανόνων πρόβλεψης το σύνολο {1, 2, 4}. Αυτό το υποσύνολο μεταβλητών χρησιμοποιήθηκε στους κανόνες που προέκυψαν από το WEKA. Από το Test φαίνεται ότι παράγονται 27 κανόνες και καλύπτονται 184 από τα 186 στιγμιότυπα του συνόλου ελέγχου. 107

108 Παραθέτω την αρχιτεκτονική του συστήματος (δέντρο): Από το αρχείο log.txt προκύπτει ότι: class0 Instances: 178 class1 Instances: 570 ratio: 0.25 Class Data Train Test Ratio Total c c τo σύνολο δεδομένων είναι μη ισορροπημένο και ότι η κλάση c1 είναι κλάση μειοψηφίας και η κλάση c0 είναι κλάση πλειοψηφίας. 108

109 Αξιολογώ το έμπειρο σύστημα για καθένα από τα μοντέλα συντελεστών βεβαιότητας (MYCIN CFs και P(H E)): c1 c0 Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.52 MYCIN CFs c1 c0 Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.74 P(H E) ΣΧΟΛΙΑ: Από τη σύγκριση για τις δύο μεθόδους εκτίμησης των συντελεστών βεβαιότητας στους κανόνες, βλέπουμε καταρχάς ότι η γενικότερη απόδοση όσον αφορά την πρόβλεψη είναι πολύ καλύτερη της μεθόδου P(H E) έναντι της μεθόδου MYCIN (η μέθοδος P(H E) πετυχαίνει ποσοστό πρόβλεψης μεγαλύτερο κατά 22%). Στις τιμές Ευαισθησίας, η μέθοδος MYCIN ευνοεί κατά πολύ την κλάση μειοψηφίας (c1) κατά 75% και η μέθοδος P(H E) ευνοεί την κλάση πλειοψηφίας κατά 52%. Ρίχνοντας μια ματιά στην διαφορά στην απόδοση των δύο κλάσεων, φαίνεται ότι στην μέθοδο MYCIN οι τιμές SQRT(p*r) είναι πιο κοντά (0,49 0,62) σε σχέση με την μέθοδο P(H E) όπου υπάρχει μεγαλύτερη διαφορά (0,11 0,86). Συμπέρασμα: Φαίνεται ότι στο συγκεκριμένο πείραμα η μέθοδος P(H E) δουλεύει πολύ καλύτερα σύμφωνα με την γενικότερη απόδοση, αλλά η MYCIN πετυχαίνει μεγαλύτερη ισορροπία μεταξύ των δύο κλάσεων Σύγκριση μεθόδων Σχολιασμός μετρικών Συγκρίνοντας τα ποσοστά επιτυχίας της κάθε μεθόδου παίρνουμε τον παρακάτω πίνακα: CLIPS ACRES GUI ANT-MINER WEKA TRAINING SET TEST SET MYCIN P(H E) TRAINING SET TEST SET Accuracy Sensitivity Specificity Precision FuzzyCLIPS TRAINING SET TEST SET Συγκρίνοντας τις τιμές της Accuracy λοιπόν, παρατηρούμε ότι το WEKA, το GUI Ant-Miner και το ACRES μέσω της μεθόδου P(H E), δίνουν καλύτερη ακρίβεια από τις άλλες μεθόδους, αλλά στο ACRES χρησιμοποιώντας τις 3 από τις 4 μεταβλητές εισόδου ως υποσύνολο, οπότε η μέθοδος WEKA και το GUI Ant-miner δίνουν μεγαλύτερη ακρίβεια και πιο αξιόπιστα. Το WEKA 109

110 και το GUI Ant-miner δεν δίνει αποτελέσματα για τις άλλες μετρικές. Εάν τώρα συγκρίνουμε επιμέρους τις υπόλοιπες μετρικές μεταξύ των μεθόδων CLIPS και MYCIN, παρατηρούμε ότι έχουν σχεδόν ίδιες μετρικές με λίγο καλύτερο το CLIPS. Επίσης συγκρίνοντας το CLIPS με το FuzzyCLIPS παρατηρούμε ότι ασαφοποιώντας δύο μεταβλητές η ακρίβεια μίκρυνε Το σύνολο δεδομένων Liver Disorders Περιγραφή του προβλήματος που πραγματεύεται το ΕΣ Το πρόβλημα αυτό προέρχεται από την Ιατρική και αφορά τη διάγνωση δυσλειτουργίας ή όχι του ήπατος. Η διάγνωση στηρίζεται σε έξι μεταβλητές που περιγράφονται στο αρχείο bupa.names (το οποίο δίνεται), πέντε από τις οποίες αφορούν εξετάσεις αίματος, ενώ η έκτη αφορά τη μέση ημερήσια κατανάλωση αλκοόλ. Η έβδομη μεταβλητή αναπαριστά το αποτέλεσμα της διάγνωσης (καλή λειτουργία ή δυσλειτουργία του ήπατος). Στο δεύτερο αρχείο (bupa.data) περιέχονται 345 περιπτώσεις ανδρών με τις αντίστοιχες τιμές για τις παραμέτρους διάγνωσης και το αποτέλεσμα της διάγνωσης. Το σύνολο δεδομένων Liver Disorders της βάσης δεδομένων UCI Machine Learning Repository αποτελείται από 345 στιγμιότυπα τα οποία γίνονται 341 διότι τέσσερα από αυτά είναι διπλότυπα. Κάθε στιγμιότυπο περιλαμβάνει επτά χαρακτηριστικά τα οποία είναι: Α/Α Μεταβλητή Επεξήγηση 1 mcv 2 alkphos 3 sgpt 4 sgot Μεταβλητές που αφορούν εξετάσεις αίματος (ένζυμα) 5 gammagt 6 drinks Μέση ημερήσια κατανάλωση αλκοόλ 7 selector(class) Αποτέλεσμα της διάγνωσης (καλή λειτουργία του ήπατος που αντιστοιχεί στην τιμή 2 ή δυσλειτουργία του ήπατος που αντιστοιχεί στη τιμή 1) Εφαρμογή WEKA Εξαγωγή γνώσης από τα δεδομένα Η έξοδος του WEKA, με cross validation 10, reduced error pruning και εφαρμόζοντας τον αλγόριθμο j48 είναι: 110

111 === Run information === Scheme:weka.classifiers.trees.J48 -R -N 3 -Q 1 -M 2 Relation: liver_disorders Instances:341 Attributes:7 mcv alkphos sgpt sgot gammagt drinks selector(class) Test mode:10-fold cross-validation === Classifier model (full training set) === J48 pruned tree gammagt <= 20 sgpt <= 19: 2 (39.0/13.0) sgpt > 19: 1 (54.0/13.0) gammagt > 20 drinks <= 5: 2 (89.0/19.0) drinks > 5 sgpt <= 36 sgot <= 24 drinks <= 7: 2 (5.0/1.0) drinks > 7: 1 (8.0/4.0) sgot > 24: 2 (9.0) sgpt > 36 sgot <= 45: 1 (19.0/3.0) sgot > 45: 2 (5.0/1.0) Number of Leaves : 8 Size of the tree : 15 Time taken to build model: 0.08seconds === Stratified cross-validation === === Summary === 111

112 Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances 341 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class Weighted Avg === Confusion Matrix === a b <-- classified as a = b = 2 Κάνοντας Visualize Tree, προκύπτει από το WEKA το ακόλουθο δέντρο απόφασης: Οι κανόνες τους οποίους θα υλοποιήσουμε βάσει του παραπάνω δέντρου είναι οι ακόλουθοι: 1. Όταν το gammagt είναι μικρότερο ή ίσο του 20 και το sgpt είναι μικρότερο ή ίσο του 19, τότε το ήπαρ λειτουργεί καλά. 112

113 2. Όταν το gammagt είναι μικρότερο ή ίσο του 20 και το sgpt είναι μεγαλύτερο του 19, τότε το ήπαρ δυσλειτουργεί. 3. Όταν το gammagt είναι μεγαλύτερο του 20 και η ημερήσια κατανάλωση αλκοόλ είναι μικρότερη ή ίση από 5 ποτά, τότε το ήπαρ λειτουργεί καλά. 4. Όταν το gammagt είναι μεγαλύτερο του 20, η ημερήσια κατανάλωση αλκοόλ είναι μεγαλύτερη από 5 ποτά και μικρότερη ή ίση από 7 ποτά, το sgpt είναι μικρότερο ή ίσο του 36 και το sgot είναι μικρότερο ή ίσο του 24, τότε το ήπαρ λειτουργεί καλά. 5. Όταν το gammagt είναι μεγαλύτερο του 20, η ημερήσια κατανάλωση αλκοόλ είναι μεγαλύτερη από 7 ποτά, το sgpt είναι μικρότερο ή ίσο του 36 και το sgot είναι μικρότερο ή ίσο του 24, τότε το ήπαρ δυσλειτουργεί. 6. Όταν το gammagt είναι μεγαλύτερο του 20, η ημερήσια κατανάλωση αλκοόλ είναι μεγαλύτερη από 5 ποτά, το sgpt είναι μικρότερο ή ίσο του 36 και το sgot είναι μεγαλύτερο του 24, τότε το ήπαρ λειτουργεί καλά. 7. Όταν το gammagt είναι μεγαλύτερο του 20, η ημερήσια κατανάλωση αλκοόλ είναι μεγαλύτερη από 5 ποτά, το sgpt είναι μεγαλύτερο του 36 και το sgot είναι μικρότερο ή ίσο του 45, τότε το ήπαρ δυσλειτουργεί. 8. Όταν το gammagt είναι μεγαλύτερο του 20, η ημερήσια κατανάλωση αλκοόλ είναι μεγαλύτερη από 5 ποτά, το sgpt είναι μεγαλύτερο του 36 και το sgot είναι μεγαλύτερο του 45, τότε το ήπαρ λειτουργεί καλά. Με τη χρήση του WEKA εν συνεχεία χωρίζουμε το σύνολο δεδομένων σε σύνολο εκπαίδευσης (66% του συνόλου δεδομένων) και σύνολο ελέγχου με τη χρήση του φίλτρου «remove percentage» Υλοποίηση σε CLIPS Ο κώδικας σε CLIPS είναι υλοποιημένος με τον ίδιο τρόπο όπως και στα προηγούμενα σύνολα και δίνεται στο Παράρτημα, όπως και όλοι οι άλλοι κώδικες. Τα αποτελέσματα από την εφαρμογή των παραπάνω κανόνων στο σύνολο εκπαίδευσης (225 στιγμιότυπα) είναι: accuracy 0.5 sensitivity specificity precision 0.5 Στο σύνολο ελέγχου (116 στιγμιότυπα) τα αποτελέσματα είναι τα εξής: accuracy sensitivity specificity precision

114 7.5.3.Υλοποίηση σε FuzzyCLIPS Θα κάνουμε ασαφείς τις μεταβλητές sgot με όνομα sgotf και drinks με όνομα drinksf. Παρακάτω φαίνεται ο ορισμός των ασαφών αυτών μεταβλητών με χρήση της εντολής deftemplate και χρήση των συναρτήσεων τύπου Z και S για την περιγραφή των συναρτήσεων συμμετοχής: (deftemplate sgotf 5 82 ((low (z 5 45) ) (high (s 45 82) ) ) ) (deftemplate drinksf ;asafeis metablites 0 20 ((low (z 0 7)) (high (s 7 20) ) ) ) Πλέον στους κανόνες η ασαφής μεταβλητή sgot θα παίρνει τις λεκτικές τιμές low ή high και η ασαφής μεταβλητή drinks θα παίρνει τις λεκτικές τιμές low ή high. Για το σύνολο δεδομένων εκπαίδευσης τα αποτελέσματα είναι: και στο σύνολο ελέγχου είναι: accuracy sensitivity 0.5 specificity 0.6 precision 0.6 accuracy 0.5 sensitivity 0.4 specificity 0.6 precision Εφαρμογή GUI Ant-Miner Φορτώνουμε στην εφαρμογή το αρχείο liver_disorders1.arff, το οποίο έχει υποστεί διακριτοποίηση όλων των μεταβλητών του, εκτός της μεταβλητής class, όπως φαίνεται στην παρακάτω εικόνα: 114

115 Στη συνέχεια κάνουμε την κατηγοριοποίηση θεωρώντας default τις παραμέτρους και παίρνουμε την ακόλουθη έξοδο του συστήματος μετά και το δέκατο cross validation: Cross Validation # Cases in the training set: 311 Cases in the test set: 30 Rules: 8 IF sgpt = '\(-inf-34.2]\' AND sgot = '\( ]\' THEN '2' IF mcv = '\( ]\' AND gammagt = '\(-inf-63.4]\' THEN '1' IF mcv = '\( ]\' THEN '2' IF sgot = '\( ]\' THEN '1' IF sgot = '\( ]\' AND gammagt = '\( ]\' THEN '1' IF alkphos = '\(46-69]\' AND sgpt = '\(-inf-34.2]\' AND gammagt = '\(-inf-63.4]\' THEN '1' 115

116 IF drinks = '\(-inf-4]\' THEN '2' Default rule: 2 Accuracy rate on the training set: % Accuracy rate on the test set: 80.0 % Time taken: s Fold Cross Validation Results Accuracy Rate on Test Set Rules Number Conditions Number ,09% +/- 3,35% 7,4 +/- 0,31 10,3 +/- 0,7 Total elapsed time: 12 s Εφαρμογή ACRES 1_mcv 2_alkphos 3_sgpt 4_sgot 5_gammagt 6_drinks 7_selector Αρχείο μεταβλητών liver-disorders_variable-names.txt 85,92,45,27,31,0.0,1 85,64,59,32,23,0.0,2 86,54,33,16,54,0.0,2 91,78,34,24,36,0.0,2 87,70,12,28,10,0.0,2 98,55,13,17,17,0.0,2 88,62,20,17,9,0.5,1 88,67,21,11,11,0.5,1 92,54,22,20,7,0.5,1 90,60,25,19,5,0.5,1 Παράδειγμα αρχείου συνόλου δεδομένων liver_disorders.data 116

117 Φορτώνω στο εργαλείο ACRES το αρχείο μεταβλητών liver-disorders_variable-names.txt, κατόπιν το αρχείο του συνόλου δεδομένων liver_disorders.data και δίνω το όνομα Liver_Disorders ως Dataset Name. Προεπεξεργασία του συνόλου δεδομένων Διαγραφή των στιγμιότυπων που είναι διπλά αντίγραφα (διαγράφω το αντίγραφο) γραμμές 84 και 86: 94, 58, 21, 18, 26, 2.0, 2 γραμμές 141 και 318: 92, 80, 10, 26, 20, 6.0, 1 γραμμές 143 και 150: 91, 63, 25, 26, 15, 6.0, 1 γραμμές 170 και 176: 97, 71, 29, 22, 52, 8.0, 1 Κάνω διακριτοποίηση των μεταβλητών: 1_mcv 2_alkphos 3_sgpt 4_sgot 5_gammagt 6_drinks και αποθηκεύω τις αλλαγές που έγιναν σε ένα νέο αρχείο liver_disorders1.data το οποίο φορτώνω ξανά για να συνεχίσω με την δημιουργία του έμπειρου συστήματος ,84-138,37-155,24-29,20-31,0-0.5, ,63-71,37-155,29-82,20-31,0-0.5, ,23-55,28-37,5-18,53-297,0-0.5, ,72-83,28-37,21-24,31-52,0-0.5, ,63-71,4-18,24-29,5-14,0-0.5, ,23-55,4-18,5-18,14-20,0-0.5, ,55-63,18-23,5-18,5-14,0-0.5, ,63-71,18-23,5-18,5-14,0-0.5, ,23-55,18-23,18-21,5-14,0-0.5, ,55-63,23-28,18-21,5-14,0-0.5,1 Παράδειγμα αρχείου συνόλου δεδομένων μετά την προεπεξεργασία liver_disorders1.data Ορίζω σαν μεταβλητή εξόδου/πρόβλεψης την μεταβλητή 7_selector και πατάω Continue. Επιλέγω ως υποσύνολο μεταβλητών αυτό που προέκυψε από το δέντρο απόφασης του WEKA, δηλαδή το {3, 4, 5, 6}. Πατώντας το Test βλέπουμε ότι δημιουργούνται 171 κανόνες και καλύπτονται 47 από τα 84 στιγμιότυπα του συνόλου ελέγχου. 117

118 Παραθέτω την αρχιτεκτονική του συστήματος (δέντρο): Από το αρχείο log.txt προκύπτει ότι: class0 Instances: 142 class1 Instances: 199 ratio: 0.25 Class Data Train Test Ratio Total c c τo σύνολο δεδομένων είναι μη ισορροπημένο. Αξιολογώ το έμπειρο σύστημα για καθένα από τα μοντέλα συντελεστών βεβαιότητας (MYCIN CFs και P(H E)): 118

119 c2 c1 Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.52 MYCIN CFs c2 c1 Accuracy Sensitivity (r) Precision (p) Sqrt(p*r) Specificity Pred Accuracy 0.52 P(H E) ΣΧΟΛΙΑ: Η συμμετρία μεταξύ των μετρικών Sensitivity και Specificity για τις δύο κλάσεις είναι λογική αφού για κάθε κλάση που εξετάζουμε, η δεύτερη κλάση που περιέχει όλες τις υπόλοιπες περιέχει ουσιαστικά μόνο μία κλάση. Για τον ίδιο λόγο παρατηρείται και η ταύτιση των μετρικών Accuracy και Pred Accuracy. Από τη σύγκριση για τις δύο μεθόδους εκτίμησης των συντελεστών βεβαιότητας στους κανόνες, βλέπουμε καταρχάς ότι η γενικότερη απόδοση όσον αφορά την πρόβλεψη είναι ακριβώς η ίδια, όχι όμως ικανοποιητική. Συμπέρασμα: Και οι δύο μέθοδοι δίνουν σχεδόν τις ίδιες μετρικές, αλλά όχι σε ικανοποιητικό βαθμό Σύγκριση μεθόδων Σχολιασμός μετρικών Συγκρίνοντας τα ποσοστά επιτυχίας της κάθε μεθόδου παίρνουμε τον παρακάτω πίνακα: CLIPS ACRES GUI ANT-MINER WEKA TRAINING SET TEST SET MYCIN P(H E) TRAINING SET TEST SET Accuracy Sensitivity Specificity Precision FuzzyCLIPS TRAINING SET TEST SET Συγκρίνοντας τις τιμές της Accuracy λοιπόν, παρατηρούμε ότι είναι εξαιρετικά χαμηλές σε όλες τις μεθόδους εκτός από το WEKA, και το GUI Ant-Miner που υπερτερούν λίγο. Εάν τώρα συγκρίνουμε επιμέρους τις υπόλοιπες μετρικές μεταξύ των μεθόδων CLIPS και MYCIN, παρατηρούμε ότι έχουν σχεδόν ίδιες μετρικές με λίγο καλύτερο το ACRES. Επίσης συγκρίνοντας το CLIPS με το FuzzyCLIPS παρατηρούμε ότι ασαφοποιώντας δύο μεταβλητές η ακρίβεια μεγάλωσε λίγο. 119

120 7.6. Το σύνολο δεδομένων Statlog Heart Περιγραφή του προβλήματος που πραγματεύεται το ΕΣ Πρόκειται για ένα σύνολο δεδομένων για την διάγνωση της απουσίας (Κλάση 1) ή της παρουσίας (Κλάση 2) της καρδιακής νόσου. Τα δεδομένα λήφθηκαν από 270 άτομα από τα οποία τα 150 έχουν την καρδιακή νόσο ενώ τα υπόλοιπα 120 άτομα είναι υγιή. Κάθε στιγμιότυπο αποτελείται από 14 χαρακτηριστικά τα οποία είναι: ( Α/Α Μεταβλητή Επεξήγηση 1 age Ηλικία (σε έτη) 2 sex Φύλο (τιμές 0 ή 1) 3 chest-pain-type Είδος πόνου στο στήθος (τιμές 1, 2, 3, 4) 4 resting-blood-pressure Αρτηριακή πίεση 5 serum-cholestoral Ορός χοληστερόλης 6 fasting-blood-sugar τιμές 0, 1 7 resting-electrocardiographicresults τιμές 0, 1, 2 8 maximum-heart-rate-achieved μέγιστος χτύπος καρδιάς που επιτυγχάνεται 9 exercise-induced-angina τιμές 0, 1 10 oldpeak 11 slope-of-the-peak τιμές 1, 2, 3 12 number-of-major-vessels τιμές 0 έως 3 13 thal τιμές 3, 6, 7 14 class απουσία καρδιακής νόσου (τιμή 1) ή παρουσία καρδιακής νόσου (τιμή 2) Εφαρμογή WEKA Εξαγωγή γνώσης από τα δεδομένα Η έξοδος του WEKA, με cross validation 10, reduced error pruning και εφαρμόζοντας τον αλγόριθμο j48 είναι: 120

121 === Run information === Scheme:weka.classifiers.trees.J48 -R -N 3 -Q 1 -M 2 Relation: STATLOG(heart) Instances:270 Attributes:14 age sex chest-pain-type resting-blood-pressure serum-cholestoral fasting-blood-sugar resting-electrocardiographic-results maximum-heart-rate-achieved exercise-induced-angina oldpeak slope-of-the-peak number-of-major-vessels thal class Test mode:10-fold cross-validation === Classifier model (full training set) === J48 pruned tree thal = 3 number-of-major-vessels = 0: 1 (73.0/9.0) number-of-major-vessels = 1: 1 (14.0/6.0) number-of-major-vessels = 2 oldpeak <= 2.3: 1 (5.0) oldpeak > 2.3: 2 (2.0) number-of-major-vessels = 3: 2 (5.0/1.0) thal = 6 number-of-major-vessels = 0: 1 (6.0) number-of-major-vessels = 1: 2 (3.0) number-of-major-vessels = 2: 2 (2.0) number-of-major-vessels = 3: 2 (1.0) thal = 7 number-of-major-vessels = 0 age <= 51: 2 (15.0/2.0) age > 51 sex = 0: 1 (2.0) sex = 1 slope-of-the-peak = 1: 1 (6.0/1.0) slope-of-the-peak = 2: 1 (6.0/3.0) 121

122 slope-of-the-peak = 3: 2 (3.0/1.0) number-of-major-vessels = 1: 2 (19.0/1.0) number-of-major-vessels = 2: 2 (12.0) number-of-major-vessels = 3: 2 (6.0/2.0) Number of Leaves : 17 Size of the tree : 25 Time taken to build model: 0.11seconds === Stratified cross-validation === === Summary === Correctly Classified Instances % Incorrectly Classified Instances % Kappa statistic Mean absolute error Root mean squared error Relative absolute error % Root relative squared error % Total Number of Instances 270 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class Weighted Avg === Confusion Matrix === a b <-- classified as a = b = 2 Κάνοντας Visualize Tree, προκύπτει από το WEKA το ακόλουθο δέντρο απόφασης: 122

123 Οι κανόνες τους οποίους θα υλοποιήσουμε βάσει του παραπάνω δέντρου είναι οι ακόλουθοι: 1. Όταν το thal είναι ίσο με 3 και το number-major-vessels είναι ίσο με 0, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 2. Όταν το thal είναι ίσο με 3 και το number-major-vessels είναι ίσο με 1, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 3. Όταν το thal είναι ίσο με 3, το number-major-vessels είναι ίσο με 2 και το oldpeak είναι μικρότερο ή ίσο του 2.3, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 4. Όταν το thal είναι ίσο με 3, το number-major-vessels είναι ίσο με 2 και το oldpeak είναι μεγαλύτερο του 2.3,, τότε το άτομο πάσχει από καρδιακή νόσο. 5. Όταν το thal είναι ίσο με 3 και το number-major-vessels είναι ίσο με 3, τότε το άτομο πάσχει από καρδιακή νόσο. 6. Όταν το thal είναι ίσο με 6 και το number-major-vessels είναι ίσο με 0, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 7. Όταν το thal είναι ίσο με 6 και το number-major-vessels είναι ίσο με 1, τότε το άτομο πάσχει από καρδιακή νόσο. 8. Όταν το thal είναι ίσο με 6 και το number-major-vessels είναι ίσο με 2, τότε το άτομο πάσχει από καρδιακή νόσο. 9. Όταν το thal είναι ίσο με 6 και το number-major-vessels είναι ίσο με 3, τότε το άτομο πάσχει από καρδιακή νόσο. 10. Όταν το thal είναι ίσο με 7, το number-major-vessels είναι ίσο με 0 και η ηλικία του είναι μικρότερη ή ίση του 51, τότε το άτομο πάσχει από καρδιακή νόσο. 11. Όταν το thal είναι ίσο με 7, το number-major-vessels είναι ίσο με 0, η ηλικία του είναι μεγαλύτερη του 51 και το φύλο είναι ίσο με 0, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 12. Όταν το thal είναι ίσο με 7, το number-major-vessels είναι ίσο με 0, η ηλικία του είναι μεγαλύτερη του 51, το φύλο είναι ίσο με 1 και το slope-of-the-peak είναι ίσο με 1, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 123

124 13. Όταν το thal είναι ίσο με 7, το number-major-vessels είναι ίσο με 0, η ηλικία του είναι μεγαλύτερη του 51, το φύλο είναι ίσο με 1 και το slope-of-the-peak είναι ίσο με 2, τότε το άτομο δεν πάσχει από καρδιακή νόσο. 14. Όταν το thal είναι ίσο με 7, το number-major-vessels είναι ίσο με 0, η ηλικία του είναι μεγαλύτερη του 51, το φύλο είναι ίσο με 1 και το slope-of-the-peak είναι ίσο με 3, τότε το άτομο πάσχει από καρδιακή νόσο. 15. Όταν το thal είναι ίσο με 7 και το number-major-vessels είναι ίσο με 1, τότε το άτομο πάσχει από καρδιακή νόσο. 16. Όταν το thal είναι ίσο με 7 και το number-major-vessels είναι ίσο με 2, τότε το άτομο πάσχει από καρδιακή νόσο. 17. Όταν το thal είναι ίσο με 7 και το number-major-vessels είναι ίσο με 3, τότε το άτομο πάσχει από καρδιακή νόσο. Με τη χρήση του WEKA εν συνεχεία χωρίζουμε το σύνολο δεδομένων σε σύνολο εκπαίδευσης (66% του συνόλου δεδομένων) και σύνολο ελέγχου με τη χρήση του φίλτρου «remove percentage» Υλοποίηση σε CLIPS Ο κώδικας σε CLIPS είναι υλοποιημένος με τον ίδιο τρόπο όπως και στα προηγούμενα σύνολα και δίνεται στο Παράρτημα, όπως και όλοι οι άλλοι κώδικες. Τα αποτελέσματα από την εφαρμογή των παραπάνω κανόνων στο σύνολο εκπαίδευσης (178 στιγμιότυπα) είναι: accuracy 0.68 sensitivity specificity 0.7 precision Στο σύνολο ελέγχου (92 στιγμιότυπα) τα αποτελέσματα είναι τα εξής: accuracy sensitivity specificity 0.6 precision Υλοποίηση σε FuzzyCLIPS Θα κάνουμε ασαφείς τις μεταβλητές age με όνομα agef και oldpeak με όνομα oldpeakf. Παρακάτω φαίνεται ο ορισμός των ασαφών αυτών μεταβλητών με χρήση της εντολής deftemplate και χρήση των συναρτήσεων τύπου Z και S για την περιγραφή των συναρτήσεων συμμετοχής: 124

125 (deftemplate agef ;asafeis metablites years ((young (z 29 35)) (old (s 35 77)) ) ) (deftemplate oldpeakf ((small (z 0 3.6)) (big (s )) ) ) Πλέον στους κανόνες η ασαφής μεταβλητή age θα παίρνει τις λεκτικές τιμές young ή old και η ασαφής μεταβλητή oldpeak θα παίρνει τις λεκτικές τιμές small ή big. Για το σύνολο δεδομένων εκπαίδευσης τα αποτελέσματα είναι: και στο σύνολο ελέγχου είναι: accuracy sensitivity specificity precision 0.8 accuracy 0.59 sensitivity specificity 0.6 precision Εφαρμογή GUI Ant-Miner Φορτώνουμε στην εφαρμογή το αρχείο Statlog(heart)1.arff, το οποίο έχει υποστεί διακριτοποίηση των numerical μεταβλητών, όπως φαίνεται στην παρακάτω εικόνα: 125

126 Στη συνέχεια κάνουμε την κατηγοριοποίηση θεωρώντας default τις παραμέτρους και παίρνουμε την ακόλουθη έξοδο του συστήματος μετά και το δέκατο cross validation: Cross Validation # Cases in the training set: 243 Cases in the test set: 27 Rules: 7 IF number-of-major-vessels = '0' AND thal = '3' THEN '1' IF chest-pain-type = '4' THEN '2' IF slope-of-the-peak = '2' THEN '2' IF resting-electrocardiographic-results = '0' AND maximum-heart-rate-achieved = '\( ]\' AND slope-of-the-peak = '1' THEN '1' IF chest-pain-type = '2' THEN '2' 126

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 5: Χαρακτηριστικά, Δομή και Λειτουργία Συστημάτων Γνώσης

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

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

Rule Based systems Συστήματα Βασισμένα σε κανόνες

Rule Based systems Συστήματα Βασισμένα σε κανόνες Rule Based systems Συστήματα Βασισμένα σε κανόνες Τμήματα ενός έμπειρου συστήματος βασισμένου σε κανόνες Βάση Γνώσης (Κανόνες) Μηχανισμός Εξαγωγής Συμπερασμάτων Χώρος Εργασίας (Γεγονότα) Μηχανισμός Επεξήγησης

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

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

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

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

Οικονόμου Παναγιώτης.

Οικονόμου Παναγιώτης. Οικονόμου Παναγιώτης panawths@gmail.com poikonomou@teilam.gr Οικονόμου Παναγιώτης 1 Παπαγεωργίου. 2 Αθήνα-Ελλάδα χρόνου 460 π.χ.? Ένας νεαρός άνδρας σκεπτόμενος το ενδεχόμενο γάμου, ζητά από τον Σωκράτη

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

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

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

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

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

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

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

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

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

Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ. Ι.

Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ. Ι. Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ Ι. Χατζηλυγερούδης ΩΡΟΛΟΓΙΟ ΠΡΟΓΡΑΜΜΑ Τετάρτη/Τρίτη 5.00-7.00 µ.µ. (ΠΡΟΚΑΤ Τµήµατος

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

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

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

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

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

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

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

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

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

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

Χαρακτηριστικά, οµή και Λειτουργία Συστηµάτων Γνώσης

Χαρακτηριστικά, οµή και Λειτουργία Συστηµάτων Γνώσης Κεφάλαιο 21 Χαρακτηριστικά, οµή και Λειτουργία Συστηµάτων Γνώσης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Συστήµατα Γνώσης Επιδεικνύουν νοήµονα

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 : ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ (*)

ΚΕΦΑΛΑΙΟ 3 : ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ (*) ΚΕΦΑΛΑΙΟ 3 : ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ (*) 3.1 ΕΙΣΑΓΩΓΗ ΙΣΤΟΡΙΚΑ ΣΤΟΙΧΕΙΑ Τα έµπειρα συστήµατα αποτελούν το γνωστότερο πεδίο εφαρµογής της τεχνητής νοηµοσύνης. Είναι προγράµµατα, που συνδυάζουν τη γνώση των ειδικών

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

Πληροφοριακά Συστήματα & Περιβάλλον

Πληροφοριακά Συστήματα & Περιβάλλον ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Πληροφοριακά Συστήματα & Περιβάλλον Ενότητα 9: Έμπειρα Συστήματα Παναγιώτης Λεφάκης Δασολογίας & Φυσικού Περιβάλλοντος Άδειες Χρήσης Το

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

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

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

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

Γ ΚΠΣ ΕΠΕΑΕΚ ΙΙ ΜΕΤΡΟ 2.2, ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΗΣ ια. ΕΡΓΟ: «ΠΕΡΙΒΑΛΛΟΝ - ΑΡΧΙΜΗΔΗΣ-Ενίσχυση ερευνητικών ομάδων του ΤΕΙ ΚΡΗΤΗΣ»

Γ ΚΠΣ ΕΠΕΑΕΚ ΙΙ ΜΕΤΡΟ 2.2, ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΗΣ ια. ΕΡΓΟ: «ΠΕΡΙΒΑΛΛΟΝ - ΑΡΧΙΜΗΔΗΣ-Ενίσχυση ερευνητικών ομάδων του ΤΕΙ ΚΡΗΤΗΣ» Γ ΚΠΣ ΕΠΕΑΕΚ ΙΙ ΜΕΤΡΟ 2.2, ΚΑΤΗΓΟΡΙΑ ΠΡΑΞΗΣ 2.6.1.ια ΕΡΓΟ: «ΠΕΡΙΒΑΛΛΟΝ - ΑΡΧΙΜΗΔΗΣ-Ενίσχυση ερευνητικών ομάδων του ΤΕΙ ΚΡΗΤΗΣ» ΥΠΟΕΡΓΟ 1: «Εφαρμογή του Περιβαλλοντικού Συστήματος Στήριξης Αποφάσεων Expert

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

Έμπειρα Συστήματα. Εργαστήριο

Έμπειρα Συστήματα. Εργαστήριο Έμπειρα Συστήματα Εργαστήριο Χρυσόστομος Στύλιος E-class: Ανακοινώσεις, διαφάνειες, εργασίες, χρήσιμοι σύνδεσμοι, κλπ. 1 Εργασίες Θα δοθεί υποχρεωτική εργασία: Ανάπτυξη ενός έμπειρου συστήματος σε γλώσσα

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

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

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

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

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

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

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

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

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

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

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

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 9: Ανάπτυξη Έμπειρων Συστημάτων Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Ανάπτυξη Έμπειρων Συστημάτων Ορισμός-Χαρακτηριστικά ΕΣ (1) Ορισμός

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

ΕΠΑΛΗΘΕΥΣΗ (VERIFICATION) ΚΑΙ ΕΓΚΥΡΟΠΟΙΗΣΗ (VALIDATION) ΒΚ

ΕΠΑΛΗΘΕΥΣΗ (VERIFICATION) ΚΑΙ ΕΓΚΥΡΟΠΟΙΗΣΗ (VALIDATION) ΒΚ ΕΠΑΛΗΘΕΥΣΗ (VERIFICATION) ΚΑΙ ΕΓΚΥΡΟΠΟΙΗΣΗ (VALIDATION) ΒΚ Οι V&V αναφέρονται κυρίως τον έλεγχο λαθών (testing) ενός ΕΣΒΚ, δηλ. αν δίνονται σωστές λύσεις στα προβλήματα που διαπραγματεύεται. Αφορούν όμως

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

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

ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ Χρυσόστομος Στύλιος

ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ Χρυσόστομος Στύλιος ΕΜΠΕΙΡΑ ΣΥΣΤΗΜΑΤΑ Χρυσόστομος Στύλιος Email: stylios@teiep.gr Ιστοσελίδα: Ανακοινώσεις, διαφάνειες, εργασίες, χρήσιμοι σύνδεσμοι, κλπ. Ύλη του μαθήματος Εισαγωγή-Έμπειρα συστήματα. Αναπαράσταση γνώσης

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

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

Διπλωματική εργασία Θέμα: «Δημιουργία ευφυούς συστήματος για τη διαχείριση και διαλογή των ασθενών Τμήματος Επειγόντων Περιστατικών Διπλωματική εργασία Θέμα: «Δημιουργία ευφυούς συστήματος για τη διαχείριση και διαλογή των ασθενών Τμήματος Επειγόντων Περιστατικών Μεταπτυχιακός φοιτητής: Γεώργιος Κηπουργός Νοσηλευτής Τ.Ε Επιβλέπων καθηγητής:

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

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

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

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 2 ο : Βασικές έννοιες. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 2 ο : Βασικές έννοιες. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Μάθημα 2 ο : Βασικές έννοιες Γεώργιος Πετάσης Ακαδημαϊκό Έτος: 2012 2013 ΤMHMA MHXANIKΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ, Πανεπιστήμιο Πατρών, 2012 2013 Γλωσσική Τεχνολογία, Μάθημα 2 ο, Βασικές

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

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

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

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

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

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

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 5 2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

Συλλογιστική εξαγωγής συμπερασμάτων από συγκεκριμένες υποθέσεις δοθείσα μεθοδολογία διαδικασία της σκέψης, πρέπει να «συλλογιστεί» υπόθεση/παραγωγή

Συλλογιστική εξαγωγής συμπερασμάτων από συγκεκριμένες υποθέσεις δοθείσα μεθοδολογία διαδικασία της σκέψης, πρέπει να «συλλογιστεί» υπόθεση/παραγωγή REASON ING Η Συλλογιστική, είναι η πράξη εξαγωγής συμπερασμάτων από συγκεκριμένες υποθέσεις χρησιμοποιώντας μία δοθείσα μεθοδολογία. Στην ουσία είναι η ίδια η διαδικασία της σκέψης, μία λογική διαμάχη,

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

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

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

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

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. Κατηγοριοποίηση. Αριστείδης Γ. Βραχάτης, Dipl-Ing, M.Sc, PhD

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. Κατηγοριοποίηση. Αριστείδης Γ. Βραχάτης, Dipl-Ing, M.Sc, PhD Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Σχολή Θετικών Επιστημών Πανεπιστήμιο Θεσσαλίας ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ Κατηγοριοποίηση Αριστείδης Γ. Βραχάτης, Dipl-Ing, M.Sc, PhD Κατηγοριοποιητής K πλησιέστερων

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

οµηµένες Αναπαραστάσεις Γνώσης

οµηµένες Αναπαραστάσεις Γνώσης οµηµένες Αναπαραστάσεις Γνώσης! Η κλασική λογική δε µπορεί να αναπαραστήσει κλάσεις αντικειµένων.! Είναι επιθυµητή η µείωση του όγκου της γνώσης για ένα πρόβληµα.! Η πράξη απαιτεί µία περισσότερο διαισθητική

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

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

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

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

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

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

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

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

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

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business. e-mail: kyritsis@ist.edu.

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business. e-mail: kyritsis@ist.edu. Managing Information Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business e-mail: kyritsis@ist.edu.gr Διαχείριση Γνώσης Knowledge Management Learning Objectives Ποιοί

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

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα «Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα Σεμινάριο 8: Χρήση Μηχανικής Μάθησης στην Εξαγωγή Πληροφορίας Ευάγγελος Καρκαλέτσης, Γεώργιος Πετάσης Εργαστήριο Τεχνολογίας Γνώσεων & Λογισμικού, Ινστιτούτο

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

Εννοιολογική χαρτογράφηση: Διδακτική αξιοποίηση- Αποτελέσματα για το μαθητή

Εννοιολογική χαρτογράφηση: Διδακτική αξιοποίηση- Αποτελέσματα για το μαθητή Το λογισμικό της εννοιολογικής χαρτογράυησης Inspiration Η τεχνική της εννοιολογικής χαρτογράφησης αναπτύχθηκε από τον καθηγητή Joseph D. Novak, στο πανεπιστήμιο του Cornell. Βασίστηκε στις θεωρίες του

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού Α. Βρακόπουλος 1, Θ.Καρτσιώτης 2 1 Καθηγητής Πληροφορικής Δευτεροβάθμιας Εκπαίδευσης Vraa8@sch.gr 2 Σχολικός

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

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

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

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

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

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

Διδάσκουσα: Χάλκου Χαρά,

Διδάσκουσα: Χάλκου Χαρά, Διδάσκουσα: Χάλκου Χαρά, Διπλωματούχος Ηλεκτρολόγος Μηχανικός & Τεχνολογίας Η/Υ, MSc e-mail: chalkou@upatras.gr Επιβλεπόμενοι Μη Επιβλεπόμενοι Ομάδα Κατηγορία Κανονικοποίηση Δεδομένων Συμπλήρωση Ελλιπών

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

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

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

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

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

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Τρεις αλγόριθμοι μηχανικής μάθησης ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου @ 2018 Μηχανική μάθηση αναγνώριση προτύπων Η αναγνώριση προτύπων

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο

Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο Δίκαρος Νίκος Δ/νση Μηχανογράνωσης κ Η.Ε.Σ. Υπουργείο Εσωτερικών. Τελική εργασία Κ Εκπαιδευτικής Σειράς Ε.Σ.Δ.Δ. Επιβλέπων: Ηρακλής Βαρλάμης Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο Κεντρική ιδέα Προβληματισμοί

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

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

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

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

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

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Τεχνικές NLP Σχεδιαστικά Θέματα

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

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

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

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

LOGO. Εξόρυξη Δεδομένων. Δειγματοληψία. Πίνακες συνάφειας. Καμπύλες ROC και AUC. Σύγκριση Μεθόδων Εξόρυξης

LOGO. Εξόρυξη Δεδομένων. Δειγματοληψία. Πίνακες συνάφειας. Καμπύλες ROC και AUC. Σύγκριση Μεθόδων Εξόρυξης Εξόρυξη Δεδομένων Δειγματοληψία Πίνακες συνάφειας Καμπύλες ROC και AUC Σύγκριση Μεθόδων Εξόρυξης Πασχάλης Θρήσκος PhD Λάρισα 2016-2017 pthriskos@mnec.gr LOGO Συμπερισματολογία - Τι σημαίνει ; Πληθυσμός

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων Πληροφοριακά Συστήματα Διοίκησης Διοικητική Επιστήμη και Λήψη Αποφάσεων Η πολυπλοκότητα των αποφάσεων Αυξανόμενη πολυπλοκότητα λόγω: Ταχύτητας αλλαγών στο εξωτερικό περιβάλλον της επιχείρησης. Έντασης

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

ΑΠΟΣΤΑΣΕΙΣ ΓΙΑ ΤΗΝ ΤΑΞΙΝΟΜΗΣΗ ΣΕ ΠΟΙΟΤΙΚΕΣ ΜΕΤΑΒΛΗΤΈΣ (ΤΑΞΙΝΟΜΗΣΗ ΣΕ ΛΟΓΙΚΑ ΔΕΔΟΜΕΝΑ)

ΑΠΟΣΤΑΣΕΙΣ ΓΙΑ ΤΗΝ ΤΑΞΙΝΟΜΗΣΗ ΣΕ ΠΟΙΟΤΙΚΕΣ ΜΕΤΑΒΛΗΤΈΣ (ΤΑΞΙΝΟΜΗΣΗ ΣΕ ΛΟΓΙΚΑ ΔΕΔΟΜΕΝΑ) «ΣΠ0ΥΔΑI», Τόμος 47, Τεύχος 3o-4o, Πανεπιστήμιο Πειραιώς / «SPOUDAI», Vol. 47, No 3-4, University of Piraeus ΑΠΟΣΤΑΣΕΙΣ ΓΙΑ ΤΗΝ ΤΑΞΙΝΟΜΗΣΗ ΣΕ ΠΟΙΟΤΙΚΕΣ ΜΕΤΑΒΛΗΤΈΣ (ΤΑΞΙΝΟΜΗΣΗ ΣΕ ΛΟΓΙΚΑ ΔΕΔΟΜΕΝΑ) Υπό Γιάννης

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

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

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

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

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

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

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

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

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

Διδακτικές Τεχνικές (Στρατηγικές)

Διδακτικές Τεχνικές (Στρατηγικές) Διδακτικές Τεχνικές (Στρατηγικές) Ενδεικτικές τεχνικές διδασκαλίας: 1. Εισήγηση ή διάλεξη ή Μονολογική Παρουσίαση 2. Συζήτηση ή διάλογος 3. Ερωταποκρίσεις 4. Χιονοστιβάδα 5. Καταιγισμός Ιδεών 6. Επίδειξη

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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