Δείτε/ Ανοίξτε

Χαροκόπειο Πανεπιστήμιο
Τμήμα Πληροφορικής και Τηλεματικής
ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗ ΔΙΑΔΡΟΜΩΝ
ΚΑΙ ΑΝΙΧΝΕΥΣΗ
ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ ΚΑΙ
ΣΥΝΗΘΕΙΩΝ ΜΕ ΧΡΗΣΗ ΚΙΝΗΤΩΝ
ΤΗΛΕΦΩΝΩΝ
Πτυχιακή Εργασία
Του
Tarbakou Ivan
Α.Μ. 20945
Επιβλέπων: Βαρλάμης Ηρακλής,
Επίκ. Καθηγητής
Ταύρος, Οκτώβριος 2014
Χαροκόπειο Πανεπιστήμιο
Τμήμα Πληροφορικής και Τηλεματικής
ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗ ΔΙΑΔΡΟΜΩΝ
ΚΑΙ ΑΝΙΧΝΕΥΣΗ
ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ ΚΑΙ
ΣΥΝΗΘΕΙΩΝ ΜΕ ΧΡΗΣΗ ΚΙΝΗΤΩΝ
ΤΗΛΕΦΩΝΩΝ
Tarbakou Ivan
Α.Μ. 20945
Επιβλέπων : Βαρλάμης Ηρακλής,
Επίκ. Καθηγητής
Τριμελή επιτροπή:
Βαρλάμης Ηρακλής , Επίκ. Καθηγητής
Τσερπές Κωνσταντίνος , Λέκτορας
Δημητρακόπουλος Γεώργιος , Λέκτορας
Ταύρος, Οκτώβριος 2014
2
3
Περίληψη
Οι ανάγκες της σύγχρονης κοινωνίας αυξάνονται διαρκώς, και οι κινητές
συσκευές αποσκοπούν να τις καλύψουν. Ένα μεγάλο ποσοστό από αυτές
χρησιμοποιούν το λειτουργικό σύστημα Android , και έχουν ενσωματωμένους
αισθητήρες. Ένας από αυτούς είναι ο GPS sensor, με τη χρήση του οποίου είναι
δυνατό να καταγράφει η τοποθεσία του χρήστη.
Η παρούσα πτυχιακή εργασία έχει ως στόχο την βελτίωση της εφαρμογής
GPSTracker, η οποία θα αναγνωρίζει την δραστηριότητα του χρήστη εφαρμόζοντας
τεχνικές εξόρυξης δεδομένων σε δεδομένα κίνησης. Αυτό επιτυγχάνεται μέσω της
πρόσθεσης γεωχωρικών δεδομένων του χάρτη της Αθήνας, στην εφαρμογή.
Πιο συγκεκριμένα, στα δεδομένα που καταγράφονται από την εφαρμογή
προστίθεται παραπάνω πληροφορία που έχει να κάνει με την εύρεση του χρηστή
σχετικά με κάποια γεωγραφικά αντικείμενα. Και όπως παρατηρήθηκε, πραγματικά
βελτιώνει τα αποτελέσματα σε αρκετά μεγάλο βαθμό.
ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Εξόρυξη Δεδομένων, Εφαρμογή Android, Γεωχωρικά
δεδομένα
ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ: Αναγνώριση Δραστηριότητας, Κατηγοριοποίηση, Android,
Χάρτες Google, Spatialite, WEKA
4
5
Abstract
The needs of modern society are constantly increasing, and the mobile
devices are recruited to cover them. A large percentage of those are the Android
devices that have embedded sensors. One of these is the GPS sensor, which is used
for the user`s location record.
This thesis aims to improve application GPSTracker, which recognizes the
user`s activity by applying data mining techniques on the traffic data. This is
achieved by adding geospatial data of the map of Athens in the application.
More specifically, the data which are recorded by the application is
combined with extra information concerning the user's position according to some
geographical objects. The experiment indicated that it greatly improves the results.
SUBJECT AREA: Data mining, Android Application, Geospatial data
KEYWORDS: Activity Recognition, Classification, Android, Google Maps, Spatialite,
WEKA
6
7
Περιεχόμενα
Κατάλογος Πινάκων ................................................................................................................. 10
1 Εισαγωγή ............................................................................................................................... 11
1.1
Γενικά ........................................................................................................................ 11
1.2 Σκοπός της πτυχιακής εργασίας ................................................................................... 11
1.3 Προτεινόμενη Προσέγγιση ........................................................................................... 12
2 Σχετικές Εφαρμογές .............................................................................................................. 14
2.1 Σχετικές εφαρμογές ........................................................................................................ 14
Find Νear Me .................................................................................................................... 14
London Bus Tracker ......................................................................................................... 16
My Tracks ......................................................................................................................... 16
RunKeeper ........................................................................................................................ 17
2.2 GPSTracker .................................................................................................................... 18
3 Σχεδιασμός Εφαρμογής ......................................................................................................... 20
3.1 Εργαλεία Ανάπτυξης Εφαρμογής ................................................................................... 20
3.1.1 Weka ........................................................................................................................ 20
3.1.2. Το Λειτουργικό Σύστημα Android ......................................................................... 22
3.1.3. SQLite..................................................................................................................... 25
3.2. Αρχιτεκτονική................................................................................................................ 26
3.2.1 Αρχιτεκτονική WEKA............................................................................................ 28
3.2.2 Αρχιτεκτονική Spatialite java................................................................................ 30
3.2.3 Spatialite Database .................................................................................................. 31
4 Υλοποίηση ............................................................................................................................ 34
4.1 Γεωχωρικά δεδομένα ...................................................................................................... 34
4.2 Δημιουργία Βάσης Δεδομένων και εισαγωγή δεδομένων στη ΒΔ ............................... 36
4.3 Δημιουργία τελικού πίνακα ............................................................................................ 39
4.4 Google Map Engine ........................................................................................................ 41
4.5 Πρόσθεση παραπάνω features στο Training Set ............................................................ 43
4.5.1 Σύνδεση με τη Spatialite βάση ............................................................................... 44
4.5.2 Διαδικασία μετατροπής δεδομένων ......................................................................... 45
4.5.3 Queries ..................................................................................................................... 47
4.6 Αλλαγές στης εφαρμογές GPSTracker και CollectMovingData .................................... 47
4.6.1 Spatialite βιβλιοθήκη ............................................................................................... 48
4.6.2 Διαδικασία προετοιμασίας της βάσης στην εφαρμογή ........................................... 49
4.6.3 Επικοινωνία με τη βάση .......................................................................................... 49
4.6.4 Αλλαγή στην εγγραφή στιγμιότυπου ....................................................................... 51
8
5 Αξιολόγηση ........................................................................................................................... 53
5.1 Εισαγωγή ........................................................................................................................ 53
5.2 Πειράματα ...................................................................................................................... 54
6 Συμπεράσματα ....................................................................................................................... 59
6. Σύναψη-Συμπεράσματα .................................................................................................... 59
6.2 Μελλοντικές επεκτάσεις ................................................................................................. 59
Βιβλιογραφία .......................................................................................................................... 61
9
Κατάλογος Πινάκων
3.1.2 Οι μέθοδοι που υλοποιεί ένα Activity …………………………23
3.1.3 Σύγκριση Γεωχωρικων Βάσεων Δεδομένων …………………..26
5.2.1 Σύγκριση αποτελεσμάτων κατηγοριοποίησης δυο συνόλων
δεδομένων στην αρχική τους μορφή …………………………………55
5.2.2 Αποτελέσματα κατηγοριοποίησης και κατάταξη χαρακτηριστικών
μετά την αφαίρεση ημερομηνίας .…………………………………….56
5.2.3 Αποτελέσματα κατηγοριοποίησης συνδυασμών κινήσεων στα δυο
σύνολα δεδομένων ……………………………………………………..57
5.2.4 Αποτελέσματα κατηγοριοποίησης συνδυασμών κινήσεων στα όλα
τα σύνολα δεδομένων ………………………………………………….58
10
1 Εισαγωγή
1.1 Γενικά
Επί των ημερών μας η επικοινωνία και κυρίως οι κινητές συσκευές λαμβάνουν την μια
από τις σημαντικότερες θέσεις στην σύγχρονη ζωή των ανθρώπων. Μεγαλύτερο μέρος των
συσκευών αυτών αποτελούν οι Android SmartPhones. Τα SmartPhones παρέχουν εφαρμογές
καταγραφής διάφορων μορφών δεδομένων κάνοντας χρήση ενσωματωμένων αισθητήρων,
όπως: Bluetooth, GPS, πυξίδα, φωτογραφική μηχανή κα μικρόφωνο. Αυτοί οι αισθητήρες,
κάνοντας χρήση ασύρματων δικτύων μπορούν να ανιχνεύσουν την θέση και την κίνηση του
χρήστη κατά τη διάρκεια χρήσης του κινητού τηλεφώνου. Η συλλογή δεδομένων κίνησης από
την καθημερινότητα του χρήστη αποτελεί μια απλή διαδικασία, η οποία έχει ως στόχο με την
ανάλυση των δεδομένων να διευκολύνει τις διάφορες δραστηριότητες του, παρακολουθώντας
τον τρόπο ζωής του. Επιπλέον, η παρακολούθηση και ο έλεγχος της καθημερινής
δραστηριότητας του ατόμου βρίσκουν εφαρμογή στην υγειονομική περίθαλψη, καθώς με
αυτόν τον τρόπο μπορούν να διαγνωστούν σοβαρά προβλήματα υγείας ή ακόμα να
εποπτευθούν ασθενείς που χρειάζονται μετεγχειρητική παρακολούθηση.
Η συγκεκριμένη πτυχιακή εργασία βασίστηκε πάνω στην ήδη υπάρχουσα εφαρμογή
GPSTracker1 η οποία αναπτύχτηκε στο πλαίσιο της πτυχιακής εργασίας της Τραγοπούλου
Σπυριδούλας.
1.2 Σκοπός της πτυχιακής εργασίας
Οι χρήστες έξυπνων κινητών τηλεφώνων χρησιμοποιούν στην καθημερινότητα τους,
εφαρμογές που καταγράφουν δεδομένα (θέσης, δραστηριότητας, χρήσης), τα οποία μπορούν
να χρησιμοποιηθούν εφόσον αναλυθούν. Σκοπός της παρούσας πτυχιακής εργασίας είναι η
ανάπτυξη μιας εφαρμογής για κινητά τηλέφωνα, η οποία θα καταγράφει δεδομένα κίνησης
και θα τα αναλύει με στόχο την ανίχνευση δραστηριότητας. Μετά, θα απεικονίζει την κίνηση
1
http://galaxy.hua.gr/~it20934/index.html
11
του με στόχο την ανίχνευση της δραστηριότητας του χρήστη σε χάρτη, με στόχο να τον
διευκολύνει να αποκτήσει καλύτερη εικόνα της καθημερινής του δραστηριότητας.
Ταυτόχρονα, η εφαρμογή στοχεύει στην καταγραφή δεδομένων κίνησης για μεγάλο
χρονικό διάστημα, παρακολουθώντας τη δραστηριότητα του χρήστη κατά τη διάρκεια της
ημέρας. Με τον τρόπο αυτό αναμένεται να δημιουργηθεί ένα προσωπικό αποθετήριο
δραστηριοτήτων (activities repository), η ανάλυση του οποίου μπορεί να μας δώσει χρήσιμα
συμπεράσματα για τη συμπεριφορά των χρηστών μέσα στο χρόνο (τις καθημερινές ή
εβδομαδιαίες συνήθειές τους, περιοχές που επισκέπτονται, κλπ.). Αυτή η διαδικασία θα
αποσκοπεί, εφόσον αρχικά ξεπεραστούν προβλήματα ανωνυμότητας και απορρήτου, στην
εξατομίκευση (personalization) των χρηστών και την παροχή υπηρεσιών στον χρήστη που
βασίζονται στην συμπεριφορά, τις προτιμήσεις του και τις συνήθειες του. Αν για παράδειγμα
ένας χρήστης προτιμά συχνά να πηγαίνει για περπάτημα εκτός δρόμου, τότε ενδεχομένως θα
τον αφορούν προσφορές για εξοπλισμό trαcking. Αντίστοιχα, αν ένας χρήστης κινείται συχνά
με ποδήλατο μπορεί να ενδιαφέρεται για σχετικό εξοπλισμό ή ένας χρήστης που συνδυάζει
μετρό και ποδήλατο μπορεί να ενδιαφέρεται για τα δρομολόγια του.
Ο σκοπός της συγκριμένης πτυχιακής ήταν να προστεθεί παραπάνω πληροφορία για
την βελτίωση των αποτελεσμάτων ανιχνεύσεις κίνησης και των συνηθειών του χρηστή της
υπάρχουσα εφαρμογή GPSTracker. 2
1.3 Προτεινόμενη Προσέγγιση
Η εφαρμογή GPSTracker λειτουργεί σε κινητά με λειτουργικό σύστημα Android,
καταγράφει διαρκώς δεδομένα θέσης του χρήστη με χρήση GPS και τα επεξεργάζεται τοπικά
κάνοντας χρήση τεχνικών εξόρυξης δεδομένων, προσδιορίζοντας τον τύπο κίνησης του
χρήστη μέσα στη μέρα. ΄Επειτα , αποτυπώνει την δραστηριότητα και τον τύπο κίνησης του
χρήστη σε χάρτη ενώ όταν ο χρήστης σταματήσει την καταγραφή, του δίνει την επιλογή να
μεταφορτώσει τα αρχεία κίνήσης του στον λογαριασμό Dropbox του.
Η αναγνώριση του τύπου κίνησης (περπάτημα, τρέξιμο, ποδήλατο, κλπ.) υλοποιήθηκε
στην κινητή συσκευή με τη μέθοδο της κατηγοριοποίησης (classification), κάνοντας χρήση
των αλγορίθμων κατηγοριοποίησης που παρέχει το λογισμικό WEKA. Για την εκπαίδευση
του συστήματος, χρησιμοποιήθηκαν δεδομένα εκπαίδευσης καταγεγραμμένα από μια αρχική
εφαρμογή, στην οποία ο χρήστης χαρακτηρίζει τον τύπο κίνησης του ενώ κινείται. Στο
2
http://galaxy.hua.gr/~it20934/index.html
12
πλαίσιο της παρούσας πτυχιακής προστεθήκαν και άλλα χαρακτηρίστηκα στα δεδομένα
εκπαίδευσης, για την βελτίωση εύρεσης του τύπου κίνησης του χρηστή. Αυτό επιτεύχθηκε με
τη δημιουργία μιας βάσης δεδομένων με γεωκωδικοποιημένα γεωγραφικά χαρακτηριστικά.
13
2 Σχετικές Εφαρμογές
Η ανάγκη του ανθρώπου να βρίσκει άμεσα και εύκολα πληροφορίες που
είναι αναγκαίες όταν βρίσκεται σε κίνηση έχει οδηγήσει στην ανάπτυξη
διαφορετικών εφαρμογών, κάθε μία εκ των οποίων παρέχει διαφορετικές
υπηρεσίες. Κάποιες από τις εφαρμογές αυτές καταγράφουν τη διαδρομή και την
κίνηση του χρήστη για την αποθήκευση ενός είδους ιστορικού κίνησης, όπως είναι
οι εφαρμογές MyTracks και RunKeeper. Μάλιστα, η εφαρμογή RunKeeper
ενημερώνει το χρήστη για επιπλέον πληροφορίες που αφορούν την ταχύτητα, την
έκταση της διαδρομής, ακόμα και τις θερμίδες που έχει κάψει, δεδομένα που είναι
χρήσιμα σε χρήστες που γυμνάζονται συστηματικά, ίσως και επαγγελματικά. Άλλες
εφαρμογές που σχετίζονται με τις διαθέσιμες υπηρεσίες που βρίσκονται κοντά στην
ακριβή τοποθεσία του χρήστη είναι οι Find Near Me και London Bus Tracker. Οι
εφαρμογές αυτές ανάλογα με τη θέση του χρήστη του προτείνουν καταστήματα ή
στάσεις Μέσων Μαζικής Μεταφοράς σε μια συγκεκριμένη ακτίνα.
Ωστόσο, οι εφαρμογές που μόλις αναφέρθηκαν δε χρησιμοποιούν προς
όφελός τους το είδος της κίνησης που πραγματοποιούν οι χρήστες, αλλά παρέχουν
μόνο πληροφορίες περιήγησης. Για το λόγο αυτό θεωρήθηκε χρήσιμη η κατασκευή
μιας εφαρμογής που θα αξιοποιεί και θα ανιχνεύει τη δραστηριότητα του χρήστη,
βάσει του είδους της κίνησης και της τοποθεσίας του.
2.1 Σχετικές εφαρμογές
Σε αυτήν την ενότητα θα δοθούν παραδείγματα παρόμοιων εφαρμογών.
Το κοινό τους σημείο είναι ότι σε όλες τις περιπτώσεις η λειτουργικότητα των
εφαρμογών εξαρτάται από την τοποθεσία του χρήστη.
Find Νear Me
Το Find Near Me 3είναι μία εφαρμογή που βοηθά τους χρήστες να βρίσκουν
ATM, τράπεζες, βενζινάδικα, εστιατόρια, νοσοκομεία, ξενοδοχεία κ.α. σε κοντινή
απόσταση από τη θέση που βρίσκονται. Επιτρέπει την πρόσθεση και την
3
https://play.google.com/store/apps/details?id=com.xlabz.FindNearMe2
14
αποθήκευση των όρων αναζήτησης που εισάγει ο κάθε χρήστης για μελλοντική
χρήση. Υποστηρίζει την αναζήτηση υπηρεσιών γύρω από οποιοδήποτε σημείο σε
όλο τον κόσμο και την πρόσθεση στις αγαπημένες τοποθεσίες αναζήτησής.
Κάποια από τα χαρακτηριστικά που προσφέρει η συγκεκριμένη εφαρμογή είναι τα
εξής:

