Το πρόβλημα: Πρόβλεψη επιτυχίας σε εξετάσεις Πρόβλεψη επιτυχίας ενός μαθητή ΕΠΑΛ σε ΤΕΙ με βάση την επίδοσή του στα μαθήματα. Δύο στάδια πρόβλεψης: Πρώιμη πρόβλεψη (βασισμένη σε Φύλο, Βαθμό Α τάξης, Βαθμό Β τάξης) Τελική πρόβλεψη (βασισμένη σε Φύλο, Μέσο Όρο Βαθμολογίας 1 ου τετραμήνου Γ τάξης στα τρία Πανελλαδικά εξεταζόμενα μαθήματα, Πρώιμη πρόβλεψη) Πανεπιστήμιο Πατρών 1
Προσδιορισμός παραμέτρωνμεταβλητών Εισόδου sex (male, female) marka (A,B,C,D) markb (A,B,C,D) markc (A,B,C,D) A: (18,5-20,0) B: (15,5-18,4) C: (12,5-15,4) D: (10,0-12.4) Ενδιάμεσες initprogn (yes, no) Εξόδου finalprogn (yes, no) Πανεπιστήμιο Πατρών 2
Αποκτηθείσα γνώση (1) Sex MarkA MarkB initprogn F C D no F C C yes F B B yes F C B yes F B A yes M D D no M C C no M C B yes M B B yes M D C no Για την πρώιμη πρόβλεψη Πανεπιστήμιο Πατρών 3
Αποκτηθείσα γνώση (2) Sex MarkC initprogn finalprogn F C yes yes F C no no F D yes no F A no yes F B yes yes M B yes yes M D yes no M B no no M B no yes M C no no Για την τελική πρόβλεψη Πανεπιστήμιο Πατρών 4
Σχεδίαση Βάσης Γνώσης Μεταβλητές Ονοματοδοσία μεταβλητών και τιμών Ορισμός τύπων μεταβλητών (καθολικές, μονότιμες κλπ) Γεγονότα Ορισμός τύπων γεγονότων Συναρτήσεις (διαδικαστική αναπαράσταση) Ορισμός συναρτήσεων για αριθμητικούς υπολογισμούς Ομάδες κανόνων Κανόνες εισόδου δεδομένων Κανόνες πρώτου επιπέδου Κανόνες δεύτερου επιπέδου Κανόνες εξόδου αποτελεσμάτων Πανεπιστήμιο Πατρών 5
Ορισμός παραμέτρων ΜΕΣ Ορισμός προτεραιοτήτων Ορισμός στρατηγικής επίλυσης συγκρούσεων Πανεπιστήμιο Πατρών 6
Ονοματοδοσία μεταβλητώνορισμός τιμών Εισόδου?sex (m/m, f/f)?marka (A,B,C,D)?markB (A,B,C,D)?markC (A,B,C,D) A: (18,5-20,0) B: (15,5-18,4) C: (12,5-15,4) D: (10,0-12,4) Ενδιάμεσες initprogn (yes, no) Εξόδου finalprogn (yes, no) Πανεπιστήμιο Πατρών 7
Ορισμός τύπων γεγονότων Επιλογή 1 Χρήση μη διατεταγμένων γεγονότων (deftemplate init-pred (slot sex) (slot marka) (slot markb)) Επιλογή 2 (deftemplate init-pred (slot sex (type SYMBOL) (allowed-symbols m f)) (slot marka (type SYMBOL) (allowed-symbols A B C D)) (slot markb) (type SYMBOL) (allowed-symbols A B C D))) Χρήση διατεταγμένων γεγονότων (<sex> <marka> <markb>) ή (sex <sex>), (marka <marka>), (markb <markb>) Πανεπιστήμιο Πατρών 8
Ορισμός Συναρτήσεων Συνάρτηση υπολογισμού κατηγορίας βαθμού A: (18,5-20,0) (deffunction comp_category (?mark) B: (15,5-18,4) (if (and (>=?mark 18.5) (<=?mark 20)) C: (12,5-15,4) then (return A) D: (10,0-12.4) else (if (and (>=?mark 15.5) (<?mark 18.5)) F: (< 10,0) then (return B) else (if (and (>=?mark 12.5) (<?mark 15.5)) then (return C) else (if (and (>=?mark 10) (<?mark 12.5)) then (return D) else (return F)))))) Πανεπιστήμιο Πατρών 9
Κανόνες εισόδου δεδομένων (defrule get-sex => (printout t "Δώσε το φύλο του μαθητή (F: κορίτσι, M: αγόρι): ") (bind?sex (read)) (assert (sex?sex))) (defrule get-marka => (printout t "Δώσε το βαθμό Α' τάξης του μαθητή (0-20, ένα δεκαδικό): ") (bind?mark (read)) (bind?mark-cat (comp-category?mark)) (assert (marka?mark-cat))) Πανεπιστήμιο Πατρών 10
Κανόνες πρώτου επιπέδου Sex MarkA MarkB initprogn F C D no F C C yes F B B yes F C B yes F B A yes M D D no M C C no M C B yes M B B yes M D C no Πανεπιστήμιο Πατρών 11
Κανόνες πρώτου επιπέδου Sex MarkA MarkB initprogn F C D no F C C yes M C C no M C B yes M B B yes Πανεπιστήμιο Πατρών 12
Κανόνες πρώτου επιπέδου Sex MarkA MarkB initprogn F C D no M C C no M C B yes M B B yes F C C yes (defrule initprogn-1 (sex F) (or (marka D) (marka C)) (markb D) => (assert (initprogn no)) (defrule initprogn-3 (sex M) (marka C) (or (markb B) (markb A)) => (assert (initprogn yes)) Πανεπιστήμιο Πατρών 13
Κανόνες δευτέρου επιπέδου Sex MarkC initprogn finalprogn F C yes yes F B no no F D yes no F A no yes F B yes yes M B yes yes M C yes no M B no no M C no no Για την τελική πρόβλεψη Πανεπιστήμιο Πατρών 14
Κανόνες δευτέρου επιπέδου Sex MarkC initprogn finalprogn F C yes yes F B no no F D yes no F A no yes M B yes yes M C yes no M B no no Για την τελική πρόβλεψη Πανεπιστήμιο Πατρών 15
Κανόνες δευτέρου επιπέδου Sex MarkC initprogn finalprogn F C yes yes F B no no F D yes no F A no yes M B yes yes M C yes no M B no no (defrule finalprogn-2 (sex F) (or (markc D) (markc C) (markc B)) (initprogn no) => (assert (finalprogn no)) (defrule finalprogn-5 (sex M) (or (markc B) (markc A)) (initprogn yes) => (assert (finalprogn yes)) Πανεπιστήμιο Πατρών 16
Κανόνες εξόδου αποτελεσμάτων (defrule display-result-yes (finalprogn yes) => (printout t Ο μαθητής προβλέπεται ότι θα επιτύχει. crlf)) (defrule display-result-no (finalprogn no) => (printout t Ο μαθητής προβλέπεται ότι θα αποτύχει. crlf)) Πανεπιστήμιο Πατρών 17
Κανόνας αποτυχίας Όταν ένας μαθητής έχει οποιονδήποτε βαθμό μικρότερο του 10.0 (κατηγορία F), τότε δεν μπορεί να πάρει μέρος στις εξετάσεις. Αυτό μπορεί να αποτυπωθεί με τον παρακάτω κανόνα: (defrule fail-rule (or (marka F) (markb F) (markc F)) => (printout t Ο μαθητής δεν μπορεί να πάρει μέρος στις εξετάσεις. crlf) (halt)) Η εντολή (halt) σταματά τη λειτουργία της διαδικασίας, αφού δεν έχει νόημα η συνέχιση. Πανεπιστήμιο Πατρών 18
Προτεραιότητες Οι προτεραιότητες μπορούν να χρησιμοποιηθούν εδώ για να οριστεί η σειρά εισόδου των δεδομένων καθώς και η σειρά εκτέλεσης του κανόνα αποτυχίας. Οπότε ορίζουμε: Προτεραιότητα εισόδου φύλου: 100 Προτεραιότητα εισόδου βαθμού Α: 90 Προτεραιότητα εισόδου βαθμού Β: 80 Προτεραιότητα εισόδου βαθμού Γ: 30 Προτεραιότητα ελέγχου αποτυχίας: 85 (ώστε να εκτελείται πριν από την είσοδο του δεύτερου βαθμού) Προτεραιότητα κανόνων πρώτου επιπέδου: 50 (ώστε η είσοδος του τρίτου βαθμού να γίνεται αφού εκτελεστούν αυτοί-εδώ δεν παίζει ιδιαίτερο ρόλο, αλλά σε περίπτωση που θα είχαμε κάποια έξοδο και από το πρώτο επίπεδο θα έπαιζε.) Πανεπιστήμιο Πατρών 19
Δημιουργία κανόνων από δεδομένα Επειδή συνήθως οι εμπειρογνώμονες δεν είναι διαθέσιμοι για να εκμαιεύσουμε κανόνες, εξάγουμε κανόνες από δεδομένα. Μια τέτοια μέθοδος είναι τα δέντρα απόφασης. Ο γνωστότερος αλγόριθμος εξαγωγής δέντρων απόφασης είναι ο C4.5 (επέκταση του παλαιότερου ID3). Μια υλοποίηση του C4.5 στο γνωστό εργαλείο αλγορίθμων μηχανικής μάθησης WEKA είναι ο αλγόριθμος J48. Οι κανόνες που εξάγονται με αυτό τον τρόπο, μπορεί να είναι σημασιολογικά «ανόητοι», οπότε χρειάζεται να τους «πειράξουμε» πριν τους υλοποιήσουμε. Επίσης, δεν εξασφαλίζουν 100% επιτυχία και μπορούμε να τους βελτιώσουμε «χειροκίνητα» μέσω της υλοποίησής του στο CLIPS. Πανεπιστήμιο Πατρών 20
Δημιουργία κανόνων από δεδομένα Για να παράγουμε δέντρο απόφασης από τον J48 μέσω του WEKA, θα πρέπει να προετοιμάσουμε το σύνολο ή τα σύνολα δεδομένων σε μια συγκεκριμένη μορφή (arff). Στην περίπτωσή μας ετοιμάζουμε δύο τέτοια σύνολα, ένα για την αρχική πρόγνωση και ένα για την τελική. Τα σύνολα αυτά εξάγονται από τους δύο πίνακες που παρουσιάστηκαν προηγουμένως. Η μορφή του αρχείου δεδομένων φαίνεται σε επόμενες διαφάνειες. Ο τρόπος παραγωγής των δέντρων απόφασης περιγράφεται σε ένα έγγραφο pdf που είναι αναρτημένο στο e-class. Πανεπιστήμιο Πατρών 21
Παραγωγή κανόνων από δεδομένα (WEKA)-πρώτο επίπεδο @RELATION initprognosis @ATTRIBUTE sex {M, F} @ATTRIBUTE marka {A, B, C, D} @ATTRIBUTE markb {A, B, C, D} @ATTRIBUTE initprogn {yes, no} @data F,D,D,no F,C,D,no F,C,C,yes F,C,B,yes F,C,A,yes F,B,C,yes F,B,B,yes F,B,A,yes F,A,C,yes F,A,B,yes F,A,A,yes M,C,C,no M,C,D,no M,D,C,no M,D,D,no M,C,B,yes M,C,A,yes M,B,B,yes M,B,A,yes M,A,B,yes M,A,A,yes Πανεπιστήμιο Πατρών 22
Δέντρο WEKA-κανόνες πρώτου επιπέδου (defrule initprogn-1 (markb A) => (assert (initprogn yes)) (defrule initprogn-3 (markb C) (sex M) => (assert (initprogn no)) Πανεπιστήμιο Πατρών 23
Παραγωγή κανόνων από δεδομένα (WEKA)-δεύτερο επίπεδο @RELATION finalprognosis @ATTRIBUTE sex {M, F} @ATTRIBUTE markc {A, B, C, D} @ATTRIBUTE initprogn {yes, no} @ATTRIBUTE finalprogn {yes, no} @data F,C,yes,yes F,B,yes,yes F,A,yes,yes F,D,no,no F,C,no,no F,D,yes,no F,A,no,yes F,B,no,no M,A,yes,yes M,A,no,yes M,B,yes,yes M,B,no,yes M,D,yes,no M,D,no,no M,C,no,no M,B,no,no Πανεπιστήμιο Πατρών 24
Δέντρο WEKA-κανόνες δευτέρου επιπέδου (defrule finalprogn-3 (markc B) (initprogn no) => (assert (finalprogn no)) Πανεπιστήμιο Πατρών 25