Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
Η κατανεµηµένη φύση της τεχνολογίας Εξόρυξης ∆εδοµένων έχει στο παρελθόν
αντιµετωπιστεί επιτυχώς µε τη χρήση και αξιοποίηση της τεχνολογίας των Πρακτόρων Λογισµικού, οι οποίοι καταµερίζουν τις εργασίες, συνεργάζονται και συγχρονίζονται έτσι ώστε να φτάσουν στον τελικό τους στόχο, την εξαγωγή χρήσιµης γνώσης. Μια σειρά από εξελιγµένα εργαλεία Εξόρυξης ∆εδοµένων έχουν ήδη αναπτυχθεί, αποδεικνύοντας ότι η Πολυπρακτορική Τεχνολογία µπορεί πράγµατι να χρησιµοποιηθεί για να επιλύσει τέτοιου είδους προβλήµατα. Αντιστρέφοντας τους ρόλους του σκοπού και του µέσου, όµως, γνώση η οποία εξάγεται µε τη χρήση τεχνικών Εξόρυξης ∆εδοµένων δεν έχει χρησιµοποιηθεί για τη βελτίωση Πολυπρακτορικών Συστηµάτων. Περιορισµοί οι οποίοι σχετίζονται µε τη
διαφορετική φύση της λογικής που υιοθετούν οι δυο εµπλεκόµενες τεχνολογίες
(επαγωγική για την Εξόρυξη ∆εδοµένων και συµπερασµατική για τα Πολυπρακτορικά
Συστήµατα), εµποδίζουν την απρόσκοπτη εφαρµογή της εξαγόµενης γνώσης στο
λογικό µοντέλο των πρακτόρων. Εάν αυτοί οι περιορισµοί υπερκεραστούν, τότε ο
συγκερασµός των δυο τεχνολογιών θα καταστεί εφικτός.
Στα πλαίσια της διατριβής αυτής παρουσιάζεται µια ενοποιηµένη µεθοδολογία, η
οποία επιτρέπει την εφαρµογή δυναµικών, σύνθετων και ανανεώσιµων κανόνων σε
πολυπρακτορικά συστήµατα. Οι κανόνες αυτοί εξάγονται µε τη χρήση τεχνικών
Εξόρυξης ∆εδοµένων, σε πράκτορες και πολυπρακτορικά συστήµατα. Η µεθοδολογία
αυτή αναγνωρίζει τρεις διαφορετικούς τύπους γνώσης, η οποία προέρχεται από την
εφαρµογή τεχνικών Εξόρυξης ∆εδοµένων, και ανάλογα διαφοροποιεί το µοντέλο
διάχυσής της. Οι τρεις αυτοί τύποι γνώσης είναι: α) γνώση η οποία εξάγεται µε τη
χρήση τεχνικών Εξόρυξης ∆εδοµένων στα ιστορικά δεδοµένα µιας εφαρµογής, β)
γνώση η οποία εξάγεται µε τη χρήση τεχνικών Εξόρυξης ∆εδοµένων στα ιστορικά
δεδοµένα των συµπεριφορών των πρακτόρων µιας εφαρµογής και, γ) γνώση η οποία
εξάγεται µε τη χρήση εξελικτικών τεχνικών Εξόρυξης ∆εδοµένων σε πολυπρακτορικές κοινωνίες. Στη διατριβή αυτή µελετάται η δυνατότητα εφαρµογής των τεσσάρωνκυρίαρχων τεχνικών Εξόρυξης ∆εδοµένων σε πολυπρακτορικά συστήµατα:
Οµαδοποίηση για διαχωρισµό, Ταξινόµηση για κατηγοριοποίηση και πρόβλεψη,
εξαγωγή Κανόνων Συσχέτισης για ανακάλυψη συσχετισµών και Γενετικοί αλγόριθµοι
για αυτό-οργάνωση. Για την υλοποίηση και επίδειξη της δυναµικής ενσωµάτωσης
γνώσης σε πράκτορες αναπτύχθηκε ο Data Miner, ένα εργαλείο που περιγράφεται στο Κεφάλαιο 4. Για κάθε έναν από τους τρεις διαφορετικούς τύπους γνώσης αναπτύχθηκε και ένα αντιπροσωπευτικό Πολυπρακτορικό Σύστηµα, του οποίου και γίνεται εκτενής παρουσίαση (Κεφάλαια 5-7). Τέλος, η παρούσα διατριβή πραγµατεύεται και το θέµα της βελτίωσης του γνωσιακού µοντέλου των πρακτόρων, µε την επανάληψη της διαδικασίας χρήσης τεχνικών Εξόρυξης ∆εδοµένων πάνω σε σύγχρονα και ενηµερωµένα δεδοµένα (Επανεκπαίδευση – Κεφάλαιο 8). Τα συµπεράσµατα από την εκπόνηση της διατριβής και πιθανές µελλοντικές επεκτάσεις συνοψίζονται στο Κεφάλαιο 9.
DEEP WEB DYNAMICS: ΕΝΤΟΠΙΣΜΟΣ, ΠΡΟΣΒΑΣΗ ΚΑΙ ΚΑΤΑΓΡΑΦΗ ΕΞΕΛΙΚΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΑΣ...Aggelos Tzani
Όσο και να έχουν βελτιωθεί οι δυνατότητες και οι λειτουργίες των μηχανών αναζήτησης για μαζική και συχνή ευρετηριοποίηση της πληροφορίας στον Παγκόσμιο Ιστό, υπάρχει ένα τεράστιο ποσό δεδομένων που δεν ευερετηριοποιούνται. Αυτό συμβαίνει επειδή η πληροφορία αυτή παρέχεται στους χρήστες δυναμικά (on query demand) μέσα από φόρμες και διεπαφές που απαιτούν αλληλεπίδραση και διάδραση με μεγάλες βάσεις δεδομένων. Ως αποτέλεσμα, οι χρήστες χάνουν σημαντικό ποσοστό της διαθέσιμης πληροφορίας ή οποία μένει κρυφή και ανακτάται μόνο με απευθείας αναζήτηση μέσω των κατάλληλων διεπαφών ερώτησης (query interfaces) των εκάστοτε δικτυακών τόπων. Δεν είναι τυχαίο το γεγονός ότι μεγάλοι εμπορικοί διαδικτυακοί τόποι όπως η Amazon.com, έχουν παραχωρήσει το δικαίωμα ευρετηριοποίησής τους σε μεγάλες μηχανές αναζήτησης.
Αρχικές μελέτες έχουν δείξει ότι ο Αόρατος Ιστός είναι τουλάχιστον 500 φορές μεγαλύτερος από την πληροφορία που ευρετηριοποιείται από όλες τις μηχανές αναζήτησης, ενώ άλλες πιο πρόσφατες αναφέρουν ότι ο λόγος αυτός μεγαλώνει συνεχώς, καθιστώντας έτσι αναγκαία την έρευνα πάνω στην δυναμική εξέλιξη και χαρτογράφηση του deep web. Είναι με άλλα λόγια ένας τεράστιος και ανεξερεύνητος “κόσμος” μέσα στο “σύμπαν” του Παγκόσμιου Ιστού.
Στην παρούσα πτυχιακή, εξετάζεται μια πειραματική στατιστική μέθοδος υπολογισμού του μεγέθους της βάσης δεδομένων μιας ιστοσελίδας του ‘’ Αόρατου Ιστού ‘’, καθώς και ο προσδιορισμός του ρυθμού αύξησης της. Για τον σκοπό αυτό έχει υλοποιηθεί κώδικας ο οποίος συνδέεται στην βάση του PubMed, στέλνει ερωτήματα από μια βάση ερωτημάτων και αποθηκεύει τα επιστρεφόμενα αποτελέσματα για χρήση από την στατιστική μέθοδο. Η στατιστική μέθοδος πάνω στην οποία βασίζεται η πειραματική στατιστική μέθοδος που χρησιμοποιείτε, είναι η μέθοδος της σύλληψης – επανασύλληψης που χρησιμοποιείται κυρίως από τους βιολόγους.
System Development for Prediction of Static Analysis Metrics of Source CodeISSEL
Nowadays, the pace of technological development and the uninterrupted use of online sources have resulted in rapid software development processes. In the numerous projects that are constantly being implemented, what is becoming more and more evident is the smooth development of the source code around a number of criteria that define its quality. This problem is especially magnified when there are dilemmas of reusing snippets of code and doubts arise about the best choice. Therefore, such issues make it necessary to assess the quality of code fragments that are candidates for reuse based on their maintainability. The process of evaluating the quality of the source code of a software project is a time consuming and costly operation, as it involves a high degree of complexity depending on the languages the project has been implemented in and its scope. At the same time, the contribution of many developers to a project always increases the difficulties of correct evaluation. Consequently, such issues require techniques and tools that take into account multiple parameters in order to rigorously and reasonably assess the quality of a project in terms of its maintainability. One of the most prevalent techniques is the analysis of source code using static metrics that rigorously evaluate the characteristics of the software project. This is what this thesis is based on, as it focuses on static source code analysis and methods that will contribute to the evaluation of software quality through them. This is done as long as there is the availability of open source projects in repositories such as GitHub and can be used to build tools aiming at solving the issue. The static analysis of open-source projects through metrics is the basis of the system designed in the current thesis. The system designed and built in this thesis is to create a reliable and functionally useful process that is capable of predicting the future values of static analysis metrics. This tool essentially attempts to detect patterns of behavior of static metrics for past metrics and predict similar behavior in the future using memory. This is implemented using LSTM and GRU networks as their architecture focuses on holding information in memory for long periods of time. Since software production is growing at an increasingly rapid pace, such a tool will be a key element in a smooth and well-guided source code development path.
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...ISSEL
Στις μέρες μας, ο ρυθμός ανάπτυξης της τεχνολογίας και η αδιάλειπτη χρήση του διαδικτύου έχουν ως αποτέλεσμα την εξέλιξη της διαδικασίας ανάπτυξης λογισμικού με ταχύτατους ρυθμούς. Στα πολυάριθμα έργα που υλοποιούνται συνεχώς, αυτό που προβληματίζει όλο και περισσότερο τους ειδικούς στον τομέα, είναι η ομαλή ανάπτυξη του πηγαίου κώδικα γύρω από ένα πλήθος κριτηρίων που ορίζουν την ποιότητά του. Αυτό το πρόβλημα διογκώνεται κυρίως όταν υπάρχουν διλήμματα επαναχρησιμοποίησης τμημάτων κώδικα και προκύπτουν ενδοιασμοί για τη σωστότερη επιλογή. Επομένως, τέτοιου είδους θέματα καθιστούν αναγκαία την αξιολόγηση της ποιότητας τμημάτων κώδικα που είναι υποψήφια για επαναχρησιμοποίηση βάση της συντηρησιμότητάς τους. Η διαδικασία αξιολόγησης της ποιότητας του πηγαίου κώδικα ενός έργου λογισμικού αποτελεί μια χρονοβόρα και κοστοβόρα λειτουργία, καθώς περιέχει υψηλό βαθμό περιπλοκότητας ανάλογα με τις γλώσσες που περιλαμβάνει το έργο αλλά και την έκταση του. Παράλληλα, η συμβολή πολλών και διαφορετικών προγραμματιστών στην ανάπτυξη του έργου, αποτελεί καθοριστικό παράγοντα στην αύξηση των δυσκολιών σωστής αξιολόγησης. Καθώς το έργο αναπτύσσεται, η ανάγκη για έλεγχο συντηρησιμότητας τόσο από την πλευρά του μηχανικού όσο και από την πλευρά του πελάτη γίνεται πρωταρχικός σκοπός. Συνεπώς, τέτοια ζητήματα απαιτούν τεχνικές και εργαλεία που θα λαμβάνουν υπόψιν πλήθος παραμέτρων με στόχο την αυστηρή και λογική αξιολόγηση της ποιότητας ενός έργου ως προς την συντηρησιμότητα του. Μια από τις επικρατέστερες τεχνικές είναι η ανάλυση του πηγαίου κώδικα με χρήση μετρικών που αξιολογούν με αυστηρά κριτήρια τα χαρακτηριστικά του έργου λογισμικού. Πάνω σε αυτό βασίστηκε και η παρούσα διπλωματική, καθώς εστιάζει στη στατική ανάλυση πηγαίου κώδικα και σε μεθόδους που θα συμβάλλουν στην αξιολόγηση της ποιότητας λογισμικού μέσω αυτών. Αυτό γίνεται εφόσον υπάρχει διαθεσιμότητα έργων ανοιχτού κώδικα τα οποία βρίσκονται διαθέσιμα σε αποθετήρια όπως το GitHub και μπορούν να αξιοποιηθούν για τη δημιουργία εργαλείων που στοχεύουν στην επίλυση του ζητήματος. Η στατική ανάλυση έργων ανοιχτού κώδικα μέσω μετρικών αποτελεί την βάση δεδομένων του συστήματος της παρούσας διπλωματικής. Σκοπός του συστήματος που ερευνούμε σε αυτή την διπλωματική είναι η δημιουργία μιας αξιόπιστης και λειτουργικά χρήσιμης διαδικασίας που θα είναι ικανή να προβλέπει τις μελλοντικές τιμές των μετρικών στατικής ανάλυσης. Αυτό το εργαλείο ουσιαστικά προσπαθεί να ανιχνεύσει μοτίβα συμπεριφοράς των στατικών μετρικών για μετρήσεις του παρελθόντος και να προβλέπει όμοιες συμπεριφορές στο μέλλον με χρήση της μνήμης. Η υλοποίηση αυτή γίνεται με δίκτυα LSTM και GRU καθώς η αρχιτεκτονική τους εστιάζει στην συγκράτηση πληροφοριών στη μνήμη για μεγάλα χρονικά διαστήματα. Από την στιγμή που η παραγωγή λογισμικού αυξάνεται με όλο και πιο ραγδαίους ρυθμούς, ένα τέτοιο εργαλείο θα αποτελέσει βασικό στοιχείο στην ομαλή και σωστά καθοδηγούμενη πορεία ανάπτυξης του πηγαίου κώδικα.
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
Η κατανεµηµένη φύση της τεχνολογίας Εξόρυξης ∆εδοµένων έχει στο παρελθόν
αντιµετωπιστεί επιτυχώς µε τη χρήση και αξιοποίηση της τεχνολογίας των Πρακτόρων Λογισµικού, οι οποίοι καταµερίζουν τις εργασίες, συνεργάζονται και συγχρονίζονται έτσι ώστε να φτάσουν στον τελικό τους στόχο, την εξαγωγή χρήσιµης γνώσης. Μια σειρά από εξελιγµένα εργαλεία Εξόρυξης ∆εδοµένων έχουν ήδη αναπτυχθεί, αποδεικνύοντας ότι η Πολυπρακτορική Τεχνολογία µπορεί πράγµατι να χρησιµοποιηθεί για να επιλύσει τέτοιου είδους προβλήµατα. Αντιστρέφοντας τους ρόλους του σκοπού και του µέσου, όµως, γνώση η οποία εξάγεται µε τη χρήση τεχνικών Εξόρυξης ∆εδοµένων δεν έχει χρησιµοποιηθεί για τη βελτίωση Πολυπρακτορικών Συστηµάτων. Περιορισµοί οι οποίοι σχετίζονται µε τη
διαφορετική φύση της λογικής που υιοθετούν οι δυο εµπλεκόµενες τεχνολογίες
(επαγωγική για την Εξόρυξη ∆εδοµένων και συµπερασµατική για τα Πολυπρακτορικά
Συστήµατα), εµποδίζουν την απρόσκοπτη εφαρµογή της εξαγόµενης γνώσης στο
λογικό µοντέλο των πρακτόρων. Εάν αυτοί οι περιορισµοί υπερκεραστούν, τότε ο
συγκερασµός των δυο τεχνολογιών θα καταστεί εφικτός.
Στα πλαίσια της διατριβής αυτής παρουσιάζεται µια ενοποιηµένη µεθοδολογία, η
οποία επιτρέπει την εφαρµογή δυναµικών, σύνθετων και ανανεώσιµων κανόνων σε
πολυπρακτορικά συστήµατα. Οι κανόνες αυτοί εξάγονται µε τη χρήση τεχνικών
Εξόρυξης ∆εδοµένων, σε πράκτορες και πολυπρακτορικά συστήµατα. Η µεθοδολογία
αυτή αναγνωρίζει τρεις διαφορετικούς τύπους γνώσης, η οποία προέρχεται από την
εφαρµογή τεχνικών Εξόρυξης ∆εδοµένων, και ανάλογα διαφοροποιεί το µοντέλο
διάχυσής της. Οι τρεις αυτοί τύποι γνώσης είναι: α) γνώση η οποία εξάγεται µε τη
χρήση τεχνικών Εξόρυξης ∆εδοµένων στα ιστορικά δεδοµένα µιας εφαρµογής, β)
γνώση η οποία εξάγεται µε τη χρήση τεχνικών Εξόρυξης ∆εδοµένων στα ιστορικά
δεδοµένα των συµπεριφορών των πρακτόρων µιας εφαρµογής και, γ) γνώση η οποία
εξάγεται µε τη χρήση εξελικτικών τεχνικών Εξόρυξης ∆εδοµένων σε πολυπρακτορικές κοινωνίες. Στη διατριβή αυτή µελετάται η δυνατότητα εφαρµογής των τεσσάρωνκυρίαρχων τεχνικών Εξόρυξης ∆εδοµένων σε πολυπρακτορικά συστήµατα:
Οµαδοποίηση για διαχωρισµό, Ταξινόµηση για κατηγοριοποίηση και πρόβλεψη,
εξαγωγή Κανόνων Συσχέτισης για ανακάλυψη συσχετισµών και Γενετικοί αλγόριθµοι
για αυτό-οργάνωση. Για την υλοποίηση και επίδειξη της δυναµικής ενσωµάτωσης
γνώσης σε πράκτορες αναπτύχθηκε ο Data Miner, ένα εργαλείο που περιγράφεται στο Κεφάλαιο 4. Για κάθε έναν από τους τρεις διαφορετικούς τύπους γνώσης αναπτύχθηκε και ένα αντιπροσωπευτικό Πολυπρακτορικό Σύστηµα, του οποίου και γίνεται εκτενής παρουσίαση (Κεφάλαια 5-7). Τέλος, η παρούσα διατριβή πραγµατεύεται και το θέµα της βελτίωσης του γνωσιακού µοντέλου των πρακτόρων, µε την επανάληψη της διαδικασίας χρήσης τεχνικών Εξόρυξης ∆εδοµένων πάνω σε σύγχρονα και ενηµερωµένα δεδοµένα (Επανεκπαίδευση – Κεφάλαιο 8). Τα συµπεράσµατα από την εκπόνηση της διατριβής και πιθανές µελλοντικές επεκτάσεις συνοψίζονται στο Κεφάλαιο 9.
DEEP WEB DYNAMICS: ΕΝΤΟΠΙΣΜΟΣ, ΠΡΟΣΒΑΣΗ ΚΑΙ ΚΑΤΑΓΡΑΦΗ ΕΞΕΛΙΚΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΑΣ...Aggelos Tzani
Όσο και να έχουν βελτιωθεί οι δυνατότητες και οι λειτουργίες των μηχανών αναζήτησης για μαζική και συχνή ευρετηριοποίηση της πληροφορίας στον Παγκόσμιο Ιστό, υπάρχει ένα τεράστιο ποσό δεδομένων που δεν ευερετηριοποιούνται. Αυτό συμβαίνει επειδή η πληροφορία αυτή παρέχεται στους χρήστες δυναμικά (on query demand) μέσα από φόρμες και διεπαφές που απαιτούν αλληλεπίδραση και διάδραση με μεγάλες βάσεις δεδομένων. Ως αποτέλεσμα, οι χρήστες χάνουν σημαντικό ποσοστό της διαθέσιμης πληροφορίας ή οποία μένει κρυφή και ανακτάται μόνο με απευθείας αναζήτηση μέσω των κατάλληλων διεπαφών ερώτησης (query interfaces) των εκάστοτε δικτυακών τόπων. Δεν είναι τυχαίο το γεγονός ότι μεγάλοι εμπορικοί διαδικτυακοί τόποι όπως η Amazon.com, έχουν παραχωρήσει το δικαίωμα ευρετηριοποίησής τους σε μεγάλες μηχανές αναζήτησης.
Αρχικές μελέτες έχουν δείξει ότι ο Αόρατος Ιστός είναι τουλάχιστον 500 φορές μεγαλύτερος από την πληροφορία που ευρετηριοποιείται από όλες τις μηχανές αναζήτησης, ενώ άλλες πιο πρόσφατες αναφέρουν ότι ο λόγος αυτός μεγαλώνει συνεχώς, καθιστώντας έτσι αναγκαία την έρευνα πάνω στην δυναμική εξέλιξη και χαρτογράφηση του deep web. Είναι με άλλα λόγια ένας τεράστιος και ανεξερεύνητος “κόσμος” μέσα στο “σύμπαν” του Παγκόσμιου Ιστού.
Στην παρούσα πτυχιακή, εξετάζεται μια πειραματική στατιστική μέθοδος υπολογισμού του μεγέθους της βάσης δεδομένων μιας ιστοσελίδας του ‘’ Αόρατου Ιστού ‘’, καθώς και ο προσδιορισμός του ρυθμού αύξησης της. Για τον σκοπό αυτό έχει υλοποιηθεί κώδικας ο οποίος συνδέεται στην βάση του PubMed, στέλνει ερωτήματα από μια βάση ερωτημάτων και αποθηκεύει τα επιστρεφόμενα αποτελέσματα για χρήση από την στατιστική μέθοδο. Η στατιστική μέθοδος πάνω στην οποία βασίζεται η πειραματική στατιστική μέθοδος που χρησιμοποιείτε, είναι η μέθοδος της σύλληψης – επανασύλληψης που χρησιμοποιείται κυρίως από τους βιολόγους.
System Development for Prediction of Static Analysis Metrics of Source CodeISSEL
Nowadays, the pace of technological development and the uninterrupted use of online sources have resulted in rapid software development processes. In the numerous projects that are constantly being implemented, what is becoming more and more evident is the smooth development of the source code around a number of criteria that define its quality. This problem is especially magnified when there are dilemmas of reusing snippets of code and doubts arise about the best choice. Therefore, such issues make it necessary to assess the quality of code fragments that are candidates for reuse based on their maintainability. The process of evaluating the quality of the source code of a software project is a time consuming and costly operation, as it involves a high degree of complexity depending on the languages the project has been implemented in and its scope. At the same time, the contribution of many developers to a project always increases the difficulties of correct evaluation. Consequently, such issues require techniques and tools that take into account multiple parameters in order to rigorously and reasonably assess the quality of a project in terms of its maintainability. One of the most prevalent techniques is the analysis of source code using static metrics that rigorously evaluate the characteristics of the software project. This is what this thesis is based on, as it focuses on static source code analysis and methods that will contribute to the evaluation of software quality through them. This is done as long as there is the availability of open source projects in repositories such as GitHub and can be used to build tools aiming at solving the issue. The static analysis of open-source projects through metrics is the basis of the system designed in the current thesis. The system designed and built in this thesis is to create a reliable and functionally useful process that is capable of predicting the future values of static analysis metrics. This tool essentially attempts to detect patterns of behavior of static metrics for past metrics and predict similar behavior in the future using memory. This is implemented using LSTM and GRU networks as their architecture focuses on holding information in memory for long periods of time. Since software production is growing at an increasingly rapid pace, such a tool will be a key element in a smooth and well-guided source code development path.
Ανάπτυξη συστήματος πρόβλεψης της εξέλιξης των μετρικών στατικής ανάλυσης πηγ...ISSEL
Στις μέρες μας, ο ρυθμός ανάπτυξης της τεχνολογίας και η αδιάλειπτη χρήση του διαδικτύου έχουν ως αποτέλεσμα την εξέλιξη της διαδικασίας ανάπτυξης λογισμικού με ταχύτατους ρυθμούς. Στα πολυάριθμα έργα που υλοποιούνται συνεχώς, αυτό που προβληματίζει όλο και περισσότερο τους ειδικούς στον τομέα, είναι η ομαλή ανάπτυξη του πηγαίου κώδικα γύρω από ένα πλήθος κριτηρίων που ορίζουν την ποιότητά του. Αυτό το πρόβλημα διογκώνεται κυρίως όταν υπάρχουν διλήμματα επαναχρησιμοποίησης τμημάτων κώδικα και προκύπτουν ενδοιασμοί για τη σωστότερη επιλογή. Επομένως, τέτοιου είδους θέματα καθιστούν αναγκαία την αξιολόγηση της ποιότητας τμημάτων κώδικα που είναι υποψήφια για επαναχρησιμοποίηση βάση της συντηρησιμότητάς τους. Η διαδικασία αξιολόγησης της ποιότητας του πηγαίου κώδικα ενός έργου λογισμικού αποτελεί μια χρονοβόρα και κοστοβόρα λειτουργία, καθώς περιέχει υψηλό βαθμό περιπλοκότητας ανάλογα με τις γλώσσες που περιλαμβάνει το έργο αλλά και την έκταση του. Παράλληλα, η συμβολή πολλών και διαφορετικών προγραμματιστών στην ανάπτυξη του έργου, αποτελεί καθοριστικό παράγοντα στην αύξηση των δυσκολιών σωστής αξιολόγησης. Καθώς το έργο αναπτύσσεται, η ανάγκη για έλεγχο συντηρησιμότητας τόσο από την πλευρά του μηχανικού όσο και από την πλευρά του πελάτη γίνεται πρωταρχικός σκοπός. Συνεπώς, τέτοια ζητήματα απαιτούν τεχνικές και εργαλεία που θα λαμβάνουν υπόψιν πλήθος παραμέτρων με στόχο την αυστηρή και λογική αξιολόγηση της ποιότητας ενός έργου ως προς την συντηρησιμότητα του. Μια από τις επικρατέστερες τεχνικές είναι η ανάλυση του πηγαίου κώδικα με χρήση μετρικών που αξιολογούν με αυστηρά κριτήρια τα χαρακτηριστικά του έργου λογισμικού. Πάνω σε αυτό βασίστηκε και η παρούσα διπλωματική, καθώς εστιάζει στη στατική ανάλυση πηγαίου κώδικα και σε μεθόδους που θα συμβάλλουν στην αξιολόγηση της ποιότητας λογισμικού μέσω αυτών. Αυτό γίνεται εφόσον υπάρχει διαθεσιμότητα έργων ανοιχτού κώδικα τα οποία βρίσκονται διαθέσιμα σε αποθετήρια όπως το GitHub και μπορούν να αξιοποιηθούν για τη δημιουργία εργαλείων που στοχεύουν στην επίλυση του ζητήματος. Η στατική ανάλυση έργων ανοιχτού κώδικα μέσω μετρικών αποτελεί την βάση δεδομένων του συστήματος της παρούσας διπλωματικής. Σκοπός του συστήματος που ερευνούμε σε αυτή την διπλωματική είναι η δημιουργία μιας αξιόπιστης και λειτουργικά χρήσιμης διαδικασίας που θα είναι ικανή να προβλέπει τις μελλοντικές τιμές των μετρικών στατικής ανάλυσης. Αυτό το εργαλείο ουσιαστικά προσπαθεί να ανιχνεύσει μοτίβα συμπεριφοράς των στατικών μετρικών για μετρήσεις του παρελθόντος και να προβλέπει όμοιες συμπεριφορές στο μέλλον με χρήση της μνήμης. Η υλοποίηση αυτή γίνεται με δίκτυα LSTM και GRU καθώς η αρχιτεκτονική τους εστιάζει στην συγκράτηση πληροφοριών στη μνήμη για μεγάλα χρονικά διαστήματα. Από την στιγμή που η παραγωγή λογισμικού αυξάνεται με όλο και πιο ραγδαίους ρυθμούς, ένα τέτοιο εργαλείο θα αποτελέσει βασικό στοιχείο στην ομαλή και σωστά καθοδηγούμενη πορεία ανάπτυξης του πηγαίου κώδικα.
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
Τις τελευταίες δεκαετίες, τα έργα λογισµικού γίνονται όλο και µεγαλύτερα, χρησιµότερα και διεισδύουν σε όλο και περισσότερες πτυχές του ανθρώπινου ϐίου. Κατά την ανάπτυξη και τη συντήρηση λογισµικού, οι προγραµµατιστές σπαταλούν µεγάλο µέρος του χρόνου τους στον εντοπισµό και τη διόρθωση σφαλµάτων. Τα εργαλεία στατικής ανάλυσης κώδικα αυτοµατοποιούν τη διαδικασία εντοπισµού των σφαλµάτων. Η χρήση τους, ωστόσο, παραµένει περιορισµένη, καθώς η κατανόηση και η διόρθωση σφαλµάτων παραµένουν ευθύνες των προγραµµατιστών. Τα τελευταία χρόνια, πραγµατοποιούνται έρευνες για την εξόρυξη προτύπων διόρθωσης τέτοιων σφαλµάτων άλλα και την ανάπτυξη συστηµάτων αυτοµατοποιηµένης διόρθωσης σφαλµάτων. Οι πρώτες στοχεύουν στην κατανόηση του τρόπου που οι προγραµµατιστές αντιµετωπίζουν τέτοια προβλήµατα, και πολλές ϕορές τα αποτελέσµατα τους αποτελούν ϐάση για τις δεύτερες. Η παρούσα διπλωµατική, στοχεύει στην εξόρυξη χρήσιµων προτύπων διόρ ϑωσης σφαλµάτων για σφάλµατα που ανήκουν στους κανόνες του εργαλείου στατικής ανάλυσης PMD. Αρχικά, µέσω κατάλληλων ερωτηµάτων στο API του Github, αναζητο ύνται commits που αφορούν διορθώσεις τέτοιων σφαλµάτων και λαµβάνονται οι εκδόσεις των αρχείων πριν και µετά των αλλαγών των commits. Στη συνέχεια, µέσω εκτέλεσης του PMD στις δύο εκδόσεις, εντοπίζονται οι επιµέρους διορθώσεις και δηµιουργείται κα τάλληλο σύνολο δεδοµένων, αποτελούµενο αποκλειστικά από διορθώσεις σφαλµάτων, κανόνων του PMD. Οι επιµέρους διορθώσεις αναλύονται και µε αξιοποίηση της αναπα ϱάστασης κώδικα srcML και του αλγορίθµου απόστασης επεξεργασίας δέντρου Gumtree, είναι εφικτή η εξαγωγή µιας ακολουθίας όρων που είναι αντιπροσωπευτικοί για κάθε διόρθωση. ΄Ετσι, µε εύρεση του µήκους της µέγιστης κοινής υπακολουθίας µεταξύ δύο διορθώσεων, είναι εφικτή η ανάπτυξη ενός µοντέλου οµοιότητας για τις διορθώσεις συνολικά και κατ΄ επέκταση, η οµαδοποίηση τους και η εξαγωγή προτύπων διόρθω σης. Πραγµατοποιήθηκαν δύο διαφορετικά πειράµατα οµαδοποίησης : στο ένα αξιοποιήθηκε ο αλγόριθµος K-medoids και στο άλλο ο DBSCAN. Και στα δύο πειράµα τα, άλλα ιδιαίτερα σε αυτό µε τον DBSCAN, σχεδόν κάθε εξαγόµενη οµάδα αποτελείται κυρίως από διορθώσεις σφαλµάτων ενός κανόνα του PMD. Παράλληλα, µε τον υπο λογισµό του αριθµού των commits και των αποθετηρίων από τα οποία προέρχονται οι διορθώσεις κάθε οµάδας - προτύπου, ϕανερώνεται ότι οι περισσότερες οµάδες προκύπτουν από διορθώσεις προερχόµενες από µεγάλο αριθµό commits και αποθετηρίων. ΄Ετσι αντανακλούν τον τρόπο που αρκετοί προγραµµατιστές ϑα αντιµετώπιζαν παρόµοια προβλήµατα. Συνεπώς, τα εξαγόµενα πρότυπα ϑα µπορούσαν να αποτελέσουν αφετη ϱία για κάποιον µηχανισµό αυτοµατοποιηµένης διόρθωσης σφαλµάτων, ϐασιζόµενο στο PMD για τον εντοπισµό τους.
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
Contemporary Software products are getting larger and more complex. Dur ing the processes of software development and maintenance, developers spend a significant amount of their work time on detecting and fixing bugs. Static Analysis Tools automate the process of bug detection. Their application, however, is lim ited as the process of understanding and fixing of bugs, remains part of developer’s responsibilities. Lately, several research approaches aspire to extract useful bug fix patterns, or to automate the bug fixing process. The first approaches focus on understanding how developers face similar problems and frequently they serve as groundwork for systems for automated bug fixing. Our research aims at the extraction of useful bug fix patterns, for bugs that trigger the rules of the static analysis tool PMD. Initially, by querying the Github API, we search for commits that correspond to fixes of these categories of bugs. Both the before and after the commit versions of the commits’ files are downloaded. Then, by executing PMD on the two versions of each file, individual fixes are detected and a proper dataset is crafted. The dataset comprises fixes of bugs detectable from rules of PMD. The fixes are analyzed, and by utilizing srcML code representation and tree edit distance algorithm Gumtree, a representative sequence is extracted from each fix. Afterwards, by utilizing the metric of longest common subsequence between two sequences of two fixes, we develop a similarity scheme for the dataset’s fixes. This similarity scheme, operates as the base for the clustering of fixes and pattern extraction. In order to cluster the fixes, two separate experiments were conducted, one with K-medoids and one with the DBSCAN algorithm. In both experiments, but mostly with the DBSCAN algorithm, almost each cluster groups mostly bug fixes of a certain PMD rule. Alongside, by computing the number of commits and repositories from which the fixes of each cluster come from, it becomes obvious, that most of the clusters arise from fixes coming from a large number of commits and repositories. Thus, the extracted patterns correspond to the way in which similar problems are faced, by a number of different developers. Consequently, our extracted patterns, can be utilized as groundwork for an automated bug fixing system, where PMD will serve for bug detection.
Στη σύγχρονη εποχή είναι αδιαμφισβήτητη πραγματικότητα πως τα «έξυπνα» κινητά τηλέφωνα αποτελούν κυρίαρχο στοιχείο της ζωής του ανθρώπου. Με το πάτημα ενός κουμπιού μπορεί κάποιος να ενημερωθεί για τις εξελίξεις παγκοσμίως, να επικοινωνήσει με άτομα από την άλλη άκρη του πλανήτη και να ψυχαγωγηθεί. Ειδικότερα, κύριος πόλος έλξης τους αποτελεί η φορητότητα τους, η οποία κατέστη δυνατή μέσω της αξιοποίησης των μπαταριών. Ωστόσο, αυτές διαθέτουν συγκεκριμένο αριθμό επαναφορτίσεων και συνεπώς, η διάρκεια ζωής μιας συσκευής εξαρτάται άμεσα από τον τύπο χρήσης της και τη στρατηγική επαναφόρτισης της.
Η παρούσα διπλωματική εργασία ασχολείται με την ανάλυση της χρήσης των κινητών τηλεφώνων και την εκτίμηση της κατανάλωσης ενέργειας (energy drain) της μπαταρίας τους. Αρχικά, για τη συλλογή των δεδομένων αναπτύχθηκε η εφαρμογή BatteryApp, η οποία περιοδικά καταγράφει τις λειτουργίες της συσκευής και τις πληροφορίες της μπαταρίας. Στη συνέχεια, ακολουθεί η ομαδοποίηση (clustering) όμοιων τύπων χρήσεων των συσκευών μέσω της ιεραρχικής ομαδοποίησης, η οποία δεν επιβάλει την εξ’ αρχής (apriori) επιλογή συγκεκριμένου αριθμού ομάδων και δεν εισάγει περιορισμούς στη συνάρτηση απόστασης που θα επιλεχθεί. Έπειτα, αυτή αξιολογείται ως προς το περιεχόμενό της, έτσι ώστε να επιλεγούν εκείνες οι ομάδες που περιέχουν την περισσότερη πληροφορία. Τέλος, για την εκτίμηση του energy drain, χρησιμοποιήθηκαν ένα απλό γραμμικό μοντέλο, δύο παραλλαγές της γραμμικής παλινδρόμησης, όπου εισάγεται η έννοια της ποινής (Ridge και Lasso Regression), και ένα μη γραμμικό μοντέλο, που ανήκει στην κατηγορία του Ensemble Learning (eXtreme Gradient Boosted trees), με τη διαδικασία μάθησης των παραμέτρων να πραγματοποιείται σε κάθε μια από τις επιλεγμένες ομάδες ξεχωριστά.
Οι σημειώσεις απευθύνονται στους μαθητές και τους εκπαιδευτικούς της Ειδικότητας "Σχεδιαστής Δομικών Έργων και Γεωπληροφορικής», της Δευτεροβάθμιας Επαγγελματικής Εκπαίδευσης και φιλοδοξούν να καλύψουν τη διδασκαλία του εργαστηριακού μαθήματος ΕΦΑΡΜΟΓΕΣ ΓΕΩΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΑ ΤΕΧΝΙΚΑ ΕΡΓΑ της Γ Τάξης για το σχολικό έτος 2015-16. Περιλαμβάνουν σχετική θεωρία και ασκήσεις και αξιοποιούν το ελεύθερα διαθέσιμο λογισμικό Ψηφιακής Χαρτογραφίας και Γεωπληροφορικής QGIS. Οι σημειώσεις είναι προϊόν συλλογικής εργασίας και αποτελούνται από δύο μέρη. Το πρώτο μέρος περιλαμβάνει συνοπτική θεωρία σχετικά με τη γεωπληροφορική, τα γεωγραφικά συστήματα πληροφοριών, τα είδη της πληροφορίας και τα εργαλεία που χρησιμοποιεί. Περιλαμβάνει επίσης μία αναφορά στα λογισμικά GIS και ειδικότερα στο QGIS, που χρησιμοποιείται στη συνέχεια.
Το δεύτερο μέρος αποτελείται από έξι ασκήσεις εφαρμογής σε ισάριθμα κεφάλαια. Κάθε ένα από αυτά περιλαμβάνει μία εισαγωγική επεξήγηση και στη συνέχεια την αντίστοιχη άσκηση. Τα κεφάλαια καλύπτουν την εγκατάσταση του λογισμικού, την εισαγωγή και απεικόνιση δεδομένων, τη δημιουργία χαρτών με βάση τα δεδομένα επιλογής και τέλος την αξιοποίηση του λογισμικού για την ανάλυση χώρου και τη λήψη απόφασης σχετικά με χωρικά ερωτήματα. Οι ασκήσεις είναι σχεδιασμένες για την περιοχή της Κρήτης, μπορούν όμως να τροποποιηθούν σύμφωνα με τις προτιμήσεις των εκπαιδευτικών και των μαθητών
Οι σημειώσεις συνοδεύονται με όλα τα απαιτούμενα ψηφιακά αρχεία που βρίσκονται στη σελίδα geopliroforiki.weebly.com
Nowadays, the concept of software has prevailed in all aspects of human daily life, offering
significant solutions to a wide variety of issues. The need for producing reliable and functional
software within short timeframes that can adapt to possible changes is constantly increasing.
In recent years, there has been significant research activity in the field of software
development process optimization, while the vast availability of open-source software projects
in repositories such as GitHub makes accessing large volumes of code data easy. Leveraging
this information can serve as a catalyst for creating useful tools that can greatly accelerate the
software development process while improving communication and collaboration among
development teams.
This thesis presents an integrated system for automated source code formatting using
machine learning techniques. The primary goal of the system is to detect and correct
formatting errors that deviate from the standards set by the development team, ensuring its
readability and thus facilitating easier maintenance. The system utilizes LSTM deep neural
network models in combination with N-gram statistical language models for detecting
formatting errors, while a specific mechanism for correcting these errors is proposed.
Additionally, an evaluation mechanism for code formatting is proposed, aiming to quantify this
abstract concept.
The system designed within the scope of this thesis is evaluated on 8000 Java code files
obtained from the CodRep 2019 competition. Through the observation of the final results, we
conclude that the system performs effectively in both detecting and correcting formatting
errors.
Εξέλιξη της Ελληνικής αγοράς Τηλεπικοινωνιών - Internetakargas
Εξέλιξη της Ελληνικής αγοράς Τηλεπικοινωνιών - Internet, Διατμηματικό Πρόγραμμα Μεταπυχιακών Σπουδών "Οικονομική και Διοίκηση των τηλεπικοινωνικών Δικτύων", Τμήμα Πληροφορικής και Τηλεπικοινωνιών, Τμήμα Οικονομικών Επιστημών, Εθνικό και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Φεβρουάριος 2004
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
Τις τελευταίες δεκαετίες, τα έργα λογισµικού γίνονται όλο και µεγαλύτερα, χρησιµότερα και διεισδύουν σε όλο και περισσότερες πτυχές του ανθρώπινου ϐίου. Κατά την ανάπτυξη και τη συντήρηση λογισµικού, οι προγραµµατιστές σπαταλούν µεγάλο µέρος του χρόνου τους στον εντοπισµό και τη διόρθωση σφαλµάτων. Τα εργαλεία στατικής ανάλυσης κώδικα αυτοµατοποιούν τη διαδικασία εντοπισµού των σφαλµάτων. Η χρήση τους, ωστόσο, παραµένει περιορισµένη, καθώς η κατανόηση και η διόρθωση σφαλµάτων παραµένουν ευθύνες των προγραµµατιστών. Τα τελευταία χρόνια, πραγµατοποιούνται έρευνες για την εξόρυξη προτύπων διόρθωσης τέτοιων σφαλµάτων άλλα και την ανάπτυξη συστηµάτων αυτοµατοποιηµένης διόρθωσης σφαλµάτων. Οι πρώτες στοχεύουν στην κατανόηση του τρόπου που οι προγραµµατιστές αντιµετωπίζουν τέτοια προβλήµατα, και πολλές ϕορές τα αποτελέσµατα τους αποτελούν ϐάση για τις δεύτερες. Η παρούσα διπλωµατική, στοχεύει στην εξόρυξη χρήσιµων προτύπων διόρ ϑωσης σφαλµάτων για σφάλµατα που ανήκουν στους κανόνες του εργαλείου στατικής ανάλυσης PMD. Αρχικά, µέσω κατάλληλων ερωτηµάτων στο API του Github, αναζητο ύνται commits που αφορούν διορθώσεις τέτοιων σφαλµάτων και λαµβάνονται οι εκδόσεις των αρχείων πριν και µετά των αλλαγών των commits. Στη συνέχεια, µέσω εκτέλεσης του PMD στις δύο εκδόσεις, εντοπίζονται οι επιµέρους διορθώσεις και δηµιουργείται κα τάλληλο σύνολο δεδοµένων, αποτελούµενο αποκλειστικά από διορθώσεις σφαλµάτων, κανόνων του PMD. Οι επιµέρους διορθώσεις αναλύονται και µε αξιοποίηση της αναπα ϱάστασης κώδικα srcML και του αλγορίθµου απόστασης επεξεργασίας δέντρου Gumtree, είναι εφικτή η εξαγωγή µιας ακολουθίας όρων που είναι αντιπροσωπευτικοί για κάθε διόρθωση. ΄Ετσι, µε εύρεση του µήκους της µέγιστης κοινής υπακολουθίας µεταξύ δύο διορθώσεων, είναι εφικτή η ανάπτυξη ενός µοντέλου οµοιότητας για τις διορθώσεις συνολικά και κατ΄ επέκταση, η οµαδοποίηση τους και η εξαγωγή προτύπων διόρθω σης. Πραγµατοποιήθηκαν δύο διαφορετικά πειράµατα οµαδοποίησης : στο ένα αξιοποιήθηκε ο αλγόριθµος K-medoids και στο άλλο ο DBSCAN. Και στα δύο πειράµα τα, άλλα ιδιαίτερα σε αυτό µε τον DBSCAN, σχεδόν κάθε εξαγόµενη οµάδα αποτελείται κυρίως από διορθώσεις σφαλµάτων ενός κανόνα του PMD. Παράλληλα, µε τον υπο λογισµό του αριθµού των commits και των αποθετηρίων από τα οποία προέρχονται οι διορθώσεις κάθε οµάδας - προτύπου, ϕανερώνεται ότι οι περισσότερες οµάδες προκύπτουν από διορθώσεις προερχόµενες από µεγάλο αριθµό commits και αποθετηρίων. ΄Ετσι αντανακλούν τον τρόπο που αρκετοί προγραµµατιστές ϑα αντιµετώπιζαν παρόµοια προβλήµατα. Συνεπώς, τα εξαγόµενα πρότυπα ϑα µπορούσαν να αποτελέσουν αφετη ϱία για κάποιον µηχανισµό αυτοµατοποιηµένης διόρθωσης σφαλµάτων, ϐασιζόµενο στο PMD για τον εντοπισµό τους.
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
Contemporary Software products are getting larger and more complex. Dur ing the processes of software development and maintenance, developers spend a significant amount of their work time on detecting and fixing bugs. Static Analysis Tools automate the process of bug detection. Their application, however, is lim ited as the process of understanding and fixing of bugs, remains part of developer’s responsibilities. Lately, several research approaches aspire to extract useful bug fix patterns, or to automate the bug fixing process. The first approaches focus on understanding how developers face similar problems and frequently they serve as groundwork for systems for automated bug fixing. Our research aims at the extraction of useful bug fix patterns, for bugs that trigger the rules of the static analysis tool PMD. Initially, by querying the Github API, we search for commits that correspond to fixes of these categories of bugs. Both the before and after the commit versions of the commits’ files are downloaded. Then, by executing PMD on the two versions of each file, individual fixes are detected and a proper dataset is crafted. The dataset comprises fixes of bugs detectable from rules of PMD. The fixes are analyzed, and by utilizing srcML code representation and tree edit distance algorithm Gumtree, a representative sequence is extracted from each fix. Afterwards, by utilizing the metric of longest common subsequence between two sequences of two fixes, we develop a similarity scheme for the dataset’s fixes. This similarity scheme, operates as the base for the clustering of fixes and pattern extraction. In order to cluster the fixes, two separate experiments were conducted, one with K-medoids and one with the DBSCAN algorithm. In both experiments, but mostly with the DBSCAN algorithm, almost each cluster groups mostly bug fixes of a certain PMD rule. Alongside, by computing the number of commits and repositories from which the fixes of each cluster come from, it becomes obvious, that most of the clusters arise from fixes coming from a large number of commits and repositories. Thus, the extracted patterns correspond to the way in which similar problems are faced, by a number of different developers. Consequently, our extracted patterns, can be utilized as groundwork for an automated bug fixing system, where PMD will serve for bug detection.
Στη σύγχρονη εποχή είναι αδιαμφισβήτητη πραγματικότητα πως τα «έξυπνα» κινητά τηλέφωνα αποτελούν κυρίαρχο στοιχείο της ζωής του ανθρώπου. Με το πάτημα ενός κουμπιού μπορεί κάποιος να ενημερωθεί για τις εξελίξεις παγκοσμίως, να επικοινωνήσει με άτομα από την άλλη άκρη του πλανήτη και να ψυχαγωγηθεί. Ειδικότερα, κύριος πόλος έλξης τους αποτελεί η φορητότητα τους, η οποία κατέστη δυνατή μέσω της αξιοποίησης των μπαταριών. Ωστόσο, αυτές διαθέτουν συγκεκριμένο αριθμό επαναφορτίσεων και συνεπώς, η διάρκεια ζωής μιας συσκευής εξαρτάται άμεσα από τον τύπο χρήσης της και τη στρατηγική επαναφόρτισης της.
Η παρούσα διπλωματική εργασία ασχολείται με την ανάλυση της χρήσης των κινητών τηλεφώνων και την εκτίμηση της κατανάλωσης ενέργειας (energy drain) της μπαταρίας τους. Αρχικά, για τη συλλογή των δεδομένων αναπτύχθηκε η εφαρμογή BatteryApp, η οποία περιοδικά καταγράφει τις λειτουργίες της συσκευής και τις πληροφορίες της μπαταρίας. Στη συνέχεια, ακολουθεί η ομαδοποίηση (clustering) όμοιων τύπων χρήσεων των συσκευών μέσω της ιεραρχικής ομαδοποίησης, η οποία δεν επιβάλει την εξ’ αρχής (apriori) επιλογή συγκεκριμένου αριθμού ομάδων και δεν εισάγει περιορισμούς στη συνάρτηση απόστασης που θα επιλεχθεί. Έπειτα, αυτή αξιολογείται ως προς το περιεχόμενό της, έτσι ώστε να επιλεγούν εκείνες οι ομάδες που περιέχουν την περισσότερη πληροφορία. Τέλος, για την εκτίμηση του energy drain, χρησιμοποιήθηκαν ένα απλό γραμμικό μοντέλο, δύο παραλλαγές της γραμμικής παλινδρόμησης, όπου εισάγεται η έννοια της ποινής (Ridge και Lasso Regression), και ένα μη γραμμικό μοντέλο, που ανήκει στην κατηγορία του Ensemble Learning (eXtreme Gradient Boosted trees), με τη διαδικασία μάθησης των παραμέτρων να πραγματοποιείται σε κάθε μια από τις επιλεγμένες ομάδες ξεχωριστά.
Οι σημειώσεις απευθύνονται στους μαθητές και τους εκπαιδευτικούς της Ειδικότητας "Σχεδιαστής Δομικών Έργων και Γεωπληροφορικής», της Δευτεροβάθμιας Επαγγελματικής Εκπαίδευσης και φιλοδοξούν να καλύψουν τη διδασκαλία του εργαστηριακού μαθήματος ΕΦΑΡΜΟΓΕΣ ΓΕΩΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΑ ΤΕΧΝΙΚΑ ΕΡΓΑ της Γ Τάξης για το σχολικό έτος 2015-16. Περιλαμβάνουν σχετική θεωρία και ασκήσεις και αξιοποιούν το ελεύθερα διαθέσιμο λογισμικό Ψηφιακής Χαρτογραφίας και Γεωπληροφορικής QGIS. Οι σημειώσεις είναι προϊόν συλλογικής εργασίας και αποτελούνται από δύο μέρη. Το πρώτο μέρος περιλαμβάνει συνοπτική θεωρία σχετικά με τη γεωπληροφορική, τα γεωγραφικά συστήματα πληροφοριών, τα είδη της πληροφορίας και τα εργαλεία που χρησιμοποιεί. Περιλαμβάνει επίσης μία αναφορά στα λογισμικά GIS και ειδικότερα στο QGIS, που χρησιμοποιείται στη συνέχεια.
Το δεύτερο μέρος αποτελείται από έξι ασκήσεις εφαρμογής σε ισάριθμα κεφάλαια. Κάθε ένα από αυτά περιλαμβάνει μία εισαγωγική επεξήγηση και στη συνέχεια την αντίστοιχη άσκηση. Τα κεφάλαια καλύπτουν την εγκατάσταση του λογισμικού, την εισαγωγή και απεικόνιση δεδομένων, τη δημιουργία χαρτών με βάση τα δεδομένα επιλογής και τέλος την αξιοποίηση του λογισμικού για την ανάλυση χώρου και τη λήψη απόφασης σχετικά με χωρικά ερωτήματα. Οι ασκήσεις είναι σχεδιασμένες για την περιοχή της Κρήτης, μπορούν όμως να τροποποιηθούν σύμφωνα με τις προτιμήσεις των εκπαιδευτικών και των μαθητών
Οι σημειώσεις συνοδεύονται με όλα τα απαιτούμενα ψηφιακά αρχεία που βρίσκονται στη σελίδα geopliroforiki.weebly.com
Nowadays, the concept of software has prevailed in all aspects of human daily life, offering
significant solutions to a wide variety of issues. The need for producing reliable and functional
software within short timeframes that can adapt to possible changes is constantly increasing.
In recent years, there has been significant research activity in the field of software
development process optimization, while the vast availability of open-source software projects
in repositories such as GitHub makes accessing large volumes of code data easy. Leveraging
this information can serve as a catalyst for creating useful tools that can greatly accelerate the
software development process while improving communication and collaboration among
development teams.
This thesis presents an integrated system for automated source code formatting using
machine learning techniques. The primary goal of the system is to detect and correct
formatting errors that deviate from the standards set by the development team, ensuring its
readability and thus facilitating easier maintenance. The system utilizes LSTM deep neural
network models in combination with N-gram statistical language models for detecting
formatting errors, while a specific mechanism for correcting these errors is proposed.
Additionally, an evaluation mechanism for code formatting is proposed, aiming to quantify this
abstract concept.
The system designed within the scope of this thesis is evaluated on 8000 Java code files
obtained from the CodRep 2019 competition. Through the observation of the final results, we
conclude that the system performs effectively in both detecting and correcting formatting
errors.
Εξέλιξη της Ελληνικής αγοράς Τηλεπικοινωνιών - Internetakargas
Εξέλιξη της Ελληνικής αγοράς Τηλεπικοινωνιών - Internet, Διατμηματικό Πρόγραμμα Μεταπυχιακών Σπουδών "Οικονομική και Διοίκηση των τηλεπικοινωνικών Δικτύων", Τμήμα Πληροφορικής και Τηλεπικοινωνιών, Τμήμα Οικονομικών Επιστημών, Εθνικό και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Φεβρουάριος 2004
Εξέλιξη της Ελληνικής αγοράς Τηλεπικοινωνιών - Internet
Data Mining & Applications
1. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 1
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ
ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ
ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
Data Mining και Εφαρμογές
Όνομα Φοιτητή :
Κωνσταντίνος Βουκελάτος
Επιβλέπων Καθηγητής :
Αναπληρωτής Καθηγητής Μιχαήλ Φιλιππάκης
ΠΕΙΡΑΙΑΣ , ΟΚΤΩΒΡΙΟΣ 2021
2. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 2
ΣΕΛΙΔΑ ΕΓΚΡΙΣΗΣ (ΣΤΟΙΧΕΙΑ ΕΡΓΑΣΙΑΣ)
Τίτλος Πτυχιακής Εργασίας :
Data Mining και Εφαρμογές
Όνομα Φοιτητή :
Κωνσταντίνος Βουκελάτος
Αριθμός Μητρώου Φοιτητή :
Ε13032
Επιτροπή Αξιολόγησης :
1.
2.
3.
3. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 3
ΠΕΡΙΛΗΨΗ
Στην σύγχρονη κοινωνία, μια κοινωνία που ανέκαθεν κατακλυζόταν από
δεδομένα και πληροφορίες, η ραγδαία ακμή των τεχνολογιών της Πληροφορικής
και του Διαδικτύου, έχει επιφέρει συσσώρευση δεδομένων και κόπωση ακόμη
και στην καθημερινότητα. Ο όγκος των δεδομένων στις Βάσεις Δεδομένων
αυξάνεται με εκπληκτικό ρυθμό, την στιγμή που οι χρήστες αυτών των
δεδομένων επιζητούν από αυτά πιο εξειδικευμένες πληροφορίες.
Πλέον κάθε τομέας της κοινωνίας αυτής, καθώς και των επιστημών που
στοχεύουν στην εξέλιξη της, είναι συνυφασμένος με την Στατιστική Επεξεργασία
Πληροφοριών. Εκεί όπου δημιουργήθηκε και ο επιστημονικός κλάδος της
Εξόρυξης Δεδομένων και κυρίως της Ανακάλυψης Γνώσης από τα δεδομένα
αυτά.
Κύριος στόχος της παρούσας πτυχιακής εργασίας, είναι η κατανοήση των
εννοιών και των πρακτικών, από τον κόσμο του Data Mining, τα προβλήματα και
οι δυσκολίες λόγω όγκου, καθώς και η σημασία της εξαγόμενης πληροφορίας.
Η πτυχιακή στο 1ο μέρος της, ασχολείται με την γενική μελέτη των
Δεδομένων και μας εισάγει στον σύγχρονο «Κόσμο των Δεδομένων», ώστε να
κατανοήσουμε την έννοια και την σημασία τους, μέσω ορισμών και ιστορικών
αναδρομών.
Στο 2ο μέρος, γίνεται αναφορά στην δομή της Εξόρυξης Δεδομένων, την
διαδικασία Εξόρυξης CRISP και τα κύρια μοντέλα της αρχιτεκτονικής των
διαδικασιών Εξόρυξης.
Στο 3ο μέρος αναφέρονται τα Αλγοριθμικά Μοντέλα Εξόρυξης, δίνοντας
«ύλη» στα παραπάνω μοντέλα αρχιτεκτονικής, με έμφαση στην ανάλυση και την
μεταξύ τους σύγκριση.
Στο 4ο μέρος θα γίνει η χρήση του WEKA 3.8.5, ενός open source
συστήματος για την επεξεργασία των Δεδομένων, όπου θα εφαρμοστούν
κάποιους από τους προαναφερθέντες αλγόριθμους.
Λέξεις Κλειδιά :
Εξόρυξη Δεδομένων, Ανακάλυψη Γνώσης από Δεδομένα, Αλγόριθμοι,
Μοντέλα Εξόρυξης, Rapid Miner
Θεματική Περιοχή :
Επιστήμη της Στατιστικής, Εξόρυξης Δεδομένων και Πληροφορικής
4. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 4
ABSTRACT
In modern society, a society that has always been overwhelmed by data
and information, the rapid flourishing of Information Technology and the Internet
has brought about an accumulation of data and fatigue even in everyday life.
The volume of data in databases is growing at an astonishing rate, at a time
when users of that data are seeking more specialized information from it.
Nowadays, every sector of this society, as well as the sciences aimed at its
development, is intertwined with Statistical Information Processing. This is
where the scientific discipline of Data Mining and especially Knowledge
Discovery from this data was created.
Thesi’s main objective is to understand the concepts and practices, from
the world of Data Mining, the problems and difficulties due to volume, and the
importance of extracted information.
The thesis in its 1st part, deals with the general study of Data and
introduces us to the modern "Data World", in order to understand its meaning,
through definitions, historical background and its importance.
In Part 2, we discuss the structure of Data Mining, the CRISP Mining
process and the main models of the Mining process architecture.
In Part 3, the Algorithmic Mining Models are mentioned, giving
"substance" to these models, with emphasis on the analysis and comparison
between them.
In the 4th part, the use of WEKA 3.8.5, an opem source system for data
processing by applying the above mentioned algorithms, will be discussed.
Keywords :
Data Mining, Knowledge Discovery from Data, Algorithms, Mining Models,
Rapid Miner
Topic Area :
Science of Statistics, Data Mining and Computer Science
5. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 5
ΕΥΧΑΡΙΣΤΙΕΣ
Για τη διεκπεραίωση της παρούσας Πτυχιακής Εργασίας, θα ήθελα να
ευχαριστήσω τον Αναπλήρωτη Καθηγητή Μιχαήλ Φιλιππάκη για τη συνεργασία
και την πολύτιμη συμβολή του στην ολοκλήρωση της.
6. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 6
ΠΕΡΙΕΧΟΜΕΝΑ
ΠΕΡΙΛΗΨΗ…………………………………………………………………… ……. 3
ABSTRACT…………………………………………………………………. …… 4
ΕΥΧΑΡΙΣΤΙΕΣ……………………………………………………………………… 5
ΠΕΡΙΕΧΟΜΕΝΑ…………………………………………………………………… 6
ΚΕΦΑΛΑΙΟ 1ο : Εξόρυξη Δεδομένων και Ανακάλυψη Γνώσης…………….… 6
1.1. Εισαγωγή στην Εξόρυξη Δεδομένων ………… ……………………….. 8
1.1.1. Ορισμός ……………………………………………………….…… 8
1.1.2. Ιστορική Αναδρομή …………………………………………………9
1.1.3. Στόχος – Σημασία ………………………………………………….9
1.2. Ανακάλυψη γνώσης από Δεδομένα (KDD) ………………………...10
ΚΕΦΑΛΑΙΟ 2Ο : Data Mining στην σύγχρονη εποχή ………………………...12
2.1. Διαδικασία Εξόρυξης Δεδομένων CRISP ………………………...12
2.1.1. Business Objectives Determination ………………………...13
2.1.2. Data Preparation ………………………………………………...13
2.1.3. Data Mining ………………………………………………………...13
2.1.4. Analysis of Results ………………………………………………...14
2.1.5. Assimilation of Knowledge ………………………………………...14
2.2. Μοντέλα και Αλγόριθμοι Εξόρυξης Δεδομένων ………………………...14
2.2.1. Μοντέλα ………………………………………………………...14
2.2.1.1. Προγνωστικό ………………………………………...14
2.2.1.2. Περιγραφικό …………………………………………15
2.2.2. Τεχνικές από Προγνωστικά Μοντέλα ………………………...15
2.2.2.1. Classification………………………………………...15
2.2.2.2. Regression ………………………………………...16
2.2.2.3. Time Series Analysis ………………………...16
2.2.2.4. Prediction ………………………………………...17
2.2.3. Τεχνικές από Περιγραφικά Μοντέλα ………………………...18
2.2.3.1. Clustering ………………………………………...18
2.2.3.2. Symmarizaation ……………………………...…19
2.2.3.3. Association Rules ………………………………...19
2.2.3.4. Sequence Discovery ………………………...20
ΚΕΦΑΛΑΙΟ 3Ο : Αλγοριθμικά Μοντέλα Εξόρυξης Δεδομένων ………………...20
3.1. Classifiaction Algorithms ………………………………………………...21
3.1.1. ID3 ………………………………………………………………...21
3.1.2. C4.5 ………………………………………………………………...22
3.1.3. Support Vector Machine ………………………………………...23
3.1.4. Σύγκριση και Συμπεράσματα ………………………………...23
3.2. Clustering Algorithms ………………………………………………...24
3.2.1. K Means ………………………………………………………...24
3.2.2. K-Modes ………………………………………………………...24
3.2.3. ΕΜ ………………………………………………………………...24
3.2.4. Denclue ………………………………………………………...24
8. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 8
ΚΕΦΑΛΑΙΟ 1Ο
: Εξόρυξη Δεδομένων και Ανακάλυψη Γνώσης
1.1. Εισαγωγή στην Εξόρυξη Δεδομένων
Η επιστήμη της Εξόρυξης Δεδομένων (Data Mining) ασχολείται με την
ανεύρεση και ερμηνεία προτύπων ή μοτίβων (pattern) στα δεδομένα, με σκοπό
την εξαγωγή πληροφορίας και γνώσης, για την λήψη αποφάσεων με βάση
μελλοντικά δεδομένα. Είναι ένα πεδίο έρευνας, το οποίο συνδυάζει διάφορες
τεχνικές όπως : Μηχανική Μάθηση, Στατιστική και Τεχνική Νοημοσύνη, καθώς
και αυτές των Βάσεων Δεδομένων, Οπτικοποίησης και Ανάπτυξης Αλγορίθμων.
Σήμερα, τα δεδομένα δημιουργούνται συνεχώς σε μεγάλη κλίμακα από
απλές καθημερινές ενέργειες όπως η αγορά προϊόντων και η περιήγηση στο
διαδίκτυο. Τα δεδομένα αυτά αποθηκεύονται συνήθως σε μεγάλες βάσεις
δεδομένων (DataBase).
Σχήμα 1 Μαζική καταγραφή δεδομένων
1.1.1. Ορισμός
Με τον όρο εξόρυξη δεδομένων αναφερόμαστε στην εφαρμογή
στατιστικών και υπολογιστικών μεθόδων σε δεδομένα με σκοπό την εξαγωγή
χρήσιμης πληροφορίας, όπως η κατηγοριοποίηση των δεδομένων ή η
δημιουργία μοντέλων πρόβλεψης.
Σύμφωνα με τους Witten and Frank (2000), η Εξόρυξη Δεδομένων
ορίζεται ως “η διαδικασίαανακάλυψης προτύπων μέσα από δεδομένα”, δίνοντας
έτσι έμφαση στη διάσταση της Μηχανικής Μάθησης.
9. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 9
Σύμφωνα με τους Han and Kamber (2001), “η Εξόρυξη Δεδομένων
συνίσταται στην ανακάλυψη γνώσης από μεγάλους όγκους δεδομένων”,
δίνοντας έτσι έμφαση στη διάσταση του όγκου των δεδομένων.
Βέβαια αν και υπάρχει μία ποικιλία ορισμών σχετικά με το Data Mining,
θα μπορούσαμε να συνοψίσουμε την ουσία της με την παρακάτω πρόταση :
“Η εξαγωγή χρήσιμων πληροφοριών από μεγάλα σύνολα δεδομένων”
‘’Η διαδικασία εξαγωγής άγνωστης, έγκυρης και εκμεταλλεύσιμης
πληροφορίας από μεγάλες Βάσεις Δεδομένων και η χρήση της εξαγώμενης
πληροφορίας για την λήψη κρίσιμων αποφασέων’’
1.1.2. Ιστορική Αναδρομή
Η ανάγκη όμως για εξόρυξη γνώσης από δεδομένα είναι συνδεδεμένη με την
στατιστική και την ανάλυση συμπερασμάτων από τη εποχή της Αρχαίας
Αιγύπτου. Οι αρχές ωστόσο του Data Mining, με την σύγχρονη έννοια
εντοπίζονται στην δεκαετία του ’80, ενώ ο όρος αναγνωρίστηκε και
κατωχηρώθηκε αργότερα στην δεκαετία του ’90. Εκείνη την εποχή, η ραγδαία
αύξηση των επιδόσεων των υπολογιστικών συστημάτων, αλλά και η διάδοση
του διαδικτύου έφεραν την επανάσταση στον τρόπο με τον οποίο αποθηκεύουμε
και αξιοποιούμε τα δεδομένα. Πληροφορική σημαίνει εξάλλου «δεδομένα».
Παρατηρούμε δηλαδή, ότι το Data Mining ως επιστημονικό τομέας,
θεμελιώθηκε με την άνοδο των ηλεκτρονικών υπολογιστών και με την
δυνατότητα, παράλληλα, να αποθηκεύουμε μεγάλο όγκο από δεδομένα σε
δίσκους και όχι σε χαρτί. Σταδιακά με τα χρόνια, συναντάμε και την εισαγωγή
των Βάσεων Δεδομένων αλλά και των γλωσσών προγραμματισμού (κοντά στο
1980). Αυτή η προσθήκη – εξέλιξη, αποδείχθηκε επαναστατική, καθώς η
αυτόματη «φόρτωση» τεράστιου όγκου δεδομένων και η ταχύτατη ανάλυση
τους, κατάφερε να διαχωρίσει 3 τομείς στο επιστημονικό αυτό πεδίο. Οι τομείς
της Στατιστικής, της Μηχανικής Μάθησης και της Τεχνητής Νοημοσύνης.
1.1.3.Στόχος – Σημασία
Σύμφωνα με τον John Naisbitt και μία παρατήρηση του το 1984, στο βιβλίο
του “MegaTrends”, «πνιγόμαστε σε πληροφορία αλλά λιμοκτονούμε από
γνώση». Το πρόβλημα σήμερα, δεν είναι ότι δεν έχουμε δεδομένα για να
εξάγουμε αρκετές πληροφορίες, αλλά ότι δεν υπάρχει η φιλοσοφία, η γνώση και
οι αναλυτές, που μπορούν να μας δώσουν πρόσβαση σε αυτές.
Με άλλα λόγια, η εξόρυξη δεδομένων έρχεται με πληροφορίες που τα
ερωτήματα ή οι αναφορές δεν μπορούν κανονικά να ανιχνευτούν.
Ανακαλύπτοντας χρήσιμα πρότυπα και τάσεις για διάφορες πτυχές της
εταιρείας, οι επιχειρήσεις μπορούν να βρουν νέες στρατηγικές που βοηθούν
στην απόκτηση ανταγωνιστικού πλεονεκτήματος. Η εξόρυξη δεδομένων
προβλέπει επίσης συμπεριφορές και μελλοντικές τάσεις που βοηθούν τις
επιχειρήσεις να γίνουν πιο προληπτικές και να κάνουν ακριβέστερες αποφάσεις
που βασίζονται στις πληροφορίες.
10. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 10
Εν ολίγοις, η εξόρυξη δεδομένων καθιστά όλη τη διαδικασία διαχείρισης
πληροφοριών πιο γρήγορη, πιο εύκολη και πιο αποτελεσματική. Επίσης,
απαντά στις ερωτήσεις με μεγαλύτερη ακρίβεια και σαφήνεια.
1.2. Ανακάλυψη Γνώσης σε Βάσεις Δεδομένων (KDD)
Πολύ συχνά χρησιμοποιούνται εναλλακτικά για την ίδια έννοια οι όροι:
Ανακάλυψη Γνώσης σε Βάσεις Δεδομένων (Knowledge Discover in Databases -
KDD) και Εξόρυξη Γνώσης από Δεδομένα (Data mining).
Στην πραγματικότητα, o όρος KDD έχει χρησιμοποιηθεί για να εκφράσει μια
διαδικασία πολλών βημάτων, ένα εκ των οποίων η Data Mining. Έτσι
προκύπτουν κάποιοι ορισμοί:
“Η Ανακάλυψη Γνώσης σε Βάσεις Δεδομένων (KDD) είναι η διαδικασία
εύρεσης χρήσιμων πληροφοριών και προτύπων στα δεδομένα.”
&
“Η Eξόρυξη Γνώσης από Δεδομένα(Data Mining) είναι η χρήση αλγορίθμων για
την εξαγωγή των πληροφοριών και προτύπων που παράγονται με τη
διαδικασία KDD.”
Η KDD είναι μια διαδικασία που περιλαμβάνει πολλά διαφορετικά βήματα. Η
είσοδος σε αυτή τη διαδικασία είναι τα δεδομένα, και η έξοδο είναι οι χρήσιμες
πληροφορίες που επιθυμούν οι χρήστες. Η διαδικασία αυτή είναι διαδραστική
και συνήθως χρονοβόρα έως την ολοκλήρωση της, εξαιτίας των πολλών και
απαιτητικών βημάτων της.
11. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 11
Τα βασικά στάδια της διαδικασίας αυτής είναι:
1. Συλλογή Δεδομένων (Data Collection)
Το πρώτο βήμα της KDD είναι η συλλογή και η αποθήκευση των
δεδομένων. Η συλλογή των δεδομένων συνήθως γίνεται αυτόματα (π.χ. χρήση
αισθητήρων), ή μη αυτόματα (π.χ. χρήση ερωτηματολογίων). Δυσλειτουργία
στους αισθητήρες ή αδυναμία απάντησης κάποιας ερώτησης στα
ερωτηματολόγια μπορεί να οδηγήσει σε θορυβώδη ή ελλιπή δεδομένα. Τα
συγκεκριμένα προβλήματα, που ενδεχομένως να προκύψουν κατά τη συλλογή
δεδομένων, αναλαμβάνει να τα αντιμετωπίσει το επόμενο στάδιο.
2. Προεπεξεργασία Δεδομένων (Preprocessing)
Τα δεδομένα που πρόκειται να χρησιμοποιηθούν κατά την διαδικασία, ίσως
να είναι λανθασμένα ή ελλιπή. Ίσως υπάρχουν ανώμαλα δεδομένα από
πολλαπλές πηγές που περιλαμβάνουν διαφορετικούς τύπους δεδομένων και
διαφορετικές μονάδες μέτρησης. Σε αυτό το βήμα μπορούν να χρησιμοποιηθούν
πολλές και διαφορετικές δραστηριότητες. Τα λανθασμένα δεδομένα μπορεί να
διορθωθούν ή να αφαιρεθούν, ενώ τα ελλιπή δεδομένα πρέπει να συλλεχθούν
ή να εκτιμηθούν ( συνήθως με την χρήση εργαλείων του Data Mining).
3. Μετασχηματισμός Δεδομένων (Transformation)
Ο μετασχηματισμός των δεδομένων αποτελεί το τρίτο στάδιο της KDD.
Πρόκειται για τη μετατροπή των δεδομένων κάτω από ένα κοινό πλαίσιο, για
επεξεργασία, με σκοπό την εξομάλυνση των δεδομένων και απομάκρυνση
θορύβου, για τη συνάθροιση (παραγωγή) των δεδομένων, την κανονικοποίηση
τους και τέλος για τη δημιουργία νέων χαρακτηριστικών από τα ήδη υπάρχοντα.
Ειδικές μορφές μετασχηματισμού αποτελούν η διακριτοποίηση και η συμπίεση.
4. Εξόρυξη Δεδομένων (Data Mining)
12. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 12
Σε αυτό το στάδιο της KDD εφαρμόζεται κάποιος αλγόριθμος για την παραγωγή
ενός μοντέλου. Έχοντας καθαρίσει και μετασχηματίσει τα δεδομένα, είναι έτοιμα
να χρησιμοποιηθούν από κάποιον αλγόριθμο, ώστε να δημιουργηθεί κάποιο
μοντέλο, συνήθως κατηγοριοποίησης ή πρόβλεψης. Θέλουμε να
χρησιμοποιήσουμε το μοντέλο αυτό, το οποίο δημιουργήθηκε με βάση κάποια
γνωστά δεδομένα, έτσι ώστε να μπορεί να μας δώσει απάντηση για την τιμή ενός
χαρακτηριστικού-μεταβλητής στόχου για νέα, άγνωστα δεδομένα.
5. Διερμηνεία και Αξιολόγηση (Interpretation/Evaluation)
Είναι πολύ σημαντικό το πώς θα παρουσιαστούν στους χρήστες τα
αποτελέσματα της εξόρυξης γνώσης, επειδή η χρησιμότητα ή μη των
αποτελεσμάτων μπορεί να εξαρτάται ακριβώς από αυτή την παρουσίαση.
ΚΕΦΑΛΑΙΟ 2Ο
: Data Mining : Δομή, Διεργασίες και Τεχνικές
2.1. Διαδικασία Εξόρυξης Δεδομένων CRISP
Το 1999 πολλές μεγάλες εταιρίες, βασισμένες στην νέα KDD(1996), ξεκίνησαν
να δουλεύουν μαζί για να τυποποιήσουν τις διαδικασίες του Data Mining. Το
αποτέλεσμα αυτής της συνεργασίας ήταν το CRISP- DM (the CRoss-Industry
Standard Process for Data Mining). Ουσιαστικά τo CRISP-DM αποτελεί ένα
εξελιγμένο μοντέλο μιας Knowledge Discovered in Databases διαδικασίας.
Αποτελεί την πιο δημοφιλή τεχνική για την εξαγωγή γνώσης από δεδομένα και
χρησιμοποιείται κατά μεγάλο βαθμό σε εταιρίες και επιχειρήσεις.
Αυτή η διαδικασία σχεδιάστηκε για να μπορεί να εφαρμοστεί ανεξάρτητα από
τη χρήση συγκεκριμένων εργαλείων ή τύπων δεδομένων. Η διαδικασία CRISP-
DM περιλαμβάνει έξι βήματα που φαίνονται στο παραπάνω σχήμα, τα οποία
φαίνεται πως είναι επηρεασμένα από αυτά της KDD. Τα βήματα επεξηγούνται
παρακάτω στις ενότητες 2.1.1. , 2.1.2. , 2.1.3. , 2.1.4. , 2.1.5.
2.1.1. Business Objectives Determination
13. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 13
To 1o βήμα αφορά τον καθορισμός των αντικειμενικών στόχων της επιχείρησης.
Η διαδικασία λειτουργεί ώς εξής :
o Καθορισμός των προβλημάτων και των προκλήσεων που έχει να
αντιμετωπίσει η εταιρία.
o Μετατροπή των στόχων και περιορισμών σε στοιχεία ενός προβλήματος
εξόρυξης δεδομένων
o Προετοιμασία μιας προκαταρκτικής σταρτηγικής για την επίτευξη αυτών
των στόχων.
2.1.2. Data Preparation
Το 2ο βήμα αφορά την προετοιμασία των δεδομένων και αποτελείται ουσιαστικά
από 3 απλούστερα βήματα :
1. Data Selection / Συλλογή Δεδομένων κατά την οποία γίνεται:
o Αναγνώριση όλων των εξωτερικών και εσωτερικών πηγών πληροφοριας
και συλλογή δεδομένων
o Ανάλυση των δεδομένων για την απόκτηση βαθιάς γνώσης και
κατανόησης
o Επιλογή υποσυνόλων των δεδομένων τα οποία περιέχουν πρότυπα,
κατάλληλα για να χρησιμοποιηθούν στην εφαρμογή Data Mining
2. Data Pre-Processing / Προεπεξεργασία Δεδομένων κατά την οποία γίνεται
μελέτη της ποιότητας των δεδομένων, η οποία ευνοεί περαιτέρω ανάλυση
και θα οδηγήσει στην επιλογή της διαδικασίας εξόρυξης.
3. Data Transformation / Μετατροπή Δεδομένων , κατά την οποία γίνεται:
o Προετοιμασία ενός συνόλου δεδομένων που θα χρησιμοποιηθεί, μέσα
από ένα σύνολο αρχικά ακατέργαστων δεδομένων.
o Επιλογή των μεταβλητών που θα αναλυθούν και που είναι κατάλληλες για
την ανάλυση που επιθυμούμαι.
o Μετατροπή ορισμένων μεταβλητών έτσι ώστε να ταιριάζουν στους
εκάστοτε αλγορίθμους Data Mining που θα χρησιμοποιηθούν.
o Ξεκαθάρισμα των αρχικών δεδομένων ώστε να έιναι κατάλληλα για τα
εργαλεία Data Mining
2.1.3. Data Mining
Το 3ο βήμα αφορά την Εξόρυξη των δεδομένων, κατά την οποία:
o Γίνεται η εξόρυξη των δεδόμενων που επιλέχθηκαν από το προηγούμενο
βήμα. Είναι η βασικότερη λειτουργία όλης της διαδικασίας και είναι
αυτοματοποιημένη και γρήγορη (αν εξαιρέσουμε το γεγονός ότι εδώ
επιλέγεται ο κατάλληλος συνδυασμός αλγορίθμων Data Mining)
o Ρυθμίζεται το μοντέλο δεδομένων που επιλέχθηκε για βελτιστοποίηση
του αποτελέσματος.
o Εάν υπάρξει επιπλοκή, γυρνάμε στο βήμα 2, ώστε να γίνει προσαρμογή
των δεδομένων στις απιτήσεις της συγκεκριμένης τεχνικής Data Mining.
14. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 14
2.1.4. Analysis of Results
Το 4ο βήμα αφορά την ανάλυση των αποτελεσμάτων που προέκυψαν από την
εξόρυξη. Εδω:
o Γίνεται εκτίμηση του αποτελέσματος, όπου ανα και τυπικά απαιτεί
κάποιου είδους τεχνικής οπτικοποίησης, η ανάλυση θα προσεγγισθεί
εξαρτώμενη από την διαδικασία Data Mining που χρησιμοποιήθηκε.
o Λαμβάνονται αποφάσεις σχετικά με το αν το αποτέλεσμα καλύπτει τις
προϋποθέσεις και τα ερωτήματα του πρώτου βήματος.
2.1.5. Assimilation of Knowledge
Το 5ο και τελευταίο βήμα αφορά την αφοσίωση της γνώσης, κατά την οποία
γίνεται ενσωμάτωση των αποφάσεων που λήφθηκαν στο προηγούμενο βήμα
στην οργάνωση της επιχείρησης, εφόσον καλύπτουν τις απαιτήσεις της.
2.2. Μοντέλα και Αλγόριθμοι Εξόρυξης Δεδομένων
2.2.1. Μοντέλα
Τα μοντέλα που παράγονται από το στάδιο της Εξόρυξης Δεδομένων
διακρίνονται σε δυο βασικούς τύπους:
o τα μοντέλα πρόβλεψης (predictive)
o τα περιγραφικά μοντέλα (descriptive)
Στο σχήμα φαίνεται κάτω από κάθε τύπο μοντέλου φαίνοται μερικές από τις πιο
συνηθισμένες εργασίες του είδους για την εξόρυξης γνώσης από δεδομένα.
2.2.1.1. Predictive / Προγνωστικό
Ένα μοντέλο πρόβλεψης (predictive model) έχει στόχο να προβλέψει
τιμές για ένα συγκεκριμένο χαρακτηριστικό που παρουσιάζει ενδιαφέρον και που
πιθανώς βασίζεται στη συμπεριφορά άλλων χαρακτηριστικών. Η μοντελοποίηση
15. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 15
πρόβλεψης μπορεί να γίνει με βάση τη χρήση ιστορικών δεδομένων, με στόχο
την πρόβλεψη άγνωστων ή μελλοντικών τιμών ενός άλλου συνόλου δεδομένων
ενδιαφέροντος.
Για παράδειγμα, η χρήση μιας πιστωτικής κάρτας μπορεί να μη γίνει
δεκτή, όχι λόγω του πιστωτικού ιστορικού του πελάτη αλλά λόγω του ότι η
τωρινή αγορά είναι σχετική με προηγούμενες αγορές οι οποίες διαδοχικά
βρέθηκαν να έγιναν με κλεμμένες κάρτες. Οι εργασίες εξόρυξης γνώσης από
δεδομένα για το χτίσιμο ενός μοντέλου πρόβλεψης περιλαμβάνουν
κατηγοριοποίηση, παλινδρόμηση, ανάλυση χρονολογικών σειρών και
πρόβλεψη.Ας τις δούμε πιο αναλυτικά παρακάτω.
2.2.1.2. Descriptive / Περιγραφικό
Ένα περιγραφικό μοντέλο ( descriptive model) αναγνωρίζει πρότυπα
(patterns) ή σχέσεις (relations) που υπάρχουν στα δεδομένα.Αντίθετα από το
προβλεπτικό, το περιγραφικό μοντέλο λειτουργεί σαν ένα μέσο που διερευνά τις
ιδιότητες των δεδομένων που εξετάζονται, όχι να προβλέπει νέες ιδιότητες.
2.2.2. Τεχνικές από Προγνωστικά Μοντέλα
2.2.2.1. Classification
Η Κατηγοριοποίηση /Classification απεικονίζει ένα σύνολο δεδομένων σε
προκαθορισμένες ομάδες, τις οποίες τις καλούμε συχνά κατηγορίες ή κλάσεις.
Η κατηγοριοποίηση είναι μια από τις συνηθέστερες εργασίες Εξόρυξης
Δεδομένων. Αναφέρεται συχνά σαν εποπτευμένη μάθηση, επειδή οι κατηγορίες-
κλάσεις καθορίζονται πριν ακόμη εξεταστούν τα δεδομένα. Οι αλγόριθμοι
κατηγοριοποίησης απαιτούν οι κατηγορίες να ορίζονται με βάση τις τιμές των
γνωρισμάτων των δεδομένων. Σε ένα από τα γνωρίσματα καταγράφεται η
κατηγορία των αντικειμένων.
Ένα παράδειγμα συνόλου δεδομένων, κατάλληλο για κατηγοριοποίηση,
είναι τα στοιχεία αιτήσεων χορήγησης τραπεζικών δανείων. Στα γνωρίσματα
καταγράφονται τα στοιχεία των πελατών, όπως ηλικία, οικονομική κατάσταση
κλπ. και σε ένα γνώρισμα αναφέρεται το εάν εγκρίνεται ή απορρίπτεται το
δάνειο. Η έγκριση ή η απόρριψη εξαρτάται από τα στοιχεία του κάθε πελάτη. Με
την κατηγοριοποίηση δημιουργείται ένας μηχανισμός υπολογισμού της
κατηγορίας του κάθε αντικειμένου από τα υπόλοιπα γνωρίσματα του. Στο
παράδειγμα με τα τραπεζικά δάνεια, ένα σύνολο κανόνων, οι οποίοι ορίζουν για
ποιες ηλικίες, εισοδήματα και άλλα στοιχεία εγκρίνεται το δάνειο, ενώ για ποιες
όχι, είναι ένα μοντέλο κατηγοριοποίησης.
16. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 16
Το μοντέλο δεν είναι υποχρεωτικά κανόνες, αλλά μπορεί να έχει άλλες
μορφές, όπως πχ να συνίσταται σε ένα πλέγμα κόμβων και συνδέσεων ενός
νευρωνικού δικτύου.
Αφού δημιουργηθεί το μοντέλο, μπορεί να χρησιμοποιηθεί για τη
διατύπωση προβλέψεων. Αξίζει βέβαια να σημειωθεί, ότι αυτό που θα
προβλεφθεί είναι η κατηγορία του κάθε αντικειμένου, δηλαδή μια ονομαστική
τιμή.
2.2.2.2. Regression
Η Παλινδρόμηση / Regression είναι μια διαδικασία σχετική με την
κατηγοριοποίηση, ωστόσο έχει ώς στόχο την μάθηση ή αλλιώς η εκπαίδευση
(training) μιας συνάρτησης, η οποία απεικονίζει ένα αντικείμενο σε μία
πραγματική μεταβλητή. Πρόκειται για μια, επίσης, προγνωστική μέθοδο.
Προσπαθεί ουσιαστικά με βάση κάποιες ανεξάρτητες μεταβλητές (independent
variables) να προβλέψει τις τιμές μιας εξαρτημένης μεταβλητής (dependent
variable).
Οι αλγόριθμοι παλινδρόμησης εξετάζουν τις σχέσεις μεταξύ του
γνωρίσματος-στόχου και των υπόλοιπων γνωρισμάτων και κατασκευάζουν έναν
μηχανισμό υπολογισμού. Η διαφορά με την κατηγοριοποίηση είναι ότι στην
περίπτωση της παλινδρόμησης υπολογίζονται αριθμητικές τιμές. Ένα μοντέλο
που υπολογίζει το ύψος των ανθρώπων από άλλα στοιχεία τους, όπως το ύψος
των γονέων τους, τις διατροφικές συνήθειες τους κλπ. είναι ένα μοντέλο
παλινδρόμησης.
2.2.2.3. Time Series Analysis
Η Ανάλυση Χρονολογικών Σειρών / Time series analysis), εξετάζει την
τιμή ενός γνωρίσματος σε συνάρτηση με το χρόνο. Οι τιμές συνήθως
λαμβάνονται σε ίσα χρονικά διαστήματα (ημερήσια, εβδομαδιαία, ωριαία, κοκ).
Για την αναπαράσταση των χρονοσειρών χρησιμοποιείται ένα διάγραμμα
17. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 17
χρονοσειρών.
Υπάρχουν μεγέθη τα οποία παρουσιάζουν μια χρονική εξέλιξη. Η εξέλιξη
αυτή αναπαρίσταται με τη βοήθεια χρονοσειρών, δηλαδή ακολουθιών σημείων
που αποτελούν μετρήσεις του μεγέθους στη διάρκεια του χρόνου. Οι μέθοδοι
ανάλυσης χρονοσειρών αναλύουν τα δεδομένα διαφορετικών χρονικών
περιόδων και εξάγουν χρήσιμα συμπεράσματα για το φαινόμενο.
Εάν για παράδειγμα, οι τιμές παρουσιάζουν κανονικότητες στις
διακυμάνσεις τους στη διάρκεια του χρόνου, τότε ο εντοπισμός αυτών των
διακυμάνσεων μπορεί να χρησιμοποιηθεί για τη διατύπωση προβλέψεων. Το
συνηθέστερο παράδειγμα χρονοσειρών είναι ο δείκτης τιμών του
χρηματιστήριου. Η ανάλυση χρονοσειρών έχει μελετηθεί σε μεγάλο βαθμό στα
πλαίσια του κλάδου της Οικονομετρίας. Σε μια επιχείρηση, αλλά και σε μια χώρα,
υπάρχει μεγάλος αριθμός ποσοτήτων που εξελίσσονται χρονικά. Η
παρακολούθηση της χρονικής διακύμανσης των πωλήσεων μιας επιχείρησης
είναι παράδειγμα μιας τέτοιας ποσότητας. Άλλα παραδείγματα είναι η
διακύμανση του ύψους αποθεμάτων σε μια αποθήκη και η διακύμανση του
ύψους των συναλλαγών σε μια τράπεζα.
2.2.2.4. Prediction
Η Πρόβλεψη / Prediction μπορεί να θεωρηθεί ως ένα είδος
κατηγοριοποίησης. Πολλές από τις πρακτικές εφαρμογές εξόρυξης γνώσης
μπορούν να θεωρηθούν σαν πρόβλεψη μελλοντικών καταστάσεων με γνώση
των προηγούμενων και των σημερινών δεδομένων. Η διαφορά είναι ότι ως
πρόβλεψη θεωρείται περισσότερο το να δίνεται τιμή σε μια μελλοντική
κατάσταση παρά σε μια τρέχουσα.
2.2.3. Τεχνικές από Περιγραφικά Μοντέλα
18. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 18
2.2.3.1. Clustering
Η Συσταδοποίηση / Clustering, είναι η εργασία του μερισμού ενός
συνόλου δεδομένων σε ομάδες ομοίων στοιχείων , τις οποίες ονομάζουμε
clusters. Τα δεδομένα ομαδοποιούνται σε σύνολα με βάση κάποιο κριτήριο
ομοιότητας. Η συσταδοποίηση δεν βασίζεται σε προκαθορισμένες κλάσεις. Η
Ανάλυση Συστάδων είναι και αυτή μια πολύ συνηθισμένη εργασία Εξόρυξης
Δεδομένων και ανήκει στην κατηγορία εργασιών μη επιβλεπόμενης μάθησης.
Στόχος τους είναι να μεγιστοποιήσουν την ομοιότητα εντός των ομάδων
και την ανομοιότητα μεταξύ των ομάδων. Αυτό σημαίνει ότι τα αντικείμενα της
μιας ομάδας πρέπει να μοιάζουν μεταξύ τους και να μην μοιάζουν με τα
αντικείμενα των άλλων ομάδων. Αφού σχηματιστούν οι ομάδες, μπορούν να
θεωρηθούν ως κατηγορίες και να δημιουργηθούν κανόνες που να τις
περιγράφουν.
Ένα πολύ συνηθισμένο παράδειγμα εφαρμογής της Ανάλυσης Συστάδων
είναι η διαχείριση παραπόνων και αιτημάτων πελατών. Τα κέντρα κλήσεων των
επιχειρήσεων γίνονται καθημερινά αποδέκτες χιλιάδων μηνυμάτων πελατών, οι
οποίοι ζητούν οδηγίες ή τεχνική υποστήριξη, διατυπώνουν παράπονα κλπ. Η
κατάλληλη ομαδοποίηση αυτών των μηνυμάτων διευκολύνει τη διαχείριση τους,
επιτρέπει την ορθή δρομολόγηση τους χωρίς σφάλματα και καθυστερήσεις, και
βοηθά την επιχείρηση να κατανοήσει καλύτερα τις ανάγκες των πελατών της,
έτσι ώστε να προβεί στις αναγκαίες ενέργειες.
Η διαφορά με την Κατηγοριοποίηση έγκειται στο γεγονός ότι δεν
υπάρχουν κατηγορίες, οι οποίες είναι εκ των προτέρων γνωστές, δεν υπάρχει
δηλαδή ένα γνώρισμα στο οποίο καταγράφεται η κατηγορία των αντικειμένων.
Οι αλγόριθμοι της Ανάλυσης Συστάδων προσπαθούν να δημιουργήσουν ομάδες
αναζητώντας ομοειδή αντικείμενα.
2.2.3.2. Summarization
19. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 19
Η Παρουσίαση Συνόψεων / Summarization, απεικονίζει τα δεδομένα σε
υποσύνολα τους με συνοδευτικές απλές περιγραφές. Εξάγει ή παράγει
αντιπροσωπευτικές πληροφορίες σχετικά με τις βάσεις δεδομένων. Αυτό γίνεται
ανακτώντας, στην πραγματικότητα, τμήματα από δεδομένα. Εν ολίγοις, η
παρουσίαση συνόψεων χαρακτηρίζει τα περιεχόμενα της βάσης δεδομένων .
2.2.3.3. Association Rules
Οι Κανόνες Συσχέτισης / Association Rules ή αλλίως η ανάλυση
συσχέτισης, αναφέρεται στη διαδικασία εκείνη της εξόρυξης γνώσης που
αποκαλύπτει συσχετίσεις μεταξύ των δεδομένων. Η Ανάλυση Κανόνων
Συσχέτισης θεωρείται το πιο γνήσιο τέκνο της Εξόρυξης Δεδομένων, καθώς οι
άλλες μέθοδοι προέρχονται από τη Μηχανική Μάθηση, τη Στατιστική κλπ.
Στόχος των Κανόνων Συσχέτισης είναι η ανακάλυψη σχέσεων μεταξύ τιμών των
γνωρισμάτων, που εμφανίζονται συχνά μαζί.
Για παράδειγμα στις πωλήσεις ενός σούπερ μάρκετ, για κάθε συναλλαγή
πώλησης (απόδειξη λιανικής) καταγράφονται τα προϊόντα που αγόρασε ο
καταναλωτής. Το ερώτημα είναι εάν υπάρχουν προϊόντα τα οποία πωλούνται
συχνά μαζί, εάν υπάρχουν δηλαδή ομάδες καταναλωτών που επιλέγουν να
αγοράσουν κοινά προϊόντα. Οι Κανόνες Συσχέτισης ανακαλύπτουν τέτοιες
σχέσεις και τις ποσοτικοποιούν, καταγράφοντας ποσοστά εμφάνισης τους.
2.2.3.4. Sequence Discovery
20. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 20
Η Ανακάλυψη Ακολουθιών / Sequence Discovery χρησιμοποιείται για να
καθοριστούν σειριακά πρότυπα στα δεδομένα. Αυτά τα πρότυπα βασίζονται σε
μια χρονική ακολουθία ενεργειών. Αυτά τα πρότυπα είναι παρόμοια με τις
συσχετίσεις στο ότι συσχετίζονται τα δεδομένα που εξάγονται με τη διαφορά ότι
η συσχέτιση τους αυτή βασίζεται στο χρόνο.
ΚΕΦΑΛΑΙΟ 3Ο
: Αλγοριθμικά Μοντέλα Εξόρυξης Δεδομένων
3.1. Classifiaction Algorithms
3.1.1. ID3
21. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 21
Ο ΙD3 (Iterative Dichotomiser 3), αποτελεί έναν από τους βασικότερους
αλγορίθμους ταξινόμησης, ο οποίος λειτουργεί παράγοντας δέντρα αποφάσεων
ακολουθώντας μια αναλυτική προσέγγιση. Παρουσιάστηκε ολοκληρωμένα από
τον J.R. Quinlan το 1986, μετά από μια πλήρη και πρωτοποριακή μελέτη.
Ο αλγόριθμος αυτός προτιμά τα μικρότερα δέντρα απόφασης, παρά τα
μεγαλύτερα. Παρατηρούμε έτσι ότι, βασίζεται σε μία απλοποιημένη μορφή της
επιστημονικής αρχής του Occam’s Razor (Ξυράφι του Όκαμ). Παρόλα αυτά δεν
παράγει μόνο τα μικρότερα δέντρα και για αυτό το λόγο είναι ευρετικός.
Ο ID3 δέχεται ως είσοδο, ένα σύνολο εκπαίδευσης, του οποίου οι
εγγραφές έχουν προ-ταξινομηθεί σε κατηγορίες. Αρχικά θεωρεί δύο διακριτές
τιμές κλάσης, την Positive (Θετική) και την Negative (Αρνητική), αν και βέβαια
μπορεί να επεκταθεί και σε παραπάνω από δύο. Στην συνέχεια χρησιμοποιεί
ένα υποσύνολο εγγραφών και έτσι προκύπτει ένα δέντρο, το οποίο ταξινομεί το
αρχικό σύνολο εκπαίδευσης. Η ταξινόμηση αυτή ελέγχεται ως προς την ακρίβεια
της και διακρίνονται δύο περιπτώσεις :
o Αν η ταξινόμηση έγινε σωστά, τότε το δέντρο είναι αποδεκτό και
τερματίζεται ο Αλγόριθμος
o Αν η ταξινόμηση έγινε λανθασμένα, τότε προστίθενται και άλλες εγγραφές
στο υποσύνολο και η διαδικασία επαναλαμβάνεται μέχρι όλες οι εγγραφές
να ταξινομηθούν σωστά.
Βασικοί παράμετροι της μεθόδου είναι :
o το ποσοστό εγγραφών του υποσυνόλου και ο ρυθμός εγγραφών.
o το κριτήριο επιλογής κάθε κόμβου, από τον οποίο θα γίνει η διακλάδωση.
Ως κριτήριο επιλογής χρησιμοποιείται η Εντροπία, η οποία εκτιμά το πόσο
λανθασμένα χωρίζεται κάθε φορά το σύνολο εκπαίδευσης, με βάση το
συγκεκριμένο πεδιο. Ουσιαστικά ένα πεδίο με την μικρότερη Εντροπία, χωρίζει
καλύτερα το σύνολο εκπαίδευσης.
Συνοπτικά ο ID3:
1. Επιλέγει πεδίο για ρίζα δέντρου και σχηματίζει διακλάδωση με ένα φύλλο
για κάθε διαφορετική τιμή του πεδίου. Έτσι κατασκευάζει ένα δέντρο.
2. Το δέντρο απόφασης χρησιμοποιείται για ταξινόμηση του συνόλου
εκπαίδευσης :
22. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 22
a. Αν οι εγγραφές που ταξινομούνται σε ένα συγκεκριμένο φύλλο
ανήκουν στην ίδια κλάση, τότε ονομάζουμε το φύλλο με αυτήν την
κλάση.
b. Αν κάποιο φύλλο δεν έχει ονομαστεί με κάποια κλάση, ξαναγίνεται
επιλογή πεδίου, το οποίο όμως δεν έχει επιλεχθεί στο μονοπάτι
«φύλλο – ρίζα», όπου γίνεται διακλάσωση του φύλλου με ένα φύλλο-
κόμβο του νέου πεδίου και ξανα γίνεται η ταξινόμηση από την αρχή.
3. Όταν έχουν ονομαστεί όλα τα φύλλα με κάποια κλάση, τότε ο αλγόριθμος
τερματίζει.
3.1.2. C4.5
Ο αλγόριθμος αυτός αποτελεί εξέλιξη του ID3 και είναι πλέον από τις πιο
γνωστές τεχνικές στο χώρο του Machine Learning / Μηχανικής Μάθησης.
Αναπτύχθηκε πάλι από τον J.R. Quinlan 7 χρόνια αργότερα (1993). Τα βασικά
πλεονεκτήματα του σε σχέση με τον πρόγονο του ID3, είναι :
o Δυνατότητα επεξεργασίας και διαχείρισης ποσοτικών κριτιρίων.
o Δυνατότητα διαχείρισης δεδομένων με ελλειπή στοιχεία.
o Αποφυγή της μεγάλης προσαρμογής στα δεδομένα του δείγματος
εκμάθησης (overfitting)
Ο C4.5 ξεκινά με ένα σύνολο / δείγμα εκμάθησης και εν συνεχεία
αναπτύσσει ένα σύνολο κανόνων απόφασης για την ταξινόμηση εναλλακτικών
δραστηριοτήτων. Οι κανόνες αυτοί οργανώνονται και δημιουργούν ένα δέντρο
απόφασης. Κάθε κόμβος του δέντρου περιλαμβάνει ένα κριτήριο αξιολόγησης
βασισμένο στις συνθήκες που καθορίζουν τα κλαδιά του δέντρου. Με την σειρά
τους τα φύλλα, υποδεικνύουν την κατηγορία που θα ενταχθεί η εναλλακτική
δραστηριότητα. Τα παραπάνω , αποτελούν βήματα μιάς επαναληπτικής
διαδικασίας που εφαρμόζει ο C4.5, ώστε να δημιουργήσει ορθά δέντρα
απόφασης – ταξινόμησης.
23. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 23
3.1.3. Support Vector Machine
Η Support Vector Machine αποτελεί μια νέα μέθοδο για την ταξινόμηση,
γραμμικών και μη, δεδομένων. Ουσιαστικά αποτελεί έναν αλγόριθμο που
λειτουργεί βασισμένος σε μια μη γραμμική χαρτογράφηση για να μετασχηματίσει
τα αρχικά δεδομένα εκπαίδευσης σε μια υψηλότερη διάσταση, κατά την οποία
αναζητείται ένα «όριο απόφασης» για τον διαχωρισμό πλειάδων μεταξύ των
τάξεων (Linear Optimal Separating Hyperlane). Εξυπηρετεί :
o Κατηγοριοποίηση κειμένων και υπερκειμένων.
o Ταξινόμηση εικόνων
o Αναγνώριση γραφικών χαρακτήρων
o Ταξινομήσεις σε άλλους επιστημονικούς κλάσους (Βιολογία, Ιατρική)
Με μία σωστή μη γραμμική χαρτογράφηση σε μία πολύ μεγάλη διάσταση,
μπορούν πάντα να διαχωριστούν από ένα hyperlane, δεδομένα από δύο
κατηγορίες. H SVM βρίσκει αυτό το hyperlane με την χρήση support vectors
(διανύσματα υποστήριξης : βασική εκπαίδευση πλειάδων) και margins
(περιθώρια , ορισμένα από τους φορείς υποστήριξης).
3.1.4. Σύγκριση και Συμπεράσματα
Ο ID3 αποτελεί έναν από τους βασικότερους αλγορίθμους ταξινόμησης
ώς η 1η υλοποίηση του Quinlan στα Δέντρα Απόφασης. Κύρια χρήση του
συναντάμε κυρίως στον τομέα του Machine Learning και του Natural Language
Processing (Επεξεργασία της Φυσικής Γλώσσας).
Ο C4.5, που αποτελεί εξέλιξη του ID3, χρησιμοποιείται συχνότερα και
κυρίως στην ταξινόμηση. Παράλληλα λόγω των πλεονεκτημάτων που
προσφέρει είναι στην 1η θέση ανάμεσα στους Αλγορίθμους Ταξινόμησης.
Ο SVM ως ευρέως χρησιμοποιούμενος αλγόριθμος προσφέρει γραμμική
και μη, ανάλυση δεδόμενα για ταξινόμηση και ανάλυση παλινδρόμησης.
Συνολικά η χρήση των αλγορίθμων με βάση τα Δέντρα Αποφάσεων προσφέρει
μια πιο κατανοητή μορφή ανάγνωσης γνώσης από τους χρήστες, ενώ η χρήση
του SVM προσφέρει υψηλή ακρίβεια. Η επιλογή ανάμεσα σε αυτούς γίνεται
όμως με βάση τα δεδομένα.
24. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 24
3.2. Clustering Algorithms
3.2.1. K-Means
O Κ-Means αλγόριθμος διαχωρίζει τα δεδομένα του συνόλου εγγραφών-
εκπαίδευσης σε k ομάδες, όπου ο χρήστης καθορίζει τον αριθμό k. Αποτελεί μια
λειτουργία βασισμένη σε διαδοχικές επαναλήψεις, μέσω των οποίων τα
δεδομένα κατατάσσονται σε κάποια ομάδα με βάση την ομοιότητα που
παρουσιάζουν με το μέσο αυτής της ομάδας. Ουσιαστικά χρειαζόμαστε αρχικά
κάποιο αντιπροσωπευτικο δείγμα (mean), που αποτελεί μέση τιμή – περιγραφή,
αλλά και «κέντρο βάρους» της κάθε k ομάδας. Τα βήματα του K-Means είναι :
o Προσδιορίζουμε το k
o Βρίσκουμε k αντιπροσωπευτικά δείγματα
o Επαναλαμβάνουμε
o Βρίσκουμε την απόσταση κάθε εγγραφής από τα «κέντρα»
o Κάθε εγγραφή ανήκει σην ομάδα του πιο κοντινού της «κέντρου».
o Υπολογίζω νέα «κέντρα».
o Επαναλμβάνω μέχρι να μην γίνονατι αλλαγές.
3.2.2. K-Modes
Ο Κ-Modes αλγόριθμος, αποτελεί μια βελτιωμένη έκδοση του K-Means.
Είναι ένας αλγόριθμος κατηγοριοποίησης δεδομένων, ο οποίος πραγματεύεται
και εφαρμόζεται σε κατηγορικά δεδομένα. Ο αλγόριθμος εκκινεί ζητώντας από
τον χρήστη να καθορίσει έναν αριθμό ομάδων που επιθυμεί να εξάγει. Κάθε
ομάδα (cluster), έχει ένα κέντρο – μέσο (mode). Για κάθε αντικείμενο κάνουμε
σύγκριση με τις ομάδες και τα κέντρα, ως προς την ομοιότητα και το εισάγουμε
στην ομάδα με το κοντινότερο κέντρο. Ακολουθεί ενημέρωση στο κέντρο της
ομάδας. Έπειτα η διαδικασία επαναλαμβάνεται ώστε να επαναπροσδιοριστούν
τα κέντρα των ομάδων και οι αποστάσεις των στοιχείων από αυτά, ενώ ο
αλγόριθμος θα λήξει όταν πλεόν κανένα αντικείμενο δεν αλλάζει ομάδα.
3.2.3. ΕΜ
O EM αλγόριθμος, εκτιμά τα δεδομένα που λείπουν (E-Steps) και έπειτα
τις παραμέτρους του μοντέλου με την μεγαλύτερη ομοιότητα(M-Steps). Η
προσέγγιση αυτή απαιτεί από την συλλογή αντικειμένων και τις ομάδες τους να
αναπαρίστανται ώς ένα στατιστικό μοντέλο. Τα δεδόμενα θεωρούνται σαν ένα
τυχαίο δείγμα από ένα μείγμα πιθανοτικών κατανομών, οι οποίες καθορίζουν και
τις ομάδες.
3.2.4. Denclue
Ο Denclue αλγόριθμος χρησιμοποιεί συναρτήσεις (influence functions)
για την μοντελοποίηση του αντίκτυπου ενός αντικειμένου μέσα σε έναν χώρο.
Μετρά ουσιαστικά την πυκνότητα του χώρου, σαν άρθροισμα των συναρτήσεων
από όλα τα αντικείμενα. Τέλος οι ομάδες (εδώ λέγονται πόλοι πυκνότητας)
καθορίζονται από το τοπικό μέγιστο της ολικής συνάρτησης Πυκνότητας.
25. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 25
3.2.5. Σύγκριση και Συμπεράσματα
Ο Κ-Μeans είναι ο αλγόριθμος που χρησιμοποιείται συχνότερα στην
συσταδιοποίηση. Παρόλα αυτά το γεγόνος ότι εφαρμόζεται μόνο πάνω σε
αριθμητικά δεδομένα (numeric data) τον περιορίζει αρκετά.
Ο Κ-Nodes είναι ένας βελτιωμένος K-Means αλγόριθμος και μπορεί να
εφαρμοστεί τόσο σε μη-αριθμητικά(non-numeric) όσο και κατηγορικά
(categorical) δεδομένα, καταρρίπτοντας έτσι τον περιορισμό της K-Means.
O EM χρησιμοποιείται αρκετά συχνά στην συσταδιοποίηση, έχει την
προτίμηση των χρηστών καθώς ασχολείται με τα «χαμένα» δεδομένα από την
μήτρα δεδομένων.
Ο Denclue ως μια νέα προσέγγιση, αφορά μια γρήγορη εφαρμογή της
συσταδιοποίησης.
3.3. Association Rule Algorithms
3.3.1. Apriori
Ο Αλγόριθμος Apriori είναι ο βασικότερος αλγόριθμος των κανόνων
συσχέτισης και παρουσιάστηκε το 1994. Δέχεται ως είσοδο ένα σύνολο αγορών
(transactions) που αποτελεί και το σύνολο εκπαίδευσης, Κάθε αγορά είναι
ουσιαστικά μια λίστα(itemset) από αγαθά (items) που αγοράστηκαν μαζί. Για
κάθε αγορά υπάρχει ένας και μοναδικός κωδικός αναγνωώρισης TID
(transaction identifier).
O Apriori εντοπίζει τις μεγάλες λίστες προϊόντων έχοντας πρόσβαση
πολλές φορές στο σύνολο εκπαίδευσης. Κατά την 1η προσπέλαση υπολογίζεται
η υποστήριξη κάθε προϊόντος ξεχωριστά και στην συνέχεια καθορίζεται ποια
από αυτές αποτελούν μεγάλες λίστες. Σε κάθε επόμενη προσπέλαση αρχίζουμε
με τις λίστες που βρήκαμε στην προηγούμενη προσπέλαση. Έτσι δημιουργούμε
βήμα βήμα υποψήφιες μεγαλύτερες λίστες και μετράμε την ακριβή υποστήριξη
τους, ώστε να καθορίσουμε ποια από αυτές είναι «σίγουρα» μεγάλες λίστες
προϊόντων.Ο αλγόριθμος τερματίζει όταν δεν υπάρχουν πλέον υποψήφιες
μεγάλες λίστες. Βέβαια κριτήριο της αποτελεσματικότητας του αλγορίθμου
αποτελεί η αποτελεσματικότητα εύρεσης μεγάλων λιστών.
3.3.2. Συμπεράσματα
Υπάρχουν αρκετοί αλγόριθμοι για την παραγωγή Κανόνων Συσχέτισης
(πχ Eclat, FP-Growth, κλπ) αλλά βασικότερος όλων είναι ο Apriori. Το
μειονέκτημα του να σκανάρει την Βαση Δεδομένων αρκετές φορές, προσδίδει
αρκετά υψηλή χρονική και χωρική πολυπλοκότητα. Όμως η ευκολία στην
κατανόηση και την εφαρμογή αλλά και η χρήση του σε μεγάλα στοιχεία
αντισταθμίζουν θετικά την αξιολόγηση του.
26. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 26
3.4. Bayesian Classification
3.4.1. Naïve Bayesian Classification
Η Bayesian κατηγοριοποίηση βασίζεται στην Στατιστική θεωρία
κατηγοριοποίησης του Bayes. Στοχεύει δηλαδή, στην κατηγοριοποίηση ενός
δείγματος, σε δεδομένες κατηγορίες, με βάση το μοντέλο πιθανότητας της
θεωρίας του Bayes, όπου κάθε κατηγορία χαρακτηρίζεται από μια πιθάνοτητα
παρατήρησης.
Η απλοποιημένη μορφή της κατηγοριοποίησης αυτής, είναι η Naïve
Bayesian Classification, κατά την οποία η επίδραση ενός γνωρίσματος
(attribute) σε μία δεδομένη κατηγορία, είναι ανεξάρτητη από τις τιμές των άλλων
γνωρισμάτων. Αυτή η υπόθεση απλοποιεί τους υπολογισμούς που εμπλέκονται
και καλείται «υπό συνθήκη ανεξαρτησία κατηγορίας» (conditional
independence).
Η απόδοση αυτού του είδους κατηγοριοποίησης είναι αρκετά υψηλή και
χαρακτηρίζεται από την μεγάλη ταχύτητα της διαδικασίας κατηγοριοποίησης σε
μεγάλες Βάσεις Δεδομένων. Αναλύοντας τη συνεισφορά κάθε ενός
«ανεξάρτητου» γνωρίσματος, καθορίζεται μία υπό συνθήκη πιθανότητα. Η
κατηγοριοποίηση γίνεται με το συνδυασμό της συνέπειας που θα έχουν
διαφορετικά γνωρίσματα στην πρόβλεψη που γίνεται.
3.4.2. Bayesian Belief Networks
Τα Bayesian Belied Networks, αποτελούν έναν άλλο Bayesian
κατηγοριοποιητή. Είναι γραφικά μοντέλα, που επιτρέπουν την παρουσίαση των
εξαρτήσεων μεταξύ των υποσυνόλων των γνωρισμάτων, σε αντίθεση με τους
άλλους Bayesian κατηγοριοποιητές. Προσδιορίζουν, ουσιαστικά, τις
συνδεδεμένες υπό συνθήκη κατανομές πιθανότητας (Joint Conditional
Probability Distributions). Ένα Belief Network αποτελίεται από 2 στοιχεια :
o Ένας κατευθυνόμενος ακυκλικός γράφος, στον οποίο κάθε κόμβος
αντιπροσωπεύει μια τυχάια μεταβλητή και κάθε τόξο μια εξάρτηση
πιθανοτήτων, μια σχέση, δηλαδή, μεταξύ των τυχαίων μεταβλητών
o Ένας πίνακας υπό συνθήκη πιθανότητας (Conditional Probability Table)
για κάθε μεταβλητή
3.4.3. Συμπεράσματα
Ένα δίκτυο Bayes και γενικότερα μια Bayesian Κατηγοριοποίηση,
μοντελοποιεί τις σχέσεις μεταξύ χαρακτηριστικών με πολύ γενικό τρόπο.
O Naïve Bayesian κατηγοριοποιητής περιγράφει συγκεκριμένη κατηγορία
δικτύου που προϋποθέτει ανεξαρτησία υπό όρους. Η απλότητα του «Απλοϊκού»
διευκολύνει την εφαρμογή και απαιτεί λιγότερα δεδόμενα για ένα καλό
αποτέλεσμα, όμως πολλές φορές, λόγω της αρχικής του προϋπόθεσης δεν
μπορεί να λύσει κάποια προβήματα.
Τα Bayesian Belief Networks θα επιτρέψουν στον χρήστη να καθορίσει
στην πραγματικότητα ποια χαρακτηριστικά είναι υπό όρους ανεξάρτητα.
27. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 27
3.5. Σύνοψη και Συμπεράσματα
Η Εξόρυξη Δεδομένων αποτελεί έναν από τους πιο σημαντικούς τομείς
της εποχής μας, καθώς κατακλιζόμαστε ασταμάτητα από δεδομένα που
περιέχουν αρκετή πληροφορία, επί το πλείστον αχρείαστη. Η ανάγκη όμως για
γνώση μέσα από τα σύνολα δεδομένα είναι απαραίτητη και αποτελεί κοινό στόχο
για όλους τους τομείς(Επιστήμης, Μηχανικής, αλλά και των επιχειρήσεων).
Η έξυπνη, ωστόσο, ανάλυση των δεδομένων αυτών απότελει κρίσιμο και
πολύτιμο αγαθό, παρότι αποτελεί μια απαιτητική διαδικασία. Αυτό συμβαίνει
διότι, οι Δομές Δεδομένων είναι περίπλοκες και οι Βάσεις Δεδομένων είναι
γεμάτες από ακατέργαστη πληρόφορια.
Έτσι η χρήση μιας τεχνικής – μεθόδου – αλγορίθμου δεν είναι αρκετή και
απαιτείται μάλιστα συνδυασμός αυτών. Η επιλογή βέβαια αυτών των μεθόδων,
γίνεται βάση των διαθέσιμων δεδομένων, της ακρίβειας του αποτελέσματος και
του ρυθμού των διεργασιών.
28. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 28
ΚΕΦΑΛΑΙΟ 4Ο
: Εφαρμογή WEKA 3.8.5.
4.1. Εισαγωγή στο Weka
Ένα από τα πιο γνωστά συστήματα για την Εξόρυξη Δεδομένων είναι το
σύστημα WEKA, το οποίο αναπτύχθηκε από το Πανεπιστήμιο του Waikato στην
Νέα Ζηλανδία. Το WEKAαποτελεί ακρωνύμιο της φράσης Waikato Environment
for Knowledge Analysis.
Γραμμένο σε Java, το σύστημα αυτό παρέχει ευελιξία σε πολλούς
αλγορίθμους μάθησης και πολλές πλατφόρμες υπολογιστών, αποτελώντας και
αυτό με την σειρά του μια μεγάλη συλλογή αλγορίθμων μάθησης για θέματα
έξορυξης δεδομένων.
Μεσω μιας τεράστιας ποικιλίας εργαλείων που διαθέτει, ο χρήστης μπορεί
εύκολα να εισάγει μία βάση δεδομένων και να εξάγει για αυτήν πληροφορίες,
εφαρμόζοντας διάφορες τεχνικές ταξινόμησης.Αν και εστιάζει ως σύστημα,
κυρίως, στους κατηγοριοποιητές (classifiers) και στα φίλτρα (filters) προ-
επεξεργασίας δεδομένων, περιλαμβάνει όμως εξίσου και εφαρμογές
αλγορίθμων μάθησης κανόνων συσχέτισης αλλά και ομαδοποίησης δεδομένων
για τα οποία δεν προσδιορίζεται αξία κάποιας κλάσης.
Αποτελεί ένα λογισμικό ανοιχτού κώδικα και στην συνέχεια θα
διαπιστώσουμε πως μπορούμε να εξάγουμε πληροφορίες από τα δεδομένα που
θα εισάγουμε.
Βημα 1: Εκκίνηση. Χρησιμοποιούμε τον Explorer
29. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 29
Βημα 2: Πλέον εδώ χρειάζεται να εισάγουμε τα δεδομένα
που θέλουμε να προ-επεξεργαστούμε
Βημα 3: Eπιλέγουμε το πεδίο Choose File
30. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 30
Βημα 4: Επιλέγουμε το αντίστοιχο αρχείο μορφης .csv. Για την εφαρμογή έχω
επιλέξει ένα δείγμα από γυαλιά, η σύσταση των οποίων αποτελείται από 9
φυσικά στοιχεία και οι διάφορες μίξεις των στοιχείων αποδίδει συγκεκριμένο
χρώμα σε κάθε κομμάτι γυαλί .
Βημα 5: Πλέον έχουμε μπροστά στην οθόνη μας, τον πίνακα δεδομένων, από
τον οποίο εμφανίζονται οι ονομασίες του εκάστοτε πεδίου τιμών.
31. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 31
4.2. Προ-επεξεργασία και Οπτικοποίηση
Στην ενότητα αυτή και έχοντας ήδη εισάγει τα δεδομένα στην πλατφόρμα Weka,
με σκοπό να τα προ-επεξργαστεί. Σε αυτό βοηθά και μια πρώτη σχηματική
οπτικοποίηση των τιμών των χαρακτηριστικών (attributes) των δεδομένων.
Βημα 6:
Πατώντας στο πεδίο Na, βλέπουμε μία σχηματική αναπαράσταση με βάση ώς
βασικό κριτήριο. Για αυτό μπορεί κανείς να παρατηρήσει βασικά στοιχεία όπως
το πλήθος στοιχείων (214) , η ελάχιστη τιμη (10.73), η μέγιστη (17.38), το κέντρο
των τιμών αυτών (13.408) και ακόμα και το ποσοστό μοναδικότητας μεταξύ των
στοιχείων.Παράλληλα απεικονίζονται και άλλα attributes για το πεδίο αυτό.
Το ίδιο μπορούμε να διακρίνουμε για κάθε στοιχείο που επιλέγουμε.
32. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 32
Βημα 7 :Στην περίπτωση που το πεδίο δεν αποτελείται από αριθμους, αλλά από
ονόματα (Nominal), τότε υπάρχει μια μικρή διαφόροποίηση ως προς τα
διαθέσιμα attributes. Εδώ για παράδειγμα, πέραν του τύπου και του πλήθους,
βλέπω τις 6 διαφορετικές τιμές χρωμάτων γυαλιού, το πλήθος τους μέσω της
μεταβλητής Count και το βάρος τους μέσω της μεταβλητής Weight.
Βημα 8: Τέλος, πατώντας “Visualise All” μπορώ να οπτικοποιήσω σχηματικά
όλα τα πεδία μαζί σε ένα παράθυρο
33. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 33
4.3. Αλγοριθμικά Μοντέλα
Πέραν το πεδίου της Προ-επεξεργασίας, υπάρχουν και οι ενότητες που
μπορούμε να κάνουμε ταξινόμηση κάθε μορφής των δεδομένων.
Βήμα 8: Η ενότητα Classify περιέχει όλους τους αλγορίθμους
Κατηγοριοποίησης. Συγκεκριμένα το πρόγραμμα έχει επιλεγμένη μια μέθοδο
ZeroR. Πατώντας το Choose εμφανίζονται όλα τα αλγοριθμικά μοντέλα
Κατηγοριοποίησης
Βημα 9: Βλέπουμε γνωστές κατηγορίες όπως Bayes, Trees, Functions.
34. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 34
Βήμα 10: Η ενότητα Cluster περιέχει όλους τους αλγορίθμους Συσταδιοποίησης.
Συγκεκριμένα το πρόγραμμα έχει επιλεγμένη την μέθοδο EM. Πατώντας το
Choose εμφανίζονται όλα τα αλγοριθμικά μοντέλα Συσταδιοποίησης.
Βημα 11: Βλέπουμε γνωστές κατηγορίες όπως η K-MEANS.
35. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 35
Βήμα 12: Η ενότητα Associate περιέχει όλους τους αλγορίθμους Κανόνων
Συσχέτισης. Συγκεκριμένα το πρόγραμμα έχει επιλεγμένο τον Apriori
4.4. Εφαρμογή και Εξαγωγή Δέντρου Απόφασης
Bήμα 1 : Επιλέγω Classify, και από αλγορίθμους τον J48. Έπειτα πατάω Start
και βέπω τα αποτελέσματα του Αλγορίθμου.
36. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 36
Βημα 2 : Παρατηρώ το τρόπο που γίνεται η ταξινόμηση. Στην 2η
φωτογραφία
παρατηρώ ότι το αποτέλεσμα σωστής ταξινόμησης είναι 66.8224%
37. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 37
Βημα 3: Τέλος λαμβάνω και τον τελικό πίνακα ταξινόμησης
Βημα 4: Πατώντας δεξί κλικ στην διενέργεια του αλγορίθμου και μετά
Visualisation Tree θα εξάγω το Δέντρο Απόφασης.
38. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 38
Βημα 5 : Το δέντρο απόφασης με βάση τον J48
4.5. Εφαρμογή και Εξαγωγή Συστάδων
Bήμα 1 : Επιλέγω Cluster, και από αλγορίθμους τον K- Mean και αυτόματα
επιλέγεται μία συστάδα (μπορώ να επιλέξω όσες πιστεύω ότι χρειάζεται).
Έπειτα πατάω Start και βέπω τα αποτελέσματα του Αλγορίθμου
.
39. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 39
Βημα 2 : Παρατηρώ το τρόπο που γίνεται η ταξινόμηση. Στην 2η
φωτογραφία
παρατηρώ ότι το αποτέλεσμα για το 1 cluster είναι 59%.
40. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 40
Βημα 3: Πατώντας δεξί κλικ στην διενέργεια του αλγορίθμου και μετά
Visualisation Cluster Assignments, θα εξάγω μια απεικόνιση των Συστάδων.
4.6. Εφαρμογή και Εξαγωγή Γράφου
Bήμα 1 : Επιλέγω Classify, και από Αλγορίθμους τον Bayesian Networks.
Έπειτα πατάω Start και βλέπω τα αποτελέσματα του Αλγορίθμου
41. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 41
Βημα 2 : Παρατηρώ το τρόπο που γίνεται η ταξινόμηση.
Στην φωτογραφία παρατηρώ ότι το ποσοστό επιτυχίας είναι 70.5607%
42. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 42
Βημα 3: Τέλος λαμβάνω και τον τελικό πίνακα ταξινόμησης
Βημα 4: Πατώντας δεξί κλικ στην διενέργεια του αλγορίθμου και μετά
Visualisation Graph θα εξάγω μια απεικόνιση του Γράφου.
43. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 43
4.7. Συμπεράσματα
Παρατηρήσαμε την εκτέλεση ταξινόμησης ενός δείγματος με την χρήση
διαφορετικών αλγοριθμικών μοντέλων. Από τα αποτελέσματα μπορεί να
παρατηρήσει κανείς ότι για το συγκεκριμένο δείγμα, καλύτερα αποτελέσματα
έφερε η Bayesian Belief Networks με ποσοστό 70.5%.
Η πλατφόρμα WEKA ωστόσο διαθέτει και πολλές άλλες αλγοριθμικές
διαδικασίες με ποικίλες παραμέτρους για την καθεμία. Η εφαρμογή αυτών ίσως
μας επέφερε κάποια στιγμή και μεγαλύτερο ποσοστό επιτυχίας. Βέβαια η ουσία
είναι ότι δεν αποδεικνύεται έτσι ποια αλγοριθμική ταξινόμηση είναι καλύτερη από
την άλλη, αλλά ποια θα αποδώσει τα καλύτερα αποτελέσματα σε ένα
συγκεκριμένο σύνολο δεδομένων.
Έτσι με γνώμονα το «εκάστοτε δείγμα» θα υπάρχει ίσως και ένα
διαφορετικό «εκάστοτε αλγοριθμικό μοντέλο ταξινόμησης». Βέβαια η ταχύτητα
εξακρίβωσης μιας τέτοιας σύγκρισης, γίνεται πολύ πιο γρήγορα με εργαλεία
όπως το Weka, τα οποία μας βοηθούν να εξάγουμε πληροφορίες, από σύνθετα
και πολύπλοκα δεδόμενα σε πολύ μικρό χρονικό διάστημα.
ΚΕΦΑΛΑΙΟ 5Ο
: Σύνοψη
44. 5/10/21 // Κωνσταντίνος Βουκελάτος // Data Mining & Εφαρμογές // 44
Στην σύγχρονη κοινωνία, μια κοινωνία που ανέκαθεν κατακλυζόταν από
δεδομένα και πληροφορίες, η ραγδαία ακμή των τεχνολογιών της Πληροφορικής
και του Διαδικτύου, έχει επιφέρει συσσώρευση δεδομένων και κόπωση ακόμη
και στην καθημερινότητα. Ο όγκος των δεδομένων στις βάσεις δεδομένων
αυξάνεται με εκπληκτικό ρυθμό, την στιγμή που οι χρήστες αυτών των
δεδομένων επιζητούν από αυτά πιο εξειδικευμένες πληροφορίες.
Πλέον κάθε τομέας της κοινωνίας αυτής, καθώς και των επιστημών που
στοχεύουν στην εξέλιξη της, είναι συνυφασμένος με την Στατιστική Επεξεργασία
Πληροφοριών. Εκεί όπου δημιουργήθηκε και ο επιστημονικός κλάδος της
Εξόρυξης Δεδομένων και κυρίως της Ανακάλυψης Γνώσης από τα Δεδομένα
αυτά. Στο δίλημμα ωστόσο, αν αξίζει να ασχοληθούμε τόσο με Δεδομένα που
θα δημιουργήσουν νέα Δεδομένα και θα δημιουργηθεί ένας φαύλος κύκλος,
απαντά λοιπόν αυτός ο Νέος Τομέας.
Με την χρήση τεχνολογιών που ταξινομούν εύκολα και γρήγορα, χαοτικά
και τεράστια πακέτα δεδομένων, μπορούμε να εξάγουμε πληροφορίες,
βοηθώντας τον άνθρωπο και την κοινωνία να αξιοποιήσει πολλούς πόρους που
μέχρι πρότεινος δυσκολευόταν. Ωστόσο λόγω μεγάλης ποικιλίας συνόλων
δεδομένων, καθώς και Αλγοριθμικών Μοντέλων Ταξινόμησης, απαιτείται λογική
χρήση ενός συνδυασμού Συνόλου και Αλγορίθμων για την εξαγωγή της
απαιτούμενης γνώσης.
ΠΗΓΕΣ / ΒΙΒΛΙΟΓΡΑΦΙΑ
1. “Introduction to Algorithms” by Thomas H. Cormen, Charles E. Leiserson,
Ronald L. Rivest, and Clifford Stein
2. “Algorithms Unlocked” by Thomas H. Cormen
3. “The Algorithm Design Manual” by Steven S. Skiena
4. https://www.cs.waikato.ac.nz/ml/weka/