Βρίσκει αυτόματα την τρέχουσα θέση του χρήστη σε έναν χάρτη.

Εμφανίζει χρήσιμες πληροφορίες, όπως τη διεύθυνση, τον αριθμό
τηλεφώνου μιας υπηρεσίας, την απόσταση από την τρέχουσα θέση του
χρήστη.

Ωφέλιμη αναζήτηση για τα σημεία ενδιαφέροντος όταν βρίσκεται σε
κίνηση.

Επιτρέπει την απομακρυσμένη αναζήτηση σε άλλες τοποθεσίες ανεξάρτητα
από την τοποθεσία του χρήστη.

Εμφανίζει πληροφορίες όπως αξιολογήσεις, κριτικές, ώρες και φωτογραφίες
για τις τοποθεσίες .
Εικόνα 2.1.1 Στιγμιότυπο εκτέλεσης εφαρμογής Find Near Me
15
London Bus Tracker
Η εφαρμογή London Bus Tracker 4είναι μια εφαρμογή Android που ενημερώνει
το χρήστη για την κίνηση των λεωφορείων του Λονδίνου, τους χρόνους άφιξής
τους από περίπου το 90% των στάσεων, καθώς και το χρόνο άφιξης του επόμενου
λεωφορείου σε 20000 στάσεις σε όλο το Λονδίνο σε πραγματικό χρόνο. Επιτρέπει
την πλήρη και άμεση αναζήτηση, μέσα σε μόνο λίγα δευτερόλεπτα, είτε αυτόματα,
είτε χειροκίνητα,
με βάση τον ταχυδρομικό κώδικα, τον αριθμό διαδρομής
λεωφορείου, αλλά και την ονομασία του δρόμου. Προσφέρει τη δυνατότητα
προβολής όλων των στάσεων λεωφορείων σε ακτίνα μιλίων από οπουδήποτε, όπως
επίσης και την επιλογή αποθήκευσης του ταχυδρομικού κώδικα της κατοικίας του
χρήστη για την ενημέρωσή του για τις πιθανές διαδρομές επιστροφής .
Εικόνα 2.1.2 London Bus Tracker screenshot παράδειγμα
My Tracks
Η εφαρμογή My Tracks 5καταγράφει τη διαδρομή, την ταχύτητα, την
απόσταση και το υψόμετρο του χρηστή καθώς περπατάει, τρέχει ή κάνει ποδήλατο.
Η εφαρμογή χρησιμοποιεί τον αισθητήρα GPS της συσκευής για να καταγράψει
στατιστικά στοιχεία και γεωγραφικά δεδομένα.Εκτός αυτού η εφαρμογή
4
5
https://play.google.com/store/apps/details?id=com.appeffectsuk.bustracker&hl=en
https://play.google.com/store/apps/details?id=com.google.android.maps.mytracks&hl=el
16
συγχρονίζεται επίσης με βιομετρικούς αισθητήρες, όπως παρακολουθητή του
καρδιακού ρυθμού. Κατά την εγγραφή επιτρέπει την εμφάνιση των δεδομένων
κίνησης, το σχολιασμό της διαδρομής, και τη φωνητική ανακοίνωση της πρόοδου
του χρήστη. Επίσης, δίνει τη δυνατότητα κοινοποίησης των διαδρομών μέσω του
Google Drive, της Google Maps Engine, των Google Spreadsheets, ή σε εξωτερικά
μέσα αποθήκευσης.
Εικόνα 2.1.3 My Tracks screenshot παραδείγματα
RunKeeper6
Η εφαρμογή αυτή έχει ως στόχο την παρακολούθηση του ρυθμού κίνησης
του χρηστή, την καταμέτρηση της απόστασης προπόνησης, και την απώλεια
βάρους. Ο χρήστης έχει τη δυνατότητα να ενημερώνεται για τα στατιστικά και την
πρόοδό του µέσω των ακουστικών του, ενώ ταυτόχρονα μπορεί να ακούει
συμβουλές προπόνησης. Επίσης, έχει τη δυνατότητα να τραβάει φωτογραφίες για
να τις μοιράζεται, όπως και να κρατά ιστορικό των δραστηριοτήτων του.
6
https://play.google.com/store/apps/details?id=com.fitnesskeeper.runkeeper.pro&hl=el
17
Εικόνα 2.1.4 RunKeeper screenshot παραδείγματα
2.2 GPSTracker
Η εφαρμογή λειτουργεί σε κινητά με λειτουργικό σύστημα Android,
καταγράφει διαρκώς δεδομένα θέσης του χρήστη με χρήση GPS
επεξεργάζεται
τοπικά
προσδιορίζοντας τον
κάνοντας
χρήση
τύπο κίνησης του
τεχνικών
εξόρυξης
χρήστη μέσα στη
μέρα.
και
τα
δεδομένων,
΄Επειτα,
αποτυπώνει την δραστηριότητα και τον τύπο κίνησης του χρήστη σε χάρτη ενώ
όταν
ο χρήστης σταματήσει την
καταγραφή του
δίνει την
επιλογή να
μεταφορτώσει τα αρχεία κίνησης του στον λογαριασμό Dropbox του.
Η αναγνώριση του τύπου κίνησης (περπάτημα, τρέξιμο, ποδήλατο, κλπ.)
υλοποιήθηκε στην κινητή συσκευή με τη μέθοδο της
κατηγοριοποίησης
(Classification), κάνοντας χρήση των αλγορίθμων κατηγοριοποίησης που παρέχει
το λογισμικό WEKA. Για την εκπαίδευση του συστήματος, χρησιμοποιήθηκαν
δεδομένα εκπαίδευσης καταγεγραμμένα από μια αρχική εφαρμογή, στην οποία ο
χρήστης χαρακτηρίζει τον τύπο κίνησης του ενώ κινείται.
Για απεικόνιση της δραστηριότητας του χρήστη χρησιμοποιούνται οι
χάρτες της
Google, χρησιμοποιώντας το Google Maps Android API. Πιο
συγκεκριμένα, ενώ ο χρήστης κινείται και καταγράφονται τα δεδομένα κίνησης
του,
ο τύπος της
κίνησης του
αναγνωρίζεται σε πραγματικό χρόνο
18
χρησιμοποιώντας το
μοντέλο κατηγοριοποίησης που δημιουργήθηκε
με
το
WEKA και αποτυπώνεται στον χάρτη η θέση του χρήστη αλλά και ο τύπος της
δραστηριότητας του την συγκεκριμένη χρονική στιγμή [8].
Εικόνα 2.2.1 Σχήμα της εφαρμογής GPSTracker
Εικόνα 2.2.2 Στιγμιότυπα εκτέλεσης της εφαρμογής GPSTracker
19
3 Σχεδιασμός Εφαρμογής
Στο παρόν κεφάλαιο περιγράφονται τα εργαλεία που χρησιμοποιήθηκαν για την
εφαρμογή GPSTracker που αναπτύχθηκε στα πλαίσια της παρούσας πτυχιακής
εργασίας, καθώς και η αρχιτεκτονική της. Τέλος, θα αναφέρουμε τη βάση
δεδομένων στην οποία αποθηκεύονται τα γεωγραφικά δεδομένα που συλλέγουμε
μέσω της εφαρμογής.
3.1 Εργαλεία Ανάπτυξης Εφαρμογής
Στην ενότητα αυτή θα αναφερθούν τα εργαλεία που χρησιμοποιήθηκαν για τη
δημιουργία, την προ-επεξεργασία (pre-processing), την κατηγοριοποίηση των
δεδομένων και την εύρεση τελικών αποτελεσμάτων.
3.1.1 Weka
Το εργαλείο Weka αποτελείται από μια συλλογή αλγορίθμων μηχανικής μάθησης
για την εξόρυξη δεδομένων. Οι αλγόριθμοι αυτοί μπορούν είτε να εφαρμοστούν
άμεσα σε ένα σύνολο δεδομένων ή να καλούνται μέσα από κάποιον κώδικα Java.
Το Weka περιέχει εργαλεία για προ-επεξεργασία δεδομένων, ταξινόμηση,
παλινδρόμηση, ομαδοποίηση, κανόνες συσχέτισης, και οπτικοποίηση. [7]
Τα πιο κοινά συστατικά στοιχεία του WEKA είναι :

