Ακολουθεί η παράθεση και βαθμολόγηση των όσων εργασιών έχουν κατατεθεί στο θέμα 03 (με χρονική σειρά):
Σαν γενική παρατήρηση, οφείλω να αναφέρω πως, πέρα από την ως ένα βαθμό αναμενόμενη επικάλυψη μεταξύ των περιεχομένων των εργασιών (η οποία ωστόσο ίσως υπήρξε τελικά εκτενέστερη του αναμενομένου), οι περισσότερες υποβολές υπήρξαν περιορισμένες ως προς τις προτάσεις τους και, κυρίως, δεν συνοδεύτηκαν από την υλοποίηση των περισσότερων από αυτές.
Επίσης, δεν έγινε αναφορά και χρήση των μεθοδολογιών περί attribute selection που αναφέρθηκαν στη διάλεξη (έστω και στο πνέυμα του ημιτελούς trial & error όπως το γνωρίζουμε ως σήμερα). Εξαίρεση αποτελεί η εργασία της Ηρώς, η οποία για το λόγο αυτό έλαβε πρόσθετο βαθμό. Εν τέλει ωστόσο, η διάλεξη, όπως και η εκφώνηση της εργασίας επίσης, υπήρξε αρκετά ευέλικτη έως ασαφής. Για το λόγο αυτό, ωθούμαι να κάνω χρήση της προκατάληψής μου για θετική βαθμολόγηση, αποτέλεσμα της οποίας είναι οι παραπάνω βαθμολογίες (κάτι τέτοιο οφείλει και δεν πρόκειται να επαναληφθέι στο μέλλον ωστόσο).
Υστερόγραφο: Που είναι η εργασία του ΓΔ 047? :P
Categories: εργασίες
ΕΡΓΑΣΙΑ 03
Πρώτα βήματα επεξεργασίας για το dataset στο train.arff.
Για την προεπεξεργασία ενός μεγάλου όγκου δεδομένων είναι βοηθητική η εξαίρεση μέρος αυτού μέσω του αποκλεισμού χαρακτηριστικών που δεν επηρεάζουν αισθητά το σύστημά μας. Το πρώτο βήμα που επιχειρείται είναι η οπτική διερεύνηση με τη βοήθεια του tab visualize.
Ορισμένα χαρακτηριστικά έχουν missing values, το οποίο μπορεί να αντιμετωπιστεί με το φίλτρο ReplaceMissingValues στα attributes.
Ένα άλλο βασικό πρόβλημα προς διευθέτηση είναι η απομάκρυνση outliers με το φίλτρο RemoveMisclassified
Το πρώτο που παρατηρεί κανείς (στο Visualize) είναι η σταθερή τιμή του χαρακτηριστικού att38. Αμέσως γίνεται αντιληπτό ότι δεν είναι χρήσιμο χαρακτηριστικό τοatt38 για εξαγωγή πληροφορίας. Με την εντολή RemoveUseless μπορούν να απομακρυνθούν χαρακτηριστικά όχι μόνο αυτά που έχουν σταθερή τιμή αλλά και όσα έχουν τιμές που έχουν έντονες μεταβολές. Με αυτή την εντολή ουσιαστικά αρκετά από τα χαρακτηριστικά στο πεδίο από 30 ως 39 αφαιρούνται από το σύστημά μας.
Αποτίμηση Μοναδιαίων Χαρακτηριστικών. Μια επίσης χρήσιμη πρακτική παράλληλα με την χρησιμοποίηση φίλτρων είναι η αξιολόγηση κάθε χαρακτηριστικού. Μια χρήσιμή προς τον σκοπό αυτό μέθοδος είναι η Ανάλυση Κύριων Συνιστωσών, με την οποία επιλέγονται οι πιο σημαντικές συνιστώσες από το σύνολο των χαρακτηριστικών, ενώ τα υπόλοιπα αφαιρούνται. Σε ένα πρόχειρο ‘τρέξιμο’ αυτού του αλγορίθμου ως κύριες συνιστώσες επιλέγονται οι 30 πρώτες μεταβλητές ενώ οι υπόλοιπες αφαιρούνται.
Categories: εργασίες
Tagged: Ergasia03
Παρακάτω προτείνονται ορισμένα ενδεικτικά πρώτα βήματα για την ανάλυση του dataset “training” του θέματος:
· Καταρχάς μπορούμε αμέσως να διαπιστώσουμε πως το attribute #38 είναι περιττό καθώς για όλα τα instances έχει την ίδια τιμή(0).

