Development of a toolbox for data mining
Ανάπτυξη εργαλειοθήκης αλγορίθμων εξόρυξης δεδομένων

Διπλωματική εργασία
Συγγραφέας
Τσουγκούϊ, Μιχαήλ-Αντρέϊ
Ημερομηνία
2025-03-10Επιβλέπων
Μαστοροκώστας, ΠάριςΛέξεις-κλειδιά
Data mining ; Machine learning ; Python ; Kivy ; GUI ; Εξόρυξη δεδομένων ; Μηχανική μάθησηΠερίληψη
The subject of this thesis is the development of a Python application that implements basic algorithms for classification, regression, clustering, and association rules, all of which are considered fundamental in Data Mining. Existing implementations are integrated into a single app, accessible through a graphical environment with concise help of interactive nature. The field of Data Mining has roots in statistics, machine learning and pattern recognition theory. Ever since its emergence in the early 1990s, it has been at the epicenter of various methodologies that encompass it, notably KDD and CRISP-DM among many. The application supports loading a dataset, performing data cleaning and preprocessing, splitting the dataset for post-training evaluation, choosing one of the available data mining techniques, fitting the model, and, in the case of predictive models, the application of cross-validation as a final step (whether
for model selection or for model evaluation). Models used in both classification and regression include Decision Trees, Support Vector Machines (SVM), and k-Nearest Neighbors (KNN). Available classifiers include Naïve Bayes and Logistic Regression. Additionally, there is Linear Regression for the regression category. Available clustering algorithms are K-Means, DBSCAN, and Agglomerative clustering. These implementations are based on the Scikit-learn library, with the app essentially acting as a wrapper or interface with its own additional features. For Association Rules, the Apriori and FP-Growth algorithms can be used for the generation of frequent itemsets. KivyMD was used for the front-end, which is based on Kivy, a GUI library available in Python. An appendix is dedicated to concepts and equations that are fundamental to the various subjects discussed in this thesis.
Περίληψη
Το αντικείμενο της συγκεκριμένης εργασίας είναι ανάπτυξη μιας εφαρμογής Python που υλοποιεί βασικούς αλγόριθμους για ταξινόμηση, παλινδρόμηση, ομαδοποίηση και κανόνες συσχέτισης, οι οποίοι θεωρούνται θεμελιώδεις στην Εξόρυξη Δεδομένων. Οι υπάρχουσες υλοποιήσεις ενσωματώνονται σε μια ενιαία εφαρμογή, προσβάσιμη μέσω ενός γραφικού περιβάλλοντος με συνοπτική βοήθεια διαδραστικής φύσης. Ο τομέας της Εξόρυξης Δεδομένων έχει ρίζες στη στατιστική, τη μηχανική μάθηση και τη θεωρία αναγνώρισης προτύπων. Από την εμφάνισή του στις αρχές της δεκαετίας του 1990, ήταν στο επίκεντρο διαφόρων μεθοδολογιών, ιδίως των KDD και CRISP-DM μεταξύ πολλών άλλων. Η εφαρμογή υποστηρίζει τη φόρτωση ενός συνόλου δεδομένων, την εκτέλεση καθαρισμού και προεπεξεργασίας δεδομένων, τον διαχωρισμό του συνόλου για αξιολόγηση μετά την εκπαίδευση, την επιλογή μιας από τις διαθέσιμες τεχνικές εξόρυξης δεδομένων, την προσαρμογή του μοντέλου και, στην περίπτωση των μοντέλων πρόβλεψης, την εφαρμογή διασταυρούμενης επικύρωσης ως τελικό βήμα (είτε για επιλογή μοντέλου ή για αξιολόγηση). Τα μοντέλα που χρησιμοποιούνται τόσο στην ταξινόμηση όσο και στην παλινδρόμηση περιλαμβάνουν τα δέντρα απόφασης, τις μηχανές διανυσμάτων υποστήριξης (SVM) και τους k-πλησιέστερους γείτονες (KNN). Οι διαθέσιμοι ταξινομητές περιλαμβάνουν τον Απλοϊκό Bayes και την λογιστική παλινδρόμηση. Επιπρόσθετα, υπάρχει η γραμμική παλινδρόμηση για την κατηγορία παλινδρόμησης. Οι διαθέσιμοι αλγόριθμοι ομαδοποίησης είναι οι K-Means, DBSCAN και Agglomerative clustering. Οι συγκεκριμένες υλοποιήσεις βασίζονται στη βιβλιοθήκη Scikit-learn, με την εφαρμογή να λειτουργεί ουσιαστικά ως ενας «wrapper» ή μια διεπαφή, με τις δικές της πρόσθετες
δυνατότητες. Σχετικά με τους κανόνες συσχέτισης, οι αλγόριθμοι Apriori και FP-Growth μπορούν να χρησιμοποιηθούν για τη δημιουργία συχνών συνόλων στοιχείων. Το KivyMD χρησιμοποιήθηκε για το front-end, το οποίο βασίζεται στην Kivy, μια βιβλιοθήκη GUI διαθέσιμη στην Python. Ένα παράρτημα είναι αφιερωμένο σε θεμελιώδεις έννοιες και εξισώσεις πάνω στα οποία βασίζονται τα διάφορα θέματα που συζητούνται σε αυτή τη διατριβή.