Στιγμιότυπα (Instances) – ένα στιγμιότυπο των δεδομένων. Περιέχει όλα τα
καταγραμμένα χαρακτηριστικά (attributes) , τα όποια ανήκουν σε μια από τις
παρακάτω κατηγορίες:

Numeric - ένας αριθμός

Date - ημερομηνία / ώρα

Nominal – για διακριτές συμβολοσειρές (Strings)

String – μία συμβολοσειρά

Relational – για Multi-instance κατηγοριοποίηση
20

Φίλτρο
(Filter)
-
για
προ-επεξεργασία
δεδομένων.
Πραγματοποιούν
μετασχηματισμό στα στιγμιότυπα (instances) ή στα χαρακτηριστικά (attributes).
Υπάρχουν δύο κατηγορίες φίλτρων:

Supervised Filter (φίλτρο με επίβλεψη) Διεπιφάνεια (Interface) για φίλτρα που κάνουν χρήση χαρακτηριστικών της
κλάσης

Unsupervised Filter (φίλτρο χωρίς επίβλεψη)Διεπιφάνεια για φίλτρα που δεν κάνουν χρήση χαρακτηριστικών της
κλάσης.
Κατηγοριοποιητής/Συσταδοποιητής (Classifier/Clusterer) – ένα μοντέλο που

εκπαιδεύεται από κάποιο αλγόριθμο, και χρησιμοποιείται για κατηγοριοποίηση/
συσταδοποίηση δεδομένων. Εδώ αναφέρονται όλες οι κατηγορίες αλγορίθμων που
υποστηρίζει το εργαλείο WEKA. Για την κατηγοριοποίηση των δεδομένων κίνησης
χρησιμοποιήθηκε ο αλγόριθμος RandomForest.

Bayes

Functions

Trees
o
RandomForest

Lazy

Rules

Meta

Multi-instance

Miscellaneous

Αξιολόγηση (Evaluating) - Αξιολόγηση της ακρίβειας του κατηγοριοποιητή/
συσταδοποιητή που χρησιμοποιήθηκε για την εκπαίδευση του μοντέλου
(model)
21
3.1.2. Το Λειτουργικό Σύστημα Android
Το Android είναι ένα ισχυρό λειτουργικό σύστημα που υποστηρίζει ένα μεγάλο
αριθμό εφαρμογών στα κινητά τηλέφωνα (SmartPhones). Οι συσκευές που
υποστηρίζουν
το λειτουργικό σύστημα
Android
βασίζεται
κυρίως
στην
αρχιτεκτονική της ARM πλατφόρμας. Μερικά από τα σημερινά χαρακτηριστικά
και τις προδιαγραφές του Android είναι τα εξής:
Εικόνα 3.1.1 Χαρακτηριστικά και τις προδιαγραφές του Android7
Συστατικά Στοιχεία Εφαρμογής Android
Τα βασικά στοιχεία μιας εφαρμογής Android είναι τα παρακάτω:
 Content Provider
Ένας Content Provider επιτρέπει στις άλλες εφαρμογές πρόσβαση στα private
δεδομένα μιας άλλης εφαρμογής.
7
http://kalisandroid.blogspot.gr/2013_08_01_archive.html
22
 Activity
Ένα Activity αντιπροσωπεύει μια ενιαία οθόνη με μια διεπαφή χρήστη, και
υλοποιεί τις παρακάτω μέθοδους :
Περιγραφή
Callback
Αυτή είναι η πρώτη callback και
onCreate()
καλείται όταν η Activity αυτή
δημιουργείται για πρώτη φορά.
Αυτό το callback καλείται όταν η
onStart()
Activity γίνεται ορατή στο χρήστη.
Αυτό καλείται όταν ξεκινά ο
onResume()
χρήστης αλληλεπιδρά με την
εφαρμογή.
Εκτελείται όταν η τρέχουσα
onPause()
δραστηριότητα είναι να διακοπεί.
Αυτό το callback καλείται όταν η
onStop()
Activity δεν είναι πλέον ορατή.
Αυτό το callback καλείται πριν η
onDestroy()
Activity έχει καταστραφεί από το
σύστημα.
Αυτό το callback καλείται όταν η
onRestart()
Activity κάνει επανεκκίνηση μετά τη
διακοπή.
Πίνακας 3.1.2 Οι μέθοδοι που υλοποιεί ένα Activity
23
Στο Εικόνα 3.1.2 φαίνεται ο κύκλος ζωής ενός Activity:
Εικόνα 3.1.2 Κύκλος ζωής ενός Android Activity8
 Services
 Broadcast Receivers
8
http://stoflru.org/questions/23262347/how-to-know-an-android-tasks-visibility-change
24

Κάθε συστατικό εκτελεί ένα διαφορετικό ρόλο στη συνολική συμπεριφορά της
εφαρμογής και το καθένα μπορεί να ενεργοποιηθεί ξεχωριστά (ακόμα και από
άλλες εφαρμογές)

Στο αρχείο manifest.xml δηλώνονται όλα τα συστατικά στοιχεία (components)
και οι απαιτήσεις μιας εφαρμογής, όπως για παράδειγμα η ελάχιστη έκδοση
Android που απαιτείται.

Non-code πόροι εφαρμογής (εικόνες, strings, τα αρχεία διάταξης, κ.λπ.) θα
πρέπει να περιλαμβάνουν εναλλακτικές λύσεις για διαφορετικές διαμορφώσεις
(configurations)
της
συσκευής
,
όπως
διαφορετικές
συμβολοσειρές
για
διαφορετικές γλώσσες. [4]
3.1.3. SQLite
Το SQLite είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων
που περιέχεται σε μια προγραμματιστική βιβλιοθήκη γλώσσας C. Σε αντίθεση με
άλλα συστήματα διαχείρισης βάσεων δεδομένων, το SQLite δεν είναι μια
ξεχωριστή διεργασία που προσπελάζεται από μια εφαρμογή πελάτη(client), αλλά
ένα ενσωματωμένο μέρος της. [2]
Αντίθετα με τα συστήματα διαχείρισης βάσεων δεδομένων μορφής
μοντέλου Πελάτη-Διακομιστή, η μηχανή SQLite δεν έχει αυτόνομες διεργασίες με
τις οποίες επικοινωνεί το πρόγραμμα της εφαρμογής και έτσι η βιβλιοθήκη SQLite
είναι ένα ενσωματωμένο μέρος του προγράμματός της . Η βιβλιοθήκη μπορεί
επίσης να κληθεί δυναμικά. Το πρόγραμμα της εφαρμογής χρησιμοποιεί τη
λειτουργικότητα του SQLite μέσα από απλές κλήσεις συνάρτησης που μειώνουν
την καθυστέρηση στην πρόσβαση της βάσης δεδομένων. Οι κλήσεις της
συνάρτησης μέσα από μια απλή διεργασία είναι πιο αποτελεσματικές από την
διαδιεργασική επικοινωνία. Το SQLite αποθηκεύει την συνολική βάση δεδομένων
(ορισμούς, πίνακες, δείκτες και τα ίδια τα δεδομένα) ως ένα μοναδικό
διαλειτουργικό αρχείο στη μηχανή ενός οικοδεσπότη. Υλοποιεί αυτόν τον απλό
σχεδιασμό με κλείδωμα όλου του αρχείου της βάσης δεδομένων κατά τη διάρκεια
της
εγγραφής. Το SQLite υποστηρίζει
την ανάγνωση δραστηριοτήτων, που
ενδέχεται να είναι πολυλειτουργικές, αλλά και την εγγραφή, που πραγματοποιείται
μόνο με τη σειρά. [1]
25
Spatialite
Η SpatiaLite είναι μια μικρού μεγέθους SQLite επέκταση. Όπως και η SQLite βάση,
δεν χρησιμοποιεί μια αρχιτεκτονική client-server, δηλαδή, όλες οι εργασίες εκτελούνται στην
ίδια την εφαρμογή . Όταν η βάση δεδομένων SQLite επεκτείνεται με την εγκατάσταση της
SpatiaLite είναι δυνατή η φόρτωση, η αποθήκευση και η διαχείριση των γεωγραφικών
δεδομένων , δηλαδή τα GIS δεδομένα, τα χαρτογραφικά δεδομένα, τα GeoSpatial δεδομένα
και τα γεωμετρικά δεδομένα. [5] [9]
Σε ένα πολύ βασικό επίπεδο, ένα DBMS που υποστηρίζει Spatial Data προσφέρει
ένα περιβάλλον SQL που έχει επεκταθεί με μια σειρά από τύπους γεωμετρίας, και ως εκ
τούτου μπορεί να χρησιμοποιηθεί από περισσότερες εφαρμογές GIS ακόμα και στις κινητές
συσκευές . [3]
Η Spatialite είναι μια πολύ ελαφρύ (μικρού μεγέθους) βάση δεδομένων. Στον πίνακα
3.1.3 παρουσιάζεται το μέγεθος της σε σχέση με άλλα DBMS.
DBMS
PostgreSQL
PostGIS
MySQL Spatial
SQLite
Spatialite
Μέγεθος
25 MB
1.5 MB
42 MB
200KB
150 KB
Πίνακας 3.1.3 Σύγκριση Γεωχωρικων Βάσεων Δεδομένων
Η Spatialite επέκταση υποστήριζε και τους εξής τύπους δεδομένων:



POINT – ένα σημείο
LINESTRING – ένα σύνολο σημείων σχηματίζοντας μια γραμμή
POLYGON – ένα πολύγωνο
3.2. Αρχιτεκτονική
Η αρχιτεκτονική της εφαρμογής GPSTracker, βασίζεται σε τέσσερα βασικά
συστατικά, που υλοποιούν τις λειτουργίες της καταγραφής δεδομένων, της
κατηγοριοποίησης τους σε είδος κίνησης, της απεικόνισης της δραστηριότητας του
26
χρήστη στον χάρτη και της μεταφόρτωσης των δεδομένων κίνησης του χρήστη σε
ένα κεντρικό αποθετήριο. Στην εικόνα 3.1 παρουσιάζεται η αρχιτεκτονική της
εφαρμογής με τα βασικά συστατικά που περιέχει και τα εργαλεία που
χρησιμοποιούνται για να υλοποιηθούν οι απαιτούμενες λειτουργίες αλλά και οι
αλληλεπιδράσεις που υπάρχουν μεταξύ τους.
Αρχικά,
η
καταγραφή
των
δεδομένων
κίνησης
του
χρήστη
(LocationService) υλοποιείται χρησιμοποιώντας το GPS Service του Android, το
οποίο ενημερώνει την εφαρμογή συνεχώς για την τρέχουσα θέση του χρήστη και
έτσι καταγράφονται οι διαφορετικές τοποθεσίες που βρίσκεται ο χρήστης κατά τη
διάρκεια της ημέρας. Έπειτα, πραγματοποιείται η ανάλυση των δεδομένων που
καταγράφηκαν από το LocationService και η κατηγοριοποίηση της δραστηριότητας
του χρήστη σε συγκεκριμένα είδη κινήσεων (Classification Activity) ,
χρησιμοποιώντας το API του προγράμματος WEKA. Αφού γίνει η ανίχνευση της
θέσης και της κίνησης του χρήστη, γίνεται απεικόνιση των δεδομένων στον χάρτη
με την Google Maps Activity κάνοντας χρήση του Google Maps Android API.
Τέλος, το συστατικό Dropbox Activity χρησιμοποιεί το Dropbox API ώστε να είναι
δυνατή η συλλογή των διαδρομών στον λογαριασμό Dropbox του χρήστη.
[8]
Εικόνα 3.2.1 Η αρχιτεκτονική της εφαρμογής GPSTracker
27
3.2.1 Αρχιτεκτονική WEKA
Όπως προαναφέρθηκε, στην παρούσα πτυχιακή εργασία, χρησιμοποιήθηκε
το εργαλείο εξόρυξης δεδομένων WEKA για την πραγματοποίηση μετάκατηγοριοποίησης
(post-classification)
των
δεδομένων
εκπαίδευσης
της
εφαρμογής GPSTracker.
Το εργαλείο WEKA υποστηρίζει αρχεία τύπου .csv και .arff. Τα τελευταία
περιέχουν
a. Πληροφορίες για τα φίλτρα που έχουν χρησιμοποιηθεί στα δεδομένα.
b. Mια επικεφαλίδα (header), η όποια περιγράφει τον τύπο των δεδομένων
και τις δυνατές τιμές τους (αν είναι διακριτά).
c. χαρακτηριστικά (attributes), δηλαδή τα δεδομένα.
Στην εικόνα 3.2.2 φαίνεται η μορφή ενός .arff αρχείου.

@relation gps_trackingweka.filters.unsupervised.attribute.ReplaceMissingValues
Χρησιμοποιήθηκε ένα unsupervised φίλτρο ReplaceMissingValues στα attributes

@attribute RelativeSpeed numeric
Περιγραφή ενός attribute : ονομασία «RelativeSpeed», τύπος «numeric»

38.006401,23.727008,1.469567,1.507826,0.099998,'2013-12-06
09:30:02',09,2,Fri,yes,no,no,no,Walking,yes
Ένα παράδειγμα στιγμιότυπων
28
Εικόνα 3.2.2 Μορφή ενός .arff αρχείου
Στη συγκεκριμένη εφαρμογή (GPSTracker Android) χρησιμοποιείται μια
κλάση του WEKA (weka.classifiers.trees.RandomForest) για την κατηγοριοποίηση
των δεδομένων που συλλέγονται με χρήση GPS και επεξεργάζονται από άλλες
μεθόδους της εφαρμογής.
Η εικόνα 3.4.3 παρουσιάζει την αρχιτεκτονική αλληλεπίδρασης της
εφαρμογής GPSTracker και της βιβλιοθήκης WEKA.
29
Εικόνα 3.2.2 Σχήμα αλληλεπίδρασης GPSTracker-WEKA
3.2.2 Αρχιτεκτονική Spatialite java
Όπως αναφέρεται και στην παράγραφο 3.1.3, η Spatialite είναι μια βάση
δεδομένων όπου , όλες οι εργασίες εκτελούνται στην ίδια την εφαρμογή, και δεν
χρειάζεται να εγκατασταθεί σε ένα απομακρυσμένο server. Δε χρειάστηκε να δοθεί
πρόσβαση στη βάση για άλλες εφαρμογές για αυτό και η επικοινωνία με τη βάση
δεδομένων γίνεται απευθείας από την εφαρμογή, μέσω jsqlite package(Spatialite
API) και όχι μέσω content provider.
30
Εικόνα 3.2.3 Σχήμα αλληλεπίδρασης GPSTracker-Spatialite
Η εφαρμογή GPSTracker έχει ως στόχο την κατηγοριοποίηση δεδομένων
κίνησης σε πραγματικό χρόνο (real-time). Η εφαρμογή λαμβάνει στίγμα GPS ανά
τακτά χρονικά διαστήματα (δευτερόλεπτα) για τη συλλογή των απαραίτητων
δεδομένων κίνησης. Τα δεδομένα αυτά δε χρησιμοποιούνται απευθείας στην
κατηγοριοποίηση, αλλά για την εύρεση πληροφοριών που σχετίζονται με την
ταχύτητα, την επιτάχυνση καθώς και την διάκριση της τοποθεσίας του χρήστη
(γραμμή λεωφορείου, μετρό ή σε κάποια συγκεκριμένη τοποθεσία στην Αθήνα-π.χ.
πάρκο-). Για αυτό χρησιμοποιούμε Spatialite DB με όλες της γραμμές των ΜΜΜ
στην Αθήνα. Με τον τρόπο αυτό, για να προσθέσουμε επιπλέον πληροφορία στο
στιγμιότυπο κατηγοριοποίησης WEKA, η LocationService καλεί κάποιες μεθόδους
που εκτελούν συγκεκριμένα queries και τα αποτελέσματα προσθέτονται σε αυτό.
3.2.3 Spatialite Database
Στο πλαίσιο της πτυχιακής εργασίας φτιάχτηκε μια Spatialite Database, η
όποια περιέχει πληροφορίες
για γραμμές
λεωφορείων , μετρό , στάσεις
λεωφορείων και κάποιους αστικούς δημόσιους χώρους στην Αθήνα, όπως πάρκα,
γήπεδα και πλατείες.
Υπάρχουν 4 πινάκες στη βάση SpatialiteDB.sqlite οι geo_lines, geo_stop,
geo_places και metro.
31
Πίνακας geo_lines
Ο πίνακας αυτός περιέχει δεδομένα που σχετίζονται με τις υπάρχουσες
λεωφορειακές γραμμές του ΟΑΣΑ. Μια εγγραφή αποτελείται από ένα
αναγνωριστικό κωδικό αριθμό, μοναδικό για κάθε εγγραφή (id), τον αριθμό της
εκάστοτε λεωφορειακής γραμμής(route) και ένα LINESTRING, που περιέχει
γεωγραφικά δεδομένα για την έκταση και την τοποθεσία της γραμμής αυτής
(line_geom).
Πίνακας geo_stop
Ο πίνακας αυτός δημιουργήθηκε ως ένα ενδιάμεσο στάδιο για την
υλοποίηση της εφαρμογής. Περιέχει πληροφορίες για τις στάσεις που
πραγματοποιούνται στις λεωφορειακές γραμμές του ΟΑΣΑ. Η χρήση του πίνακα
δεν πραγματοποιείται από την εφαρμογή που κατασκευάστηκε, αλλά προορίζεται
για πιθανές μελλοντικές επεκτάσεις. Περιέχει πληροφορίες που αναφέρονται σε
έναν μοναδικό κωδικό αριθμό για κάθε στάση (ID), το όνομα της στάσης (NAME),
την οδό (STREET), και γεωγραφικά δεδομένα (geom) τύπου POINT, που
αποτελούν την ακριβή τοποθεσία της στάσης.
Πίνακας geo_places
Ο πίνακας geo_places περιέχει όλες τις απαραίτητες πληροφορίες που
σχετίζονται με αστικούς δημόσιους χώρους στην Αθήνα. Περιλαμβάνει την
εκάστοτε ονομασία του δημόσιου χώρου (name), το είδος του χώρου αυτού (type),
όπως πάρκο, γήπεδο, πλατεία, και γεωγραφικά δεδομένα τύπου POLYGON που
σχετίζονται με την έκταση και την τοποθεσία του χώρου αυτού.
Πίνακας metro
Ο πίνακας αυτός περιέχει τις υπάρχουσες γραμμές του ΜΕΤΡΟ στην
περιοχή της Αθήνας. Αποτελείται από έναν αναγνωριστικό αριθμό (id) και
32
γεωγραφικά δεδομένα τύπου LINESTRING, για την έκταση και την τοποθεσία της
γραμμής αυτής (line_geom).
Εικόνα 3.2.4 Σχήμα οντοτήτων-συσχετίσεων (ER diagram) Spatialite DB
33
4 Υλοποίηση
Στο παρόν κεφάλαιο περιγράφεται η σχεδίαση, η κατασκευή και η υλοποίηση της
Spatialite Βάσης Δεδομένων που κατασκευάστηκε, καθώς και οι απαραίτητες
αλλαγές που πραγματοποιήθηκαν στην ήδη υπάρχουσα εφαρμογή GPSTracker για
τα πλαίσια της πτυχιακής εργασίας. Οι αλλαγές αυτές έχουν ως στόχο την αύξηση
της ακριβείας των αποτελεσμάτων κατηγοριοποίησης κίνησης και της ανιχνεύσεις
δραστηριοτήτων.
4.1 Γεωχωρικά δεδομένα
Στο πλαίσιο της εργασίας δημιουργήθηκε μια βάση δεδομένων, η όποια
περιέχει πληροφορίες σχετικές με τον εντοπισμό γραμμών Μέσων Μαζικής
Μεταφοράς (ΜΜΜ). Για το σκοπό αυτό θεωρήθηκε αναγκαία η εύρεση ενός
συνόλου δεδομένων (dataset) τέτοιου που να παρέχει μια αναλυτική και ακριβή
γεωχωρική πληροφορία, κυρίως για τις λεωφορειακές γραμμές των ευρύτερων
περιοχών της Αθήνας. Ένα τέτοιο σύνολο δεδομένων παρέχει το Ινστιτούτο
Πληροφοριακών Συστημάτων του Ερευνητικού Κέντρου «Αθηνά»9 και σε μορφή
αρχείου10 που περιλαμβάνει γεωχωρικά δεδομένα που εκφράζουν στάσεις
λεωφορείων, τραμ και μετρό.
Εικόνα 4.1.1 Ένα απόσπασμα αρχείου stathmoi_k_staseis_oasa.kml
9
www.geodata.gov.gr
Stathmoi_kai_staseis_oasa.kml
10
34
Στη συνέχεα, με την βοήθεια της βιβλιοθήκης xstream πραγματοποιήθηκε
εξαγωγή χρήσιμης πληροφορίας (attributes), που αφορά την εκάστοτε στάση, όπως
:





Name – η ονομασία της
Street – η οδός στην οποία βρίσκεται
Mode – σε τι είδους μέσων μεταφοράς ανήκει
Id – ένα αναγνωριστικό της
Coordinates – το γεωγραφικό πλάτος και μήκος της.
Μετά από την μετατροπή , οι έγραφες πήραν την εξής μορφή:

ΓΕΦΥΡΑ,240012,ΛΕΩΦ.ΠΟΣΕΙΔΩΝΟΣ,ΛΕΩΦΟΡΕΙΟ/ΤΡΟΛΛΕΥ,475,23.68936360016502,37.939
941618486039
Δηλαδή, κάθε εγγραφή αντιστοιχίζεται με μια στάση ενός ΜΜΜ. Όπως
φαίνεται και στο παραπάνω παράδειγμα, η κάθε εγγραφή περιέχει πληροφορίες για
κάθε στάση χωριστά και όχι δεδομένα που αφορούν τις γραμμές των ΜΜΜ. Για το
λόγο αυτό η μετατροπή των αρχικών δεδομένων σε εγγραφές αυτής της μορφής
απορρίφθηκε.
Ένα ακόμη σύνολο δεδομένων που θα μπορούσε να χρησιμοποιηθεί στα
πλαίσια της συγκεκριμένης πτυχιακής εργασίας είναι ο κεντρικός κατάλογος
δημόσιων δεδομένων που παρέχει πρόσβαση στα δημόσια δεδομένα όλων των
φορέων της ελληνικής κυβέρνησης11 που περιέχει 9 αρχεία, τύπου .csv, με
ξεχωριστά σύνολα πληροφοριών για κάθε ενότητα π.χ. ονομασία, ώρες άφιξης κ.α.
, και είχε πολύπλοκη συσχέτιση.
Από όλα τα αρχεία μονό 4 διέθεταν χρήσιμη πληροφορία ή βοηθούν στην
παράγωγη της. Αξίζει να αναφερθεί ότι ως χρήσιμη πληροφορία σε αυτό το στάδιο
θεωρείται το όνομα της γραμμής ενός λεωφορείου, και τα γεωχωρικά δεδομένα τα
όποια μας βοηθούν στην κατασκευή της. Στην εικόνα 4.1.2 παρουσιάζεται σχήμα
οντοτήτων-συσχετίσεων που αντιστοιχεί σε δομή των σχέσεων μεταξύ αυτών των 4
αρχείων (κάθε αρχείο αντιστοιχεί στον πίνακα με τον ίδιο όνομα ).
11
http://www.data.gov.gr/
35
Εικόνα 4.1.2 Σχήμα οντοτήτων-συσχετίσεων των αρχείων
4.2 Δημιουργία Βάσης Δεδομένων και εισαγωγή δεδομένων στη ΒΔ
Μετά την εύρεση των απαραίτητων δεδομένων, επόμενο βήμα αποτέλεσε η
σχεδίαση της βάσης δεδομένων, με απαραίτητους πινάκες με ενδιάμεση
πληροφορία που θα βοηθούσε στην δημιουργία της τελικής μορφής της βάσης. Οι
προσωρινοί πινάκες φτιαχτήκαν με τη χρήση της Spatialite GUI.
Εικόνα 4.2.1 Ένα στιγμιότυπο Spatialite GUI
Στη συνέχεια, ακολούθησε η δημιουργία πίνακα με τα γεωχωρικά δεδομένα,
που θα χρησιμοποιηθούν για την υλοποίηση της πτυχιακής αυτής, που
36
πραγματοποιήθηκε σε δύο στάδια. Αρχικά, δημιουργήθηκε ένας πίνακας με όλα τα
μη-γεωγραφικά χαρακτηριστικά (attributes) και στη συνέχεια προστέθηκαν τα
γεωγραφικά χαρακτηριστικά. Στην εικόνα 4.2.2 παρουσιάζεται η εισαγωγή μιας
καινούργιας στήλης ‘stop_geom’ τύπου ‘POINT’ στο πίνακα ‘stops’. Το στοιχείο
SRID (Spatial Reference Identifier) ορίζει τον τρόπο έκφρασης των γεωχωρικών
συντεταγμένων, ενώ ο αριθμός 4326 δηλώνει τις οριζόντιες συνιστούσες του
τρισδιάστατου συστήματος.
Εικόνα 4.2.2 Παράδειγμα δημιουργίας ενός Spatialite στήλης
Αφού δημιουργηθήκαν οι 4 πινάκες, η Βάση Δεδομένων πήρε την τελική
της μορφή, που παρουσιάζεται στην εικόνα 4.2.3.
Εικόνα 4.2.3 Ένα στιγμιότυπο ενδιάμεσης μορφής της βάσεις δεδομένων
Επόμενο βήμα αποτέλεσε η εισαγωγή των απαραίτητων πληροφοριών στη
Spatialite βάση δεδομένων. Η βάση αυτή υποστηρίζει πολλούς τρόπους εισαγωγής
όπως :

απευθείας από .csv αρχεία

εκτέλεση των SQL scripts

εισαγωγή μέσο JDB Connector της Java
37
Ο πρώτος τρόπος εισαγωγής είναι η απευθείας εισαγωγή δεδομένων από
.csv αρχεία, η οποία υλοποιήθηκε αλλά δεν είχε κάποιο αποτέλεσμα. Ο δεύτερος
τρόπος είναι η εισαγωγή μέσω SQL. Για το λόγο αυτό αναπτύχθηκε μια εφαρμογή
Java που είχε ως στόχο την μετατροπή δεδομένων σε μορφή ερωτήματος εισαγωγής
(insert) SQL. Ένα παράδειγμα μετατροπής
φαίνεται στην εικόνα 4.2.4. Όπως
πρόεκυψε μετά από δοκιμές ήταν αδύνατη η εισαγωγή δεδομένων και με αυτόν τον
τρόπο.
Εικόνα 4.2.4 Παράδειγμα μετατροπής δεδομένων σε SQL ερώτημα
Τελικά, για την επίτευξη της μετατροπής και της εισαγωγής των δεδομένων
στη βάση που δημιουργήθηκε και περιγράφηκε στο υποκεφάλαιο 4.2, αναπτύχτηκε
μια εφαρμογή Java, ο κώδικας της οποίας παρουσιάζεται στην εικόνα 4.3.5. Λόγω
του ότι ο όγκος των δεδομένων ήταν πολύ μεγάλος (~2000K εγγραφές)
χρησιμοποιήθηκε batch insert και PreparedStatment. Το Batch Insert αποτελεί μια
μέθοδο εκτέλεσης SQL ερωτημάτων όταν αυτά στέλνονται προς εκτέλεση μαζί, και
όχι ξεχωριστά το ένα από το άλλο, ενώ η PreparedStatement (έτοιμη δήλωση) είναι
μια μέθοδος δήλωσης μονό των μεταβλητών τιμών στην έτοιμη φόρμα.
38
Εικόνα 4.2.5 Ένα παράδειγμα εισαγωγείς στη βάση από Java κώδικα
Όπως παρατηρείται από το κώδικα Java, στην SQL για το ερώτημα δημιουργίας
χρησιμοποιήθηκε μια συνάρτηση GeomFromText() της Spatialite επέκτασης. Η
συνάρτηση αυτή μετατρέπει τα δεδομένα σε μορφή wkt(well-known text) σε μια
δομή γεωγραφικού τύπου, που στη συγκριμένη περίπτωση είναι ένα σημείο
(POINT).
Εικόνα 4.2.6 Spatialite συνάρτηση GeomFromText12
4.3 Δημιουργία τελικού πίνακα
12
http://www.gaia-gis.it/spatialite-3.0.0-BETA/spatialite-sql-3.0.0.html
39
Μετά τη δημιουργία των βοηθητικών πινάκων ακολουθεί το στάδιο
δημιουργίας του τελικού πινάκα με τις γραμμές των λεωφορείων. Σε αυτό στάδιο
πραγματοποιηθήκαν κάποια ενδιάμεσα ερωτήματα SQL για τη μετατροπή της
βάσης.
Επειδή τα δεδομένα δεν ήταν καθαρά, δηλαδή μερικές έγγραφες δεν ήταν
μοναδικές, υπήρχαν διπλότυπα. Για το σκοπό αυτό εκτελέστηκε ένα ερώτημα SQL
στον πίνακα stop_times (Εικόνα 4.3.1), για τη σωστή διαμόρφωση των εγγραφών
σε μοναδικές τιμές.
Εικόνα 4.3.1 Παράδειγμα SQL εντολής update
Στη συνέχεια δημιουργήθηκε ένας πινάκας references στην εξής μορφή:

route συμβολοσειρά (ονομασία γραμμής )

stop αριθμός (αναγνωριστικό στάσεις )

seq αριθμός (διαιτητής στάσης στη γραμμή)
Η διαδικασία εγγραφής του πίνακα πραγματοποιήθηκε με την εκτέλεση ενός
SQL ερωτήματος INSERT INTO SELECT Stmt
στον πίνακα, την οποία
υποστηρίζει η SQLite (Εικόνα 4.3.2).
Εικόνα 4.3.2 Ενδεικτική μορφή SQL εντολής 13 INSERT INTO SELECT Stmt
13
http://www.sqlite.org/lang_insert.html
40
Εικόνα 4.3.3 Παράδειγμα SQL εντολής insert
Με τη βοήθεια της συνάρτησης MakeLine() δημιουργήθηκε ένας άλλος
πινάκας, ο geo_lines, που αποτελεί τον τελικό πίνακα με τις λεωφορειακές γραμμές
της Αθήνας.
Το ερώτημα εισαγωγής παρουσιάζεται στην Εικόνα 4.3.4. Η
MakeLine() είναι μια συνάρτηση συγκεντρωτικών αποτελεσμάτων (aggregate
function) της SQLite επέκτασης Spatialite, η μορφή της οποίας παρουσιάζεται στην
Εικόνα 4.3.5. Η μέθοδος αυτή παίρνει ως είσοδο ένα σύνολο σημείων και
επιστρέφει μια δομή τύπου LINESTRING.
Εικόνα 4.3.4 Παράδειγμα SQL εντολής insert
Εικόνα 4.3.5 Spatialite συνάρτηση MakeLine 14
Τα χαρακτηριστικά του πίνακα geo_lines είναι τα εξής :

route – ονομασία γραμμής

id – ένα μοναδικό αναγνωριστικό

line_geom – ένα χαρακτηριστικό τύπου LINESTRING που
κατασκευάστηκε με την βοήθεια της συνάρτησης MakeLine(), και
περιέχει όλες της στάσεις Ομαδοποιημένες σε γραμμές λεωφορείων
4.4 Google Map Engine
14
http://www.gaia-gis.it/spatialite-3.0.0-BETA/spatialite-sql-3.0.0.html
41
Το Google Map Engine είναι ένα εργαλείο της Google που βοηθά στη
δημιουργία ενός νέου layout πάνω στους υπάρχοντες Χάρτες Google και επιτρέπει
να φτιαχτούν καινούρια σημεία, γραμμές και πολύγωνα, που μπορούν να ορισθούν
από τον εκάστοτε χρήστη, πάνω στο χάρτη. Τα καινούργια layout μπορούν να
εξαχθούν ως .kml αρχεία και να χρησιμοποιηθούν στις συσκευές GPS ή για άλλες
χρήσεις.
Με την βοήθεια της Google Map Engine φτιαχτήκαν δυο καινούργια
layout, από τα οποία το ένα περιείχε τη μπλε και την κόκκινη γραμμή του Αττικού
Μετρό. Ο layout αυτός θα χρησιμοποιηθεί στη συνέχεια για την παράγωγη
πληροφοριών σχετικών με το αν ο χρήστης είναι κοντά στις γραμμές του μετρό, και
στην πρόσθεση ενός καινούργιου στοιχείου (feature) (το αν είναι ο χρηστής κοντά
στη γραμμή του μετρό) για καλύτερα αποτελέσματα κατηγοριοποίησης.
Το δεύτερο layout, που φτιάχτηκε με την βοήθεια της Google Map Engine,
συμπεριλαμβάνει πολύγωνα τριών τύπων, δηλαδή πλατείες, πάρκα και γήπεδα.
Δημιουργήθηκε το δεύτερο μέρος της εφαρμογής. Περιέχει πληροφορίες που είναι
χρήσιμες στην εύρεση των συνηθειών των χρηστών.
Εικόνα 4.4.1 Ένα στιγμιότυπο Google Maps Engine
Στη συνέχεια πραγματοποιήθηκε η εξαγωγή δεδομένων από τη Google
Maps Engine σε αρχεία μορφής .kml. Με τη χρήση του εργαλείου επεξεργασίας
42
κειμένου Notepad++15, τα αρχεία αυτά μετατράπηκαν σε SQL ερωτήματα
εισαγωγής(insert) και πραγματοποιήθηκε η εισαγωγή τους στην υπάρχουσα
Spatialite βάση δεδομένων. Ο καινούργιος πίνακας geo_places που δημιουργήθηκε
περιελάμβανε πληροφορίες για πολύγωνα τριών τύπων (πλατειές, πάρκα, γήπεδα),
ενώ οι γεωχωρικές πληροφορίες περιέχονταν στη στήλη «polygon_geom». Η
δημιουργία του πίνακα και ένα δείγμα εισαγωγής δεδομένων παρουσιάζεται στην
εικόνα 4.4.2
Εικόνα 4.4.2 Παράδειγμα SQL-Spatialite εντολές
4.5 Πρόσθεση παραπάνω features στο Training Set
Αφού δημιουργήθηκε η βάση με όλες τις απαραίτητες πληροφορίες , το
επόμενο στάδιο ήταν η μετατροπή των δεδομένων που συλλέχθηκαν στο πλαίσιο
της πτυχιακής εργασίας της φοιτήτριας Σ.Τραγοπούλου. Η μετατροπή αυτή αφορά
το προηγούμενο σύνολο εκπαίδευσης και σκοπεύει στην
πρόσθεση επιπρόσθετων χαρακτηριστικών στο αρχείο .arff εκπαίδευσης του
εργαλείου WEKA. Τα επιπλέον χαρακτηριστικά που προστέθηκαν είναι τα εξής:
InsideThePolygon {yes, no} – τιμή yes σε περίπτωση που ο χρήστης
βρίσκεται μέσα σε ένα από τα POLYGON(πάρκο, πλατεία, γήπεδο) και
τιμή no άμα δε βρίσκεται.
OnBusLine {yes, no} – τιμή yes εάν ο χρήστης βρίσκεται σε κάποια
(ορισμένη) απόσταση από τη γραμμή λεωφορείων και τιμή no σε αντίθετη
περίπτωση.
15
http://notepad-plus-plus.org/
43
OnMetroLine {yes, no} – τιμή yes αν ο χρήστης βρίσκεται σε κάποια
(ορισμένη) απόσταση από τη γραμμή μετρό και τιμή no σε αντίθετη
περίπτωση.
Η μετατροπή αρχείου TotalData(Training_Test)+time.arff έχει γίνει με την
βοήθεια της Android εφαρμογής Add_new_features που φτιάχτηκε για αυτό το
λόγο. Στα παρακάτω υποκεφάλαια θα περιγραφεί αναλυτικά η υλοποίηση και το
αποτέλεσμα εκτέλεσης της εφαρμογής αυτής.
4.5.1 Σύνδεση με τη Spatialite βάση
Η βάση δεδομένων που δημιουργήθηκε στα πλαίσια της παρούσας
πτυχιακής εργασίας αποτελείται από ένα αρχείο .sqlite, που όπως αναφέρεται στο
Κεφάλαιο 3 δεν χρειάζεται καμία εγκατάσταση. Για το λόγο αυτό, η βάση
τοποθετήθηκε στα assets της εφαρμογής Add_new_features.
Για τη σύνδεση με τη Spatialite βάση δεδομένων γίνεται χρήση ενός API ,
δηλαδή μιας βιβλιοθήκης jsqlite που προστίθεται στην εφαρμογή ως package στον
φάκελο /src. Η σύνδεση με τη βάση απευθείας μέσω βιβλιοθήκης jsqlite από τα
assets δεν είναι δυνατή, γιατί η Βάση Δεδομένων αν βρίσκεται στον φάκελο αυτό,
δεν είναι προσβάσιμη στις μεθόδους της εφαρμογής. Για να μπορεί να
πραγματοποιηθεί σύνδεση με την βάση, προστέθηκε στην εφαρμογή η μέθοδος
copyAssets() , η οποία εκτελείται όταν η εφαρμογή ξεκινά, και αντιγράφει την ΒΔ
στο φάκελο της εφαρμογής (Εικόνα 4.5.1).
44
Εικόνα 4.5.1.1 Η μέθοδος αντιγραφής της βάσης από /assets
Αφού η βάση μεταφέρθηκε στο άλλο σημείο, έγινε προσβάσιμη για την
εφαρμογή. Και για να ξεκινήσει η επικοινωνία γίνεται η αρχικοποίηση της βάσης
στην READONLY λειτουργία (Εικόνα 4.5.1.2).
Εικόνα 4.5.1.2 Η μέθοδος SpatialiteDBInit
4.5.2 Διαδικασία μετατροπής δεδομένων
Η εφαρμογή Add_new_features δημιουργήθηκε με στόχο τη μετατροπή του
συνόλου εκπαίδευσης TotalData(Training_Test)+time.arff, και πιο συγκριμένα την
πρόσθεση τριών επιπλέον χαρακτηριστικών, των InsideThePolygon, OnBusLine
και OnMetroLine. Η εφαρμογή διαβάζει κάθε γραμμή του αρχείου, προσθέτει
επιπλέον χαρακτηριστικά και ξαναγράφει της νέες γραμμές. Όλη αυτή διαδικασία
εκτελείται με την μέθοδο post_processing() (Εικόνα 4.5.2). Η σειρά εκτέλεσης είναι
η εξής:
45
a. Με την βοήθεια του BufferedReader διαβάζεται μια γραμμή του αρχείου
TotalData(Training_Test)+time.arff το οποίο βρίσκεται στα assets και είναι
διαθέσιμο για ανάγνωση.
b. Στη συνέχεια, η γραμμή αυτή χωρίζεται, με χρήση του StringTokenizer, σε
ένα σύνολο συμβολοσειρών, όπου κάθε συμβολοσειρά είναι ένα
χαρακτηριστικό του στιγμιότυπου(instance). Οι συμβολοσειρές αυτές
προστίθενται σε ένα String.
c. Αποθηκεύονται οι γεωγραφικές συντεταγμένες.
d. Πραγματοποιούνται 3 ερωτήματα(queries) στη Spatialite βάση
e. Τα
αποτελέσματα
ερωτημάτων
αποθηκεύονται
σαν
επιπλέον
νέο
αρχείο
χαρακτηριστικό.
f. Τα
instances(γραμμές)
επανεγγράφονται
στο
newTotalData(Training_Test)+time.arff
Εικόνα 4.5.2 Η μέθοδος post_processing
Επίσης προστέθηκε ένα ακόμα χαρακτηριστικό στο σύνολο δεδομένων, το
οποίο αντιπροσωπεύει την ώρα καταγραφής, και περιέχει μόνο την ώρα
καταγραφής του instance.

@attribute Timestamp_H date 'HH'
46
4.5.3 Queries
Τα ερωτήματα που εκτελεστήκαν στη βάση είχαν ως στόχο να βρεθεί αν το
σημείο που δόθηκε ως όρισμα είναι κοντά σε κάποιο γεωγραφικό αντικείμενο
(πολύγωνο ή γραμμή). Η Java μέθοδος που εκτελούσε τα queries επέστρεφε yes ή
no ανάλογα τη θέση του σημείου αυτού.
Στην εικόνα 4.5.3.1 παρουσιάζεται το ερώτημα που επιστρέφει όλες τις
γραμμές λεωφορείων σε ακτίνα 6 μέτρων από το σημείο. Ο αριθμός των 6 μέτρων
επιλέχθηκε ως η μέση ακρίβεια των αισθητήρων του GPS για της κινητές συσκευές
Android.
Εικόνα 4.5.3.1 Ένα παράδειγμα SQL εντολής στον πίνακα geo_lines
Η συνάρτηση distance(Geom, Geom) της Spatialite επιστρέφει την
απόσταση ενός γεωγραφικού αντικειμένου από ένα άλλο σε μονάδα μέτρησης
μοιρών κύκλου. Για την Γη μια μοίρα ισούται με 111319 μετρά, για αυτό το λόγο
χρειάζεται πολλαπλασιασμός του αριθμού αυτού με το αποτέλεσμα της
συνάρτησης distance().
Στην εικόνα 4.5.3.1 παρουσιάζεται το ερώτημα που επιστρέφει το όνομα
πολυγώνου που βρίσκεται ο χρήστης ή τίποτα αν ο χρήστης δε βρίσκεται μέσα σε
κάποιο πολύγωνο. Η συνάρτηση Within(Geom, POLYGON) επιστρέφει true, αν
το αντικείμενο είναι μέσα στο πολύγωνο, ή false σε αντίθετη περίπτωση.
Εικόνα 4.5.3.2 Ένα παράδειγμα SQL εντολής στον πίνακα geo_places
4.6 Αλλαγές στης εφαρμογές GPSTracker και CollectMovingData
47
Στο πλαίσιο των εργασιών που εκτελέστηκαν εφαρμοστήκαν κάποιες
αλλαγές στα δεδομένα εκπαίδευσης. Ως αποτέλεσμα χρειάστηκε να γίνουν κάποιες
αλλαγές στις εφαρμογές καταγραφής και στις ανιχνεύσεις δεδομένων κίνησης
CollectMovingData και GPSTracker αντίστοιχα.
4.6.1 Spatialite βιβλιοθήκη
Πρώτον,
προστέθηκε η βιβλιοθήκη jsqlite (Spatialite API) , για την
υποστήριξη της επικοινωνίας με την Spatialite ΒΔ. Εκτελέστηκαν δυο ενέργειες:
προστέθηκε το package
jsqlite στο υποφάκελο /src της εφαρμογής, και
βιβλιοθήκη
για
libjsqlite.so
την
υποστήριξη
διαφορετικών
(ARM,ARM-v7a,x86), όπως φαίνεται στην εικόνα 4.6.1. [6]
Εικόνα 4.6.1 Η μορφή της εφαρμογής GPSTracker
48
η
πλατφορμών
4.6.2 Διαδικασία προετοιμασίας της βάσης στην εφαρμογή
Στη συνέχεια προστέθηκε η μέθοδος εκκίνησης της Spatialite ΒΔ. Η
διαδικασία είναι ίδια με αυτή που περιγράφεται στο υποκεφάλαιο 4.5.1, δηλαδή το
πρώτο βήμα είναι να αντιγραφεί η βάση από assets στο φάκελο της εφαρμογής και
στη συνέχεια ανοίγει στη READONLY λειτουργία.
4.6.3 Επικοινωνία με τη βάση
Η επικοινωνία της εφαρμογής με τη βάση δεδομένων γίνεται μέσω
Spatialite ερωτημάτων, τα οποία καλούνται με διαφορετικές για κάθε ερώτημα
μεθόδους.
a. public String inside_the_poligon(double Latitude, double Longitude)
Η μέθοδος (εικ. 4.6.3.1) παίρνει δυο double αριθμούς (γεωγραφικές
συντεταγμένες, δηλαδή ένα σημείο) ως παραμέτρους και επιστρέφει yes, αν το
σημείο βρίσκεται μέσα σε κάποιο από τα πολύγωνα που συμπεριλαμβάνεται
στη βάση δεδομένων ή no, αν δεν βρίσκεται μέσα σε κανένα από αυτά. Το
query που εκτελείται περιγράφεται στο υποκεφάλαιο 4.5.3.
Εικόνα 4.6.3.1 H μέθοδος inside_the_polygon
b. public String near_the_metro(double Latitude, double Longitude)
49
Η μέθοδος (εικ. 4.6.3.2) που παίρνει ως παραμέτρους δυο double
αριθμούς (γεωγραφικές συντεταγμένες, στην ουσία ένα σημείο) και
επιστρέφει yes, αν το σημείο βρίσκεται κοντά σε γραμμή του μετρό ή no,
σε αντίθετη περίπτωση. Το query που εκτελείται περιγράφεται στο
υποκεφάλαιο 4.5.3.
Εικόνα 4.6.3.2 H μέθοδος near_the_metro
c. public String near_the_line(double Latitude, double Longitude)
Η μέθοδος (εικ. 4.6.3.3) που παίρνει δυο double αριθμούς ως
παραμέτρους (γεωγραφικές συντεταγμένες, δηλαδή ένα σημείο) και
επιστρέφει yes , αν το σημείο βρίσκεται κοντά σε γραμμή λεωφορείου ή no,
αν όχι. Το query που εκτελείται περιγράφεται στο υποκεφάλαιο 4.5.3.
Εικόνα 4.6.3.3 H μέθοδος near_the_line
50
4.6.4 Αλλαγή στην εγγραφή στιγμιότυπου
Οι 3 μέθοδοι που αναφερθήκαν στο προηγούμενο κεφάλαιο καλούνται για
να εμπλουτίσουν την πληροφορία του στιγμιότυπου κίνησης, με στόχο τη
βελτίωση της ανίχνευσης του τύπου κίνησης του χρήστη. Οι επιστρεφόμενες
τιμές των μεθόδων αυτών εισάγονται στο στιγμιότυπο (instance) για μετέπειτα
κατηγοριοποίηση.
Εικόνα 4.6.4.1 Εδώ καλούνται οι μέθοδοι που προστεθήκαν
Επίσης, λόγω του ότι αυξήθηκε ο αριθμός χαρακτηριστικών, χρειάστηκε να
μεταβληθεί η επικεφαλίδα του στιγμιότυπου. Η νέα μορφή της επικεφαλίδας
παρουσιάζεται στην εικόνα 4.6.4.2. Για το λόγο αυτό άλλαξε η μέθοδος
εγγραφής της επικεφαλίδας, δηλαδή προστέθηκαν στη μέθοδο οι γραμμές που
φαίνονται στην εικόνα 4.6.4.3.
Εικόνα 4.6.4.2 Νέα μορφή της επικεφαλίδας .arff αρχείου
51
Εικόνα 4.6.4.3 Εγγράφει .arff επικεφαλίδας
52
5 Αξιολόγηση
5.1 Εισαγωγή
Αφού ολοκληρώθηκε η υλοποίηση της εφαρμογής, πραγματοποιήθηκε η
αξιολόγηση και η σύγκριση των αποτελεσμάτων κατηγοριοποίησης των δυο
συνόλων δεδομένων. Το πρώτο σύνολο δεδομένων είναι τα δεδομένα που
χρησιμοποιηθήκαν στην πτυχιακή της Σ. Τραγοπούλου, σε συνδυασμό με τα οποία
έχουν προστεθεί
επιπλέον χαρακτηριστικά και αποτελούν το δεύτερο σύνολο
δεδομένων.
Η μορφή του αρχείου TotalData(Training+Test).arff παρουσιάζεται στην
εικόνα 5.1 και είναι το σύνολο δεδομένων πριν την μετατροπή. Δηλαδή τα
χαρακτηρίστηκα μιας εγράφης είναι τα έξης:

Γεωγραφικό μήκος (Longitude)

Γεωγραφικό πλάτος (Latitude)

Τρέχουσα ταχύτητα (CurrentSpeed)

Σχετική ταχύτητα (RelativeSpeed)

Γεωγραφικό ύψος (Altitude)

Ώρα και ημερομηνία (Timestamp)

Ζώνη ώρας (TimeZoneOffSet)

Ημέρα της εβδομάδας (DayOfWeek)

Εργάσιμη/όχι μέρα (IsWorkingDay)

Τύπος κίνησης (MoveType)

Έχει/δεν έχει σήμα GPS (IsGpsFixed)
Εικόνα 5.1.1 Η μορφή της επικεφαλίδας αρχικού αρχείου
53
Η μορφή του καινούργιου αρχείου παρουσιάζεται στην εικόνα 5.2. Έχει
επιπλέον 4 χαρακτηριστικά:

Ώρα καταγραφής (Timestamp_H )

Είναι/ δεν είναι μέσα σε ένα πολύγωνο (InsideThePoygon)

Είναι/δεν είναι σε γραμμή λεωφορείου (OnBusLine)

Είναι/δεν είναι σε γραμμή μετρό (OnMetroLine)
Εικόνα 5.1.2 Νέα μορφή της επικεφαλίδας .arff αρχείου
5.2 Πειράματα
Για την αξιολόγηση της εργασίας που εκτελέστηκε και των αλλαγών που
έχουν γίνει πραγματοποιήθηκε η κατηγοριοποίηση των καινούργιων και των
παλιών δεδομένων. Η κατηγοριοποίηση εκτελέστηκε με τη χρήση του αλγορίθμου
RandomForest και η αξιολόγηση έγινε με χρήση 10-fold cross validation. Τα
αποτελέσματα αυτής της κατηγοριοποίησης φαίνονται στον πίνακα 5.2.1.
54
Αρχικό σύνολο δεδομένων
Ακρίβεια Κατηγοριοποίησης
Σύνολο δεδομένων μετά
από μετατροπή
92.6959 %
(Accuracy)
92.8508 %
Πίνακας 5.2.1 Σύγκριση αποτελεσμάτων κατηγοριοποίησης δυο συνόλων δεδομένων στην αρχική
τους μορφή
Παρατηρώντας
κατηγοριοποίησης
των
τα
αποτελέσματα
δεδομένων
και
διακρίνεται
στα
δύο
ότι
σύνολα
η
ακρίβεια
στα
οποία
πραγματοποιήθηκε δεν αντιπροσωπεύουν πραγματικά αποτελέσματα. Η εικόνα
5.2.1 δείχνει την κατάταξη των χαρακτηριστικών που λήφθηκαν υπόψη κατά την
κατηγοριοποίηση των δεδομένων με την εκτέλεση του αλγορίθμου αξιολόγησης
InfoGainAttributeEval
και
τη
μέθοδο
Ranker
με
παραμέτρους
-Τ
-
1.7976931348623157E308 -Ν -1.
Εικόνα 5.2.1 Κατάταξη χαρακτηριστικών
Τα χαρακτηριστικά Timestamp, Longitude και Latitude επηρεάζουν σε
μεγάλο βαθμό το αποτέλεσμα, αλλά στην πραγματικότητα δε συμβάλουν στη
διαδικασία της κατηγοριοποίησης. Τα δεδομένα και στα δύο σύνολα είναι πολύ
ομαδοποιημένα στα χαρακτηριστικά αυτά, ενώ στην πραγματικότητα η αξιολόγηση
της κατηγοριοποίησης γίνεται με πραγματικά δεδομένα και όχι με την 10-fold cross
validation μέθοδο. Προκύπτει, λοιπόν, το συμπέρασμα ότι τα χαρακτηριστικά αυτά
μπορούν να παραληφθούν αφού δεν εξάγουν καμία χρήσιμη πληροφορία για το
αποτέλεσμα της κατηγοριοποίησης. Ένα ακόμη χαρακτηριστικό που μπορεί να μη
ληφθεί υπόψη κατά την κατηγοριοποίηση είναι το TimeZoneOffSet, το οποίο δεν
55
έχει
νόημα
αφού
εμφανίζει
μηδενικές
τιμές
στην
κατάταξη
επιρροής
χαρακτηριστικών που αναφέρθηκε παραπάνω, καθώς και για το λόγο ότι η συλλογή
δεδομένων έγινε σε περιοχές με ίδια ζώνη ώρας (Ελλάδα, GMT+2). Η διαγραφή
των χαρακτηριστικών αυτών πραγματοποιήθηκε με τη χρήση του φίλτρου Remove
που παρέχει το εργαλείο Weka16.
Για την παρακολούθηση της πραγματικής ακρίβειας της κατηγοριοποίησης
και των δύο συνόλων δεδομένων μετά την απαλοιφή των χαρακτηριστικών
Timestamp, Longitude, Latitude και TimeZoneOffSet, ακολουθήθηκε η ίδια
διαδικασία κατηγοριοποίησης. Παρατηρήθηκε ότι το ποσοστό ακρίβειας της
κατηγοριοποίησης για τα νέα σύνολα δεδομένων μειώθηκε, γεγονός αναμενόμενο.
Παράλληλα όμως, διακρίνεται το μεγάλο ποσοστό διαφορά της ακρίβειας της
κατηγοριοποίησης (κατά 20,385 %) μεταξύ
των δύο συνόλων δεδομένων. Η
διαφορά αυτή οφείλεται στο ότι στο καινούργιο σύνολο δεδομένων τα
χαρακτηριστικά που προστέθηκαν επηρεάζουν το αποτέλεσμα αυξάνοντας την
ακρίβεια κατηγοριοποίησης.
Αρχικό σύνολο δεδομένων
Σύνολο δεδομένων μετά από
μετατροπή
Ακρίβεια
Κατηγοριοποίησης
63.7229 %
84.108 %
(Accuracy)
Κατάταξη
Χαρακτηριστικών
Πίνακας 5.2.2 Αποτελέσματα κατηγοριοποίησης και κατάταξη χαρακτηριστικών μετά την αφαίρεση
ημερομηνίας
Παρ’ όλα αυτά, πέρα από την αύξηση της ακρίβειας παρατηρούμε ότι στα
αποτελέσματα της κατηγοριοποίησης του αρχικού συνόλου δεδομένων υπάρχουν
16
Weka.filters.unsupervised.attributes.Remove
56
πολλές λανθασμένες τιμές μεταξύ του είδους κίνησης που πραγματοποίησε ο
χρήστης και της κατηγορίας στην οποία αντιστοιχήθηκε η κίνησή του. Για
παράδειγμα, 110 κινήσεις χρηστών τύπου «Bus» κατηγοριοποιήθηκαν λανθασμένα
ως κινήσεις «Driving» (εικ. 5.2.2). Από αυτά τα λανθασμένα δείγματα
κατηγοριοποίησης επιλέχθηκε η κατηγοριοποίηση 5 διαφορετικών συνδυασμών
κινήσεων όπως φαίνεται στον πίνακα 5.2.3.
Εικόνα 5.2.2 Confusion Matrix κατηγοριοποίησης αρχικών δεδομένων
Ακρίβεια
Ακρίβεια Κατηγοριοποίησης
Κατηγοριοποίησης Αρχικού
Δεύτερου Συνόλου
Συνόλου Δεδομένων
Δεδομένων
Bus - Driving
77.9561 %
96.7905 %
Bus - Walking
86.8098 %
90.4141 %
Bus - Motionless
93.1165 %
93.8729 %
Metro - Motionless
83.9041 %
91.8297 %
Walking - Driving
85.9155 %
96.9014 %
Συνδυασμός Κινήσεων
Πίνακας 5.2.3 Αποτελέσματα κατηγοριοποίησης συνδυασμών κινήσεων στα δυο σύνολα
δεδομένων
Το αποτέλεσμα της κατηγοριοποίησης του συνδυασμού κίνησης «BusDriving» ήταν η αύξηση της ακρίβειας της κατηγοριοποίησης των δεδομένων του
δεύτερου συνόλου σε σχέση με το πρώτο (κατά 18,83%). Παράγοντες αυτής της
αύξησης ήταν η προσθήκη των χαρακτηριστικών InsideThePoygon, OnMetroLine
και ειδικά Timestamp_H και
OnBusLine (εικ. 5.2.3). Η ίδια διαδικασία
ακολουθήθηκε και για τους συνδυασμούς κίνησης που φαίνονται στον πίνακα
57
5.2.3, τα αποτελέσματα των οποίων αποδεικνύουν το ίδιο θετικό αποτέλεσμα,
δηλαδή την αύξηση της ακρίβειας κατηγοριοποίησης.
Εικόνα 5.2.3 Κατάταξη χαρακτηριστικών
Για
την
μελέτη
του
ποσοστού
επιρροής
του
χαρακτηριστικού
«Timestamp_H» στην ακρίβεια κατηγοριοποίησης και των δύο συνόλων
δεδομένων επιλέχθηκε η εξής διαδικασία: η αφαίρεση του χαρακτηριστικού
«Timestamp_H» στα τροποποιημένα δεδομένα. Τα αποτελέσματα των διαδικασιών
αυτών φαίνονται στον πίνακα 5.2.4.
Αρχικά δεδομένα
Δεύτερο Σύνολο Δεδομένων
Ακρίβεια
Κατηγοριοποίησης
Αρχικού Συνόλου
Δεδομένων (Χωρίς την
ώρα)
Ακρίβεια
Κατηγοριοποίησης
Δεύτερου Συνόλου
Δεδομένων (Χωρίς
την ώρα)
Ακρίβεια
Κατηγοριοποίησης
Δεύτερου Συνόλου
Δεδομένων
Όλα τα χαρακτηριστικά
63.7229 %
68.371 %
84.108 %
Bus - Driving
77.9561 %
81.7568 %
96.7905 %
86.8098 %
86.8098 %
90.4141 %
93.1165 %
93.1921 %
93.8729 %
83.9041 %
87.1331 %
91.8297 %
85.9155 %
87.6056 %
96.9014 %
Συνδυασμός Κινήσεων
Bus Walking
Bus Motionless
Metro - Motionless
Walking Driving
Πίνακας 5.2.4 Αποτελέσματα κατηγοριοποίησης συνδυασμών κινήσεων στα όλα τα σύνολα
δεδομένων
58
6 Συμπεράσματα
6. Σύνοψη-Συμπεράσματα
Στην παρούσα πτυχιακή εργασία υλοποιήθηκε επέκταση της ήδη
υπάρχουσας εφαρμογής GPSTracker, χρησιμοποιώντας γεωχωρικά δεδομένα και
αλλάζοντας μερικά από τα υπάρχοντα γνωρίσματα με στόχο να αυξηθεί η ακρίβεια
της κατηγοριοποίησης της κίνησης.
Όπως παρατηρήθηκε μετά από την εξέταση των αποτελεσμάτων, η ακρίβεια
του μοντέλου κατηγοριοποίησης αυξήθηκε κατά 4,65 % με πρόσθεση καινούργιας
πληροφορίας στα δεδομένα εκπαίδευσης. Επίσης μετά από μετατροπή του
χαρακτηριστικού που αντιπροσωπεύει την ώρα, το αποτέλεσμα αυξήθηκε κατά
20.38 % σε σχέση με τα αρχικά δεδομένα
6.2 Μελλοντικές επεκτάσεις
Ωστόσο, η παρούσα εφαρμογή παρουσιάζει περιθώρια επέκτασης, τόσο
στην βελτίωση της τεχνικής κατηγοριοποίησης, όσο και στην επέκταση της
λειτουργικότητάς της. Η υπάρχουσα τεχνική εξετάζει την κίνηση του χρήστη σε
επίπεδο στιγμιότυπου, ενώ ο στόχος της είναι να ανιχνεύσει την δραστηριότητα του
χρήστη σε μεγαλύτερο χρονικό παράθυρο. Για αυτό τον λόγο, ίσως να ήταν
αποδοτικό να ακολουθηθεί μια διαφορετική προσέγγιση, η οποία θα εξετάζει την
κίνηση του χρήστη σε επίπεδο τροχιάς.
Παράλληλα, όσο αφορά στην υλοποίηση της διαδικασίας κατηγοριοποίησης
στην κινητή συσκευή, μια σημαντική βελτίωση της διαδικασίας είναι η
απομάκρυνση της εκπαίδευσης του μοντέλου από την συσκευή. Θα ήταν
αποδοτικότερο το μοντέλο κατηγοριοποίησης να φορτώνεται απευθείας στην
συσκευή, μειώνοντας έτσι τον χρόνο της διαδικασίας πρόβλεψης της κίνησης αλλά
και τους απαιτούμενους πόρους της κινητής συσκευής.
Τέλος, η εφαρμογή διαθέτει τη δυνατότητα μεταφόρτωσης των διαδρομών
του χρήστη στο Dropbox (υπηρεσία cloud), με στόχο τη δημιουργία ενός κεντρικού
αποθετηρίου δεδομένων κίνησης. Με τα δεδομένα αυτά, μετά από ανάλυση
μπορούν να εξαχθούν συμπεράσματα για τις συνήθειες του χρήστη και
κατ᾽επέκταση μπορεί να υλοποιηθεί ένα σύστημα συστάσεων το οποίο θα προτείνει
στον χρήστη δραστηριότητες με βάση τις συνήθειες του και τα σημεία
59
ενδιαφέροντος του. Για παράδειγμα, αν ένας χρήστης συνηθίζει να κάνει ποδήλατο,
θα μπορούσαν να του προτείνονται μέρη που μπορεί να επισκεφτεί κάνοντας
ποδήλατο ή ακόμα διαθέσιμα καταστήματα με ποδηλατικό εξοπλισμό.
60
Βιβλιογραφία
[1] Wikipedia, the Free Encyclopedia. SQLite.
https://el.wikipedia.org/wiki/SQLite#cite_note-8
[2] Sqlite.org. About SQLite
http://sqlite.org/mostdeployed.html
[3] SpatiaLite - spatial extensions for SQLite.
http://www.gaia-gis.it/spatialite-2.1/SpatiaLite-manual.html
[4] Developers, Android. "What is Android." (2011).
[5] Lee, DongWoo, and Steve HL Liang. "Geopot: a Cloud-based geolocation data
service for mobile applications." International Journal of Geographical Information
Science 25.8 (2011): 1283-1301.
[6] Descamps-Vila, Laia, Jordi Conesa, and Antonio Perez-Navarro. "How Can
Semantic Be Introduced in GIS Mobile Applications: Expectations, Theory and
Reality." Intelligent Networking and Collaborative Systems (INCoS), 2012 4th
International Conference on. IEEE, 2012.
[7] Witten, Ian H., and Eibe Frank. Data Mining: Practical machine learning tools
and techniques. Morgan Kaufmann, 2005.
[8]
Tragopoulou,
Spiridoula,
Iraklis
Varlamis,
and
Magdalini
Eirinaki.
"Classification of movement data concerning user’s activity recognition via mobile
phones." Proceedings of the 4th International Conference on Web Intelligence,
Mining and Semantics (WIMS14). ACM, 2014.
[9] Jafari Salim M. The Analysis of Open Source Software and Data for Establishment of GIS
Services Throughout the Network in a Mapping Organization at National or International
Level : Politecnico di Torino, 2014.
61