· To attribute 34 δεν μας παρέχει πληροφορία καθώς για τα 2527 instances η τιμή του είναι 0 και μόνο για ένα instance έχει τιμή 1 (instance 821). Μπορούμε λοιπόν να μην το λάβουμε υπόψη μας. Παρακάτω βλέπουμε το ιστόγραμμα μετά την αφαίρεση του instance #821( με την επιλογή του unsupervised ->instance filter “RemoveRange”).

· Τα attributes του dataset είναι όλα numeric. Παρατηρούμε όμως πως για τα περισσότερα από αυτά ενώ υπάρχει μεγάλο εύρος τιμών, τα περισσότερα instances αποδίδουν τιμές γύρω από τη μικρότερη. Έτσι λοιπόν μπορούμε να μετατρέψουμε ορισμένα από τα attribute αυτά σε nominal, ομαδοποιώντας δηλαδή τα instances με βάση τα διαστήματα στα οποία θα ανήκουν και έτσι να έχουμε μια πιο σαφή εικόνα.Αυτό επίσης μπορεί να είναι απαραίτητο γιατί ορισμένοι αλγόριθμοι δέχονται input μόνο διακριτά δεδομένα.
Για παράδειγμα για το attribute #25 έχουμε το παρακάτω αρχικό ιστόγραμμα:

Ενώ ενημερωνόμαστε από το weka πως υπάρχουν 49 διαφορετικές τιμές εκ των οποίων οι 42 είναι unique, αυτό δεν είναι εμφανές.
Διαλέγοντας όμως το από τα unsupervised attribute filters το «Discretize» μπορούμε είτε να επιλέξουμε εμείς το πλήθος των διαστημάτων ή να επιτρέψουμε στο ίδιο το weka να επιλέξει των αριθμό των bins.

(εδώ έχουμε επιλέξει εμείς 25 bins)

(Εδώ αλλάξαμε το findNumBins σε True και τo weka δημιούργησε 4 διαφορετικές τιμές με τη μία unique.)
· Ακόμη μπορούμε να δούμε πιο υποσύνολο από τα δοσμένα attributes μας είναι χρήσιμο (αναζητάμε το ελάχιστο δυνατό που να δίνει τα σωστά αποτελέσματα), χρησιμοποιώντας το tab Select Attributes.
Για παράδειγμα ο συνδυασμός AttributeEvaluator->CfsSubsetEval και SearchMethod->GreedyStepwise μας δίνει ένα προτεινόμενο σύνολο από 10 attributes.
Ενώ ο συνδυασμός AttributeEvaluator->CfsSubsetEval(LocallyPredictive=False) και SearchMethod-> GeneticSearch μας δίνει ένα προτεινόμενο σύνολο από 7 attributes.

Categories: εργασίες
Σκοπός του data mining είναι να διαχειρίζεται πληθώρα πληροφοριών από μεγάλα data sets. Σε αυτήν την εργασία επεξαργαζόμαστε το train.arff. Παρατηρούμε ότι έχουμε 39 attributes, οπότε στα πρώτα βήματα μας ακολουθούμε κάποιες διαδικασίες για να ελλατωθούν και να διευκολύνουμε την εξόρυξη πληροφορίας από το δάτα σετ αυτό.
Κατ’ αρχήν ένα πολύ σημαντικό βήμα είναι η οπτική διερέυνηση των δεδομένων μας. Ανοίγοντας, λοιπόν, το train.arff με το weka, μπορούμε να δούμε όλα τα ιστογράμματα των attributes. Είναι εμφανές πως τα attributes 34 και 38 δεν προσφέρουν κάποια πληροφορία, οπότε μπορούμε να τα διαγράψουμε, επιλέγοντάς τα και πατώντας remove.
Παρατηρόυμε επίσης ότι σε κάποια χαρακτηριστικά υπάρχουν πολλά missing values. Για να λάβουμε πιο αξιόπιστες πληροφορίες από αυτά, μπορούμε να αντικατάστησουμε όπου χρειάζεται την ελλειπούσα τιμή με τη μέση τιμή του χαρακτηριστικού, χρησιμοποιώντας την εντολή replace missing values.
Πολλά χαρακτηριστικά περιέχουν μεγάλο ποσοστό outliers. Καλό θα ήταν να απαλλαχθούμε από αυτά με τη βοήθεια της εντολής Νumeric Cleaner.
Ίσως χρειαστεί προς διευκόλυνσή μας να διακριτοποιήσουμε κάποια attributes, με την εντολή discretize.
Επειδή σε αρκετά χαρακτηριστικά εμφανίζεται μεγάλη συγκέντρωση των μετρήσεων σε κάποιο διάστημα, ίσως χρειαστεί να μετατρέψουμε το διάστημα ομαδοποίησης των μετρήσεων.
Γενικότερα μπορούμε να πειραματιστούμε με διάφορες εντολές του weka και να χρησιμοποιήσουμε εκείνες που λειτουργούν προς διευκόλυνσή μας.
Categories: εργασίες
Η προεπεξεργασία και η επιλογή δεδομένων είναι πολύ χρήσιμη όταν έχουμε μια μεγάλη βάση δεδομένων, από την οποία θέλουμε να αντλήσουμε πληροφορίες για την επίλυση ενός προβλήματος. Για το σκοπό αυτό υπάρχουν πολλοί τρόποι που μας βοηθούν να μειώσουμε τον αριθμό των attributes ώστε η επεξεργασία των δεδομένων μας να είναι πιο εύκολη. Ορισμένοι από αυτούς τους τρόπους είναι οι ακόλουθοι:
-
Με τη βοήθεια της εντολής visualize all θα μας εμφανιστούν τα ιστογράμματα όλων των μεταβλητών και μπορούμε οπτικά να αποκλείσουμε κάποιες μεταβλητές. Για παράδειγμα, στο training set βλέπουμε ότι το attribute 38 μπορεί να εξαιρεθεί.
-
Πριν ξεκινήσουμε την ανάλυση είναι χρήσιμο να ελέγχουμε αν υπάρχουν missing values στο dataset μας. Το weka μας παρέχει την δυνατότητα να αντικαταστήσουμε τις ελλειπούσες τιμές με την εντολή replace missing values. Στο training set που έχουμε για ανάλυση δεν υπάρχουν missing values.
-
Στη συνέχεια μπορούμε να δούμε τις συχνότητες όλων των attributes και να αφαιρέσουμε αυτά που η συχνότητα τους είναι χαμηλή.
-
Επίσης σε ορισμένες περιπτώσεις είναι χρήσιμο να μετατρέψουμε ορισμένες μεταβλητές από numeric σε nominal ώστε να είναι εφικτή η ανάλυση των δεδομένων.
- Το weka διαθέτει πολλά φίλτρα που επιλέγουν αυτόματα τις μεταβλητές, αλλά επειδή υπάρχει ο κίνδυνος να εξαιρεθεί κάποια μεταβλητή που να είναι χρήσιμη θα πρέπει να εφαρμοσθούν πολλά φίλτρα για να καταλήξουμε σε μια απόφαση.
Categories: εργασίες
Η προεπεξεργασία δεδομένων είναι ένα πολύ σημαντικό κομμάτι στο data mining! Ο μετασχηματισμός των δεδομένων έχει σαν στόχο την βελτίωση στο σύνολο τους έτσι ώστε τα συμπεράσματα που θα διεξαχθουν κατά την στατιστική ανάλυση να είναι όσο το δυνατόν πιο αξιόπιστα. Κάποια πρώτα βήματα που κάποιος θα μπορούσε να ακολουθήσει εφαρμόζοντάς τα στο training set είναι τα εξής:
- Ανοίγοντας το dataset στο weka με την εντολή visualize all παρατηρούμε ότι υπάρχουν 39 attributes των 2528 instances.
- Έπειτα, μπορεί να γίνει έλεγχος για το αν υπάρχουν ελλείπουσες τιμές χρησιμοποιώτας το filter-> ReplaceMissingValues όπου γίνεται αντικατάσταση αυτών των τιμών π.χ. με την μέση τιμή κάθε χαρακτηριστικού. Στο συγκεκριμένο dataset παρατηρούμε ότι δεν υπάρχουν.
- Θα πρέπει γραφικά να ελέξουμε αν υπάρχουν outliers και να τα απομακρύνουμε γιατί επηρεάζουν την ανάλυση που θέλουμε να κάνουμε ή κάποια attributes που ίσως εμφανίζουν την ίδια συμπεριφορά με την εντολή Remove. Αυτό θα γίνει εφόσον εφαρμόσουμε καποιες μεθόδους παλινδρόμισης ώστε να δούμε τα σχετικά σφάλματα.
- Επίσης μπορούμε να κανονικοποιήσουμε τα δεδομένα του κάθε χαρακτηριστικού με την εντολή Normalize.
- Ίσως χρειαστεί να κατασκευάσουμε ένα καινούριο χαρακτηριστικό (ένας μαθηματικός τύπος) με βάση κάποια άλλα χαρακτηριστικά του dataset χρησιμοποιώντας την εντολή AddExpression.
Σαφέστατα υπάρχουν σίγουρα και άλλα βήματα που θα μπορούσε κάποιος να ακολουθήσει!!!
Categories: εργασίες
Πριν αρχίσουμε την εφαρμογή των αλγορίθμων στην υπό μελέτη βάση δεδομένων, είναι πολύ χρήσιμο να εκτελέσουμε μια προεπισκόπηση στα δεδομένα μας. Σκοπός αυτής της διαδικασίας είναι ο μετασχηματισμός των δεδομένων σε μορφή κατάλληλη και αποδοτική για τη μέθοδο που πρόκειται να εφαρμόσουμε και η αύξηση του βαθμού αξιοπιστίας. Εφαρμόζοντας αυτή τη διαδικασία στο training set μπορούμε να παρατηρήσουμε τα εξής:
v Χρησιμοποιώντας την εντολή visualize all του WEKA προκύπτουν τα ιστογράμματα συχνοτήτων που αντιστοιχούν σε κάθε μεταβλητή. Από τα ιστογράμματα αυτά μπορούμε να δούμε αν κάποιο attribute μπορεί να αφαιρεθεί και αν υπάρχουν outliers σε κάποια attributes. Παρατηρούμε ότι από τις 39 attributes των 2528 instances του training set μία είναι περιττό να συμπεριληφθεί καθώς σε αυτή το κάθε instance είναι ίσο με μηδέν. Πρόκειται για την attribute 38 την οποία μπορούμε να αφαιρέσουμε (remove) από το training set.
v Παρόμοια συμπεριφορά παρουσιάζουν και οι attributes 36 και 34 καθώς έχουν μόλις 15 και 1 αντίστοιχα διαφορετικά του μηδενός.
v Για την εκμάθηση του μοντέλου θα εφαρμοστούν κανόνες ταξινόμησης(classification rules), κανόνες συσχέτισης(association rules) και κανόνες ομαδοποίησης. Για το σκοπό αυτό ίσως χρειαστεί να γίνει μετατροπή στην κλάση κάποιων attributes από numeric σε nominal (discretize) μέσω ενός filter ή κανονικοποίηση (normalize) πάλι μέσω κάποιου filter.
v Στην περίπτωση που υπάρχουν missing values, μπορούμε να χρησιμοποιήσουμε το filter «ReplaceMissingValues» και να αντικαταστήσουμε αυτές τις τιμές , για παράδειγμα με τη μέση τιμή κάθε χαρακτηριστικού.
v Τέλος, στην περίπτωση που επιλεγεί η χρήση supervised filter ίσως μπορεί να γίνει χρήση του attribute selection για να δούμε με ποιο υποσύνολο των attributes θα συνεχίσουμε την ανάλυσή μας.
Categories: εργασίες