k-Anonymität von GPS-Spuren mit Hilfe von DBSCAN

Transcription

k-Anonymität von GPS-Spuren mit Hilfe von DBSCAN
Fachbereich Mathematik/Informatik
AG Datenbanksysteme
Bachelorarbeit
k-Anonymität von GPS-Spuren mit
Hilfe von DBSCAN und OPTICS
vorgelegt am: 17. Juli 2013
Autor:
Christian Windolf
[email protected]
Betreuer:
MSc. Sebastian Müller
[email protected]
Prüferin:
Prof. Dr. Agnès Voisard
Zweitprüfer:
Prof. Dr. Wolgang Mulzer
2
abstract
In this work will be evaluated, if the algorithms DBSCAN and OPTICS suit for
ensuring k-anonymity on GPS-traces. To evaluate these algorithms, a prototype was
created that tries to find clusters in GPS datasets, that can be aggregated in a way, that
it preserves as much as possible from the original data. Because a trace usually does not
go along closely with another trace over the whole length, the prototype splits them at
crossroads. The crossroads are found by the assumption, that the density rises locally
at crossroads and can be found by OPTICS. After splitting the tracks into segments,
DBSCAN is used to detect clusters on them. Finally, these cluster will be aggregated.
Zusammenfassung
In dieser Arbeit wird untersucht, wie gut die Cluster-Algorithmen DBSCAN und OPTICS geeignet sind, um k-Anonymität auf GPS-Spuren zu ermöglichen. Um dies zu
evaluieren, wurde ein Prototyp geschrieben, der versucht, Cluster in GPS-Datensätzen
zu finden, die so aggregiert werden können, dass möglichst viele Informationen über den
ursprünglichen Datensatz erhalten bleiben. Allerdings verlaufen Spuren normalerweise
nicht die ganze Zeit nebeneinander, sondern nur partiell. Um dieses Problem zu umgehen, werden die Spuren an Kreuzungen in Segment zerlegt. Die Kreuzungen werden
anhand der Annahme ermittelt, dass die Punktdichte in ihrer Nähe lokal ansteigt und
OPTICS geeignet ist, diese zu finden. Nachdem diese zerlegt worden sind, wird DBSCAN
eingesetzt, um Cluster zu erkennen, die schlussendlich aggregiert werden können.
Inhaltsverzeichnis
1. Einleitung
1.1. Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Grundlagen
2.1. k-Anonymität . . . . . . . . . . . . .
2.2. Clusteranalyse . . . . . . . . . . . . .
2.2.1. DBSCAN . . . . . . . . . . .
2.2.2. OPTICS . . . . . . . . . . . .
2.3. Distanzfunktionen . . . . . . . . . . .
2.3.1. Fréchet-Distanz . . . . . . . .
2.3.2. Hausdorff-Distanz . . . . . . .
2.4. Unterstützende Funktionen . . . . . .
2.4.1. UTM-Projektion . . . . . . .
2.4.2. RBaum . . . . . . . . . . . .
2.4.3. Ramer-Douglas-Peucker-Filter
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
7
.
.
.
.
.
.
.
.
.
.
.
8
8
9
9
11
13
14
16
17
17
18
19
3. Design
3.1. Kreuzungserkennung . . . .
3.1.1. OPTICS . . . . . . .
3.1.2. Clusterextraktion .
3.1.3. Schwankungsanalyse
3.2. Aggregierung . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
22
25
28
28
4. Implementierung
4.1. Eingabe . . . . . . .
4.2. Bereinigung . . . . .
4.3. Karte . . . . . . . . .
4.4. Algorithmen . . . . .
4.5. Kreuzungserkennung
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
30
31
32
32
33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Evaluation
36
5.1. Kreuzungserkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4
5.1.1. Optische Evaluation .
5.1.2. Statistische Evaluation
5.2. Aggregierung . . . . . . . . .
5.2.1. Optische Evaluation .
5.2.2. Statistische Evaluation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
36
40
42
42
45
6. Fazit & Ausblick
47
6.1. Kreuzungserkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2. Aggregierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7. Literaturverzeichnis
50
A. Verwendete Bibliotheken
53
B. CD-Inhalt
54
5
1 | Einleitung
Die Hürden, große Mengen an Bewegungsdaten über einzelne Personen zu sammeln,
sind in den vergangenen fünf Jahren deutlich gesunken. Durch die wachsende Verbreitung von Smartphones[Gar13] steigt automatisch auch die Verbreitung con GPSSensoren. (Im iPhone[App12] sind sie enthalten; Google empfiehlt für Android, das laut
Gartner[Gar13] beliebteste Betriebssystem für Smartphones ist, dass ein GPS-Sensor
eingebaut ist.[Goo13, Abschnitt 7.3.3]). Dadurch ergeben sich beispielsweise für Sozialwissenschaften neue Möglichkeiten, Bewegungsdaten kostengünstig zu sammeln, da
Teilnehmer einer Studie nur überredet werden müssen, Messungen auf ihrem Telefon
zuzulassen, anstatt ihnen einen GPS-Empfänger zur Verfügung zu stellen.[ROE09] Für
die Veröffentlichung der in einer Studie gesammelten Daten gibt es dann auch mehrere
Gründe: Zum einen erfordern wissenschaftliche Standarts, dass die Schlussfolgerungen
in den Arbeiten nachvollziehbar sein sollen. Zum anderen erleichtert die Veröffentlichung
anderen Forschungsgruppen, Ausgangsdatensätze für ihre Arbeiten zu erstellen.
1.1
|
Aufgabenstellung
In dieser Arbeit wird untersucht, in wie weit sich die Algorithmen DBSCAN und OPTICS eignen, um k-Anonymität auf GPS-Spuren sicher zu stellen, so dass die Daten
problemlos weiter gegeben werden können. Die Funktionsweise der verwendeten Algorithmen wird in den Abschnitten 2.2.1 und 2.2.2 sowie zusätzliche Distanzfunktionen
(2.3) und andere Werkzeuge (2.4) erläutert. In Kapitel 3 wird erläutert, wie diese Verfahren bei der Aggregation verwendet werden solllen. Die konkrete Implementierung
wird in 5 erläutert und die Ergebnisse werden in Kapitel 5 diskutiert.
1.2
|
Motivation
Neben Forschungsprojekten gibt es auch Benutzergruppen, die Daten für ein bestimmtes
Projekt sammeln. Ein Beispiel dafür ist das OpenStreetMap-Projekt, dessen Ziel es ist,
eine frei verfügbare Karte zu erstellen. Werden diese Datensätze veröffentlicht, reicht
es allerdings nicht, die Namen der Personen aus dem Datensatz zu entfernen. Philippe
Golle und Kurt Partige ermittelten in ihrer Studie [PG09], dass eine Reindentifizierung
möglich ist, sobald einem Angreifer Wohnort und Arbeitsplatz bekannt ist. Auch hilft es
wenig, wenn man die Enden an Straßenblöcken „abschneidet“. Golle und Partige zeigten,
6
dass danach immer noch eine Wahrscheinlichkeit von 10% besteht, dass die Spuren noch
ihrem Besitzer zugeordnet werden können.
Bei dieser Arbeit wird davon ausgegangen, dass einem Angreifer A ein k − anonymer
Datensatz aus Bewegungsdaten DSk−anonym zur Verfügung steht. A weiß, dass die Person P , über die A mehr wissen will, in DSk−anonym enthalten ist. A besitzt zudem
auch noch weitere Bewegungsinformationen DScache über P , über die man jedoch keine konkreten Annahmen machen kann, da die möglichen Quellen vielfältig sind. A und
P könnten sich möglicherweise begegnet sein, was A einen Ort und einen Zeitstempel
liefert.
Es ist wünschenswert, dass DSk−anonym es nicht zulässt, dass A dem Datensatz
DScache keine weiteren Informationen hinzufügen kann und gleichzeitig weiterhin statistische Auswertungen von DSk−anonym noch möglich sind. Um diese Anonymisierung
zu gewährleisten, werden die Spuren aggregiert, das heißt. es werden mehrere Spuren zu
einer Spur zusammen gefasst. Eine aggregierte Spur setzt sich dann aus mindestens k
Einzelspuren zusammen, um k-Anonymität zu gewährleisten.
1.3
|
Verwandte Arbeiten
Das Aggregieren von GPS-Spuren hat in den vergangenen Jahren deutlich an Bedeutung
gewonnen. Das hängt verständlicherweise damit zusammen, dass auch die Menge der
verfügbaren Daten deutlich angestiegen ist und dies nicht nur aus datenschutz-rechtlicher
Sicht Probleme aufwirft.
Johannes Mitlmeier [Mit12] beschäftigte sich ebenfalls mit diesem Thema. Er setzte
jedoch keine Clustering-Algorithmen ein, sondern lief entlang einer Spur und suchte währenddessen passende weitere Spuren. Beim Aggregieren wird dann berücksichtigt, dass
eine Spur bereits ein Aggregat sein kann und deshalb „schwerer“ sein kann. Als mögliche
zusätzlich Motivation für die Aggregierung von GPS-Daten nennt er die Komprimierung
iner sehr großen Datenmenge. Diese Arbeit baut dabei auf Ideen aus [MV12] auf.
Einen ähnlichen Ansatz wie Mitlmeier haben bereits Zhang und Sester [ZS10] geschildert, die allerdings nicht aggregierte Spuren nahmen und diese mit Einzelspuren
veränderten, sondern Kartendaten nahmen und diese mit GPS-Spuren aktualisierten.
Cao und Krumm [CK09] stellen hingegen einen Ansatz vor, bei dem sie Anziehungskräfte zwischen den Spuren simulieren. Dies diente vor allem dem Zweck, Messungenauigkeiten von GPS auszugleichen, wäre jedoch auch für eine Aggregation ein interessanter
Ansatz.
Könnecke [Kö13] nutzt in seiner Bachelorarbeit ebenfalls ein Verfahren zur Clusteranalye, allerdings k-means. Das Verfahren, um die gefundenen Cluster zu aggregieren, ist
dem Verfahren, das hier in dieser Arbeit vorgestellt wird, sehr ähnlich. Daher unterscheiden sich diese Arbeiten hauptsächlich durch die Verwendung der Clusteralgorithmen.
Franz Gatzke beschäftigte sich ebenfalls mit dem Thema k-Anonymität. Er evaluierte
dabei gleich vier verschiedene, wenn auch einfachere Algorithmen zur Aggregation.[Gat12]
7
2 | Grundlagen
In diesem Kapitel werden die wichtigsten Begriffe erläutert. In Abschnitt 2.1 wird erläutert, was die in 2.2 vorgestellten Algorithmen erreichen sollen. Darauf folgend werden
in Abschnitt 2.3 Distanzfunktionen erläutert, die diese Algorithmen verwenden können. Der letzte Abschnit 2.4 widmet sich einerseits der UTM -Projektion (2.4.1), die die
Implementierung der Algorithmen erleichtert und stellt den RBaum (2.4.2) vor - eine
Datenstruktur, die eine Beschleunigung der Laufzeit ermöglicht. Als letztes wird der
RDP-Filter vorgestellt (2.4.3).
2.1
|
k-Anonymität
Der Begriff k-Anonymität wurde von Latanya Sweeney eingeführt.[Swe02] Sie beschrieb
anhand von Datensätzen aus Krankenhäusern die entstandenen Datenschutzprobleme.
Krankenhäuser veröffentlichen Daten darüber, welche Fälle sie behandelt haben. Zusätzlich veröffentlich sie Postleitzahl, Geschlecht und Geburtsdatum der Patienten. Die
Namen wurden hingegen entfernt. Sweeney zeigte, dass es trotzdem möglich ist, die
eigentlichen Patienten zu reidentifizieren. Die Kombination aus den drei genannten Attributen macht dies bei 87% aller US-Bürger möglich. Daher wurde von ihr der Begriff
quasi-Identifizierer eingeführt. Quasi-Identifizierer sind Attribute, die auch in anderen
Datenquellen auftauchen können und dadurch die Identifizierung doch noch ermöglichen, obwohl die Daten auf den ersten Blick kaum den Eindruck erwecken, eine ganz
bestimmte Person zu beschreiben. Sensible Attribute sind wiederrum die Attribute, bei
denen nicht gewollt ist, dass sie einer bestimmten Person zugeordnet werden können.
Beispielsweise die Diagnose über eine bestimmte Krankheit.
Mit Hilfe des ebenfalls öffentlich zugänglichen Wöhlerregisters konnten die Behandlungen (also die sensiblen Attribute) den Personen zugeordnet werden, obwohl im Ausgangsdatensatz nur Quasi-Identifizierer vorhanden waren. Daher können solche Datensätze nicht als anonym betrachtet werden.
Definition 1 (k-Anonymität) Ein Datensatz ist dann k-anonym, wenn die Informationen für jede Person nicht von denen von mindestens k − 1 anderen Individuen im Datensatz unterscheidbar sind.1
8
k-Anonymität auf GPS-Spuren sicher zu stellen ist auch eine Frage, wie es interpretiert werden soll. Man kann den Datensatz nicht in sensible und quasi-identifizierende
Attribute unterteilen. Jeder Teil einer Spur kann quasi-identifizierend sein, weil A für
diesen bestimmten Ort bereits Informationen über P hat. Und umgekehrt kann jede
Stelle die sensible Information sein, an der A wirklich interessiert ist.
2.2
|
Clusteranalyse
Eine Clusteranalyse dient dazu, Gruppierungen in Datensätzen zu entdecken. Sie wird
vor allem im Datamining und beim Knowledge Discovery eingesetzt. Die dazu eingesetzten Clusteralgorithmen liefern jedoch unterschiedliche Arten von Clustern. Hierarchische
Clusterverfahren liefern innerhalb der Gruppierungen noch einmal Untergruppierungen
während partitionierende Verfahren die Objekte in Gruppen einordnen.
Jeder Clusteralgorithmus benötigt neben dem Datensatz als Eingabe noch zusätzlich
eine Distanzfunktion, die eine Ähnlichkeit zwischen zwei Objekten ermittelt.[SE00, S.
46f] Dabei bedeutet ein kleinerer Ergebniswert eine größere Ähnlichkeit. Für eine Distanzfunktion dist müssen die folgenden zwei weiteren Eigenschaften gelten:
1. Sie muss symmetrisch sein, also dist(x1 , x2 ) = dist(x2 , x1 ).
2. Falls sie identische Objekte vergleicht, so gilt: dist(x1 , x1 ) = 0.
2.2.1
|
DBSCAN
DBSCAN steht für „Density-Based Spatial Clustering of Application with Noise“. Der
Algorithmus ist ein dichte-basierter Cluster-Algorithmus und wurde 1996 an der LMU
München entwickelt.[SEKX96]. Der Algorithmus erhält als Eingabe neben dem Datensatz und der Distanzfunktion noch zwei weitere Parameter: ist der maximale Radius,
in dem nach Objekten gesucht werden kann. minP ts ist die minimale Anzahl an Objekten, die ein Cluster enthalten muss. Zum Verständnis von DBSCAN sind zunächst
einige Definitionen notwendig.
Definition 2 (-Umgebung) Sei D der Datensatz und als Eingabeparameter gegeben. Dann ist die -Umgebung N (p) eines Objektes p ∈ D wie folgt definiert:2
N (p) = {q ∈ D|dist(p, q) ≤ }
1 Vom
Autor aus dem Englischen übersetzt. Original: „A release provides k-anonymity protection if
the information for each person contained in the release can not be distinguished from at least k − 1
individuals whose information also appears in the release.“ [Swe02, S.1]
2 Übersetzung aus dem Englischen vom Autor. Original: „The Eps-Neighbourhood of a point p, denoted
by Neps (p), is defined by Neps = {q ∈ D|dist(p, q) ≤ “
9
Darauf aufbauen kann auch gleich die direkte Dichte-Erreichbarkeit (directly densityreachablity) definiert werden.
Definition 3 (direkte Dichte-Erreichbarkeit) Ein Objekt p ist direkt dichteerreichbar von q, wenn für die gegebenen Parameter und minP ts folgende Eigenschaften gelten: 3
1. p ∈ N (q)
2. |N (q)| ≥ minP ts
Zwei weitere Definitionen (Def. 4 und Def. 5) sind für das Verständnis von DBSCAN
notwendig. Sie werden zusätzlich in der Abbildung 2.1 erläutert.
Definition 4 (Dichte-Erreichbarkeit) Ein Objekt p ist von q dichteerreichbar, wenn es eine Kette von Objekten p1 . . . pn gibt mit p1 = q und
pn = p für die gilt: pi+1 ist direkt dichte-erreichbar von pi .4
p
p
q
o
q
Abbildung 2.1.: Links: Dichte-Erreichbarkeit von q nach p, sofern minP ts = 3 und durch die angezeigten Kreise dargestellt wird. Rechts zeigt die DichteVerbundenheit, welche eine symmetrische Beziehung darstellt. p und q
sind hier dichte-erreichbar von o aus.
Definition 5 (Dichte-Verbundenheit) Ein Punkten p ist dichte-verbunden zu
q, wenn es einen Punkt o gibt, von dem sowohl p als auch q dichte-erreichbar sind. 5
3 Übersetzung
aus dem Englischen vom Autor. Original: „A point p is directly density-reachable from
point q wrt Eps, MinPts if 1) p ∈ Neps (q) and 2) |Neps (q)| ≥ minP ts“
4 Übersetzung aus dem Englischen vom Autor. Original: „point p is density- reachable from a point q
wrt. Eps and MinPts if there is a chain of points p1 , . . . , pn , p1 = q, pn = p such that pi+1 is directly
density-reachable from pi .“
10
Nun kann man einen Cluster für DBSCAN definieren.
Definition 6 (Cluster) Sei D ein Datensatz und C eine nicht-leere Teilmenge von
D, die folgende Eigenschaften erfüllt:6
1. ∀p, q : falls p ∈ C ind q ist dichte-erreichbar von p, dann ist q ∈ C. (Maximalität)
2. ∀p, q ∈ C : p ist dichte-verbunden mit q. (Verbundenheit)
DBSCAN überprüft im Grunde genommen, ob diese Eigenschaften auf die Objekte
im Datensatz zutreffen. Treffen sie zu, werden sie Clustern zugeordnet, tun sie es nicht,
dann werden sie als Rauschen (noise) betrachtet.
DBSCAN hat vor allem zwei Vorteile im Gegensatz zum weit verbreiteten ClusterAlgorithmus k-means: Zum einen muss die Anzahl der Cluster nicht vor der Ausführung
festgelegt werden und zum anderen führen beeinflussen einzelne isolierte Obejkte nicht
das Endergebnis sondern werden als Rauschen erkannt.
Komplexität Der Algorithmus DBSCAN muss jedes einzelne Objekt untersuchen. Also
tut er es insgesamt n-mal, wenn die Größe des Datensatzes n beträgt. Bei der Untersuchung eines jeden Punktes, muss die -Umgebung bestimmt werden, bei der ebenfalls
noch einmal der komplette Datensatz durchlaufen werden muss. Dadurch entsteht insgesamt ein Laufzeitverhalten mit O(n2 ).
Die Autoren vom Algorithmus machen jedoch auf die Möglichkeit aufmerksam, einen
spatialen Index einzusetzen, der die Bestimmung der -Umgebung von O(n) auf O(log n)
reduzieren kann. Ein solcher spatialer Index, wie er auch in dieser Arbeit eingesetzt wird,
ist der RBaum. [Gut84], wird auch in Abschnitt 2.4.2 erläutert. Auf diese Weise lässt sich
die Gesamtkomplexität auf O(n·log n) reduzieren. Allerdings stimmt diese Annahme nur
unter der Vorraussetzung, dass die Distanzfunktion eine Laufzeit von O(1) hat.
2.2.2
|
OPTICS
Der Algorithmus OPTICS ist eine Erweiterung von DBSCAN. Sein Name OPTICS steht
dabei für „Ordering Points To Identify the Clustering Structure“. Er wurde ebenfalls an
der LMU München entwickelt und einige Autoren von DBSCAN wirkten auch an der
Entstehung von OPTICS mit. (Jörg Sanders und Hans-Peter Kriegel). Seine Eingabeparameter, neben dem Datensatz und der Distanzfunktion, sind ebenfalls minP ts und . 5 Übersetzung
aus dem Englischen vom Autor. Original: „A point p is density- connected to a point q
wrt. Eps and MinPts if there is a point o such that both, p and q are density-reachable from o wrt.
Eps and MinPts. “
6 Übersetzung von Autor aus dem Englischen. Original: „Let D be a database of points. A cluster C
wrt. Eps and MinPts is a non-empty subset of D satisfying the following conditions: 1) ∀p, q : if p ∈ C
and q is density-reachable from p wrt. Eps and MinPts, then q ∈ C. (Maximality) 2) ∀p, q ∈ C : p is
density-connected to q wrt. EPS and MinPts. (Connectivity) “
11
ist für das Funktionieren von OPTICS nicht zwingend notwendig, bietet allerdings eine
effektive Möglichkeit, Rechenleistung zu sparen und sollte daher mit angegeben werden.
OPTICS löst das Problem, dass für DBSCAN vor der Ausführung die Dichte (die sich
eben aus minP ts und zusammen setzt) mit angegeben werden muss. Setzt man zu
hoch und minP ts zu niedrig, so kann es passieren, dass DBSCAN sämtliche Objekte
in einem einzigen Cluster zusammen fasst, obwohl die Daten im Datensatz gleichmäßig
verteilt sind. Umgekehrt kann ein zu niedriges und zu hohes minP ts dazu führen, dass
alles als Rauschen betrachtet wird. Außerdem ist DBSCAN nicht in der Lage, Untercluster zu finden, so wie es hierarchische Clusteralgorithmen tun. Das Problem wird in
Abbildung 2.2 noch einmal explizit dargestellt.
OPTICS ist dabei kein klassischer Clusteralgorithmus, der in den Daten Klassen diskrete Klassen findet, sondern die Punkte des Datensatzes in der in Algorithmus 1 auf
Seite 23 bestimmten Reihenfolge darstellt und jedem Punkt eine Erreichbarkeitsdistanz
zuordnet. Das Ergebnis von OPTICS, das Erreichbarkeitsdistanzdiagramm, bietet für die
manuelle Auswertung einen groben Überblick über Zusammenhänge in den Datensätzen.
(siehe auch Abbildung 2.3).[KSAB99] Automatische Verfahren werden in den Abschnitten 3.1.2 und 3.1.3 vorgestellt. Für das Verständnis von OPTICS sind ebenfalls noch
A
B
C1
C3
C
C2
Abbildung 2.2.: DBSCAN hat das Problem, dass es keine Untercluster, hier C1 , C2 und
C3 nicht finden kann, sondern einfach nur C findet.
zwei weitere Definitionen notwendig:
Definition 7 (Kerndistanz) Sei D ein Datensatz, p ∈ D, minP ts ∈ N, > 0 und
N die Nachbarschaftsfunktion, minP ts−distance die Distanzfunktion zum minP ts’
Nachbarn. Dann ist die Kerndistanz
von p wie folgt definiert:7

UNDEFINED
wenn |N (p)| < minP ts
core − distance(p),minP ts = 
minP ts − distance(p) sonst
7 Übersetzung
aus dem Englischen durch den Autor. Original: Let p be an object from a database D,
let be a distance value, let N (p) be the -neighborhood of p, let M inP ts be a natural number and
12
Definition 8 (Erreichbarkeitsdistanz) Sei p, o ∈ D, N (x) die Nachbarschaftsfunktion, minP ts ∈ N, dann ist die Erreichbarkeitsdistanz von o nach p wie
folgt definiert: 8

UNDEFINED, wenn |N (o)| < minP ts
reachability − distance,minP ts =
max (core − distance(o), dist(o, p)) sonst
Aus der Definition für die Erreichbarkeitsdistanz folgt, dass p direkt dichte-erreichbar
von o ist.(siehe dazu auch Def. 4)
Komplexität Ähnlich wie DBSCAN ist es notwendig, dass OPTICS jeden Punkt betrachtet und zu diesem die -Umgebung bestimmt. Die Laufzeit liegt damit bei O(n2 ),
kann jedoch ebenfalls durch einen Index auf O(n · log n) reduziert werden.
2.3
|
Distanzfunktionen
Im vorherigen Abschnitt wurden Cluster-Algorithmen besprochen, die zum Funktionieren eine Distanzfunktion benötigen. Dabei muss die Dimension eines jeden Datenobjektes
immer gleich sein. Bei GPS-Punkten ist dies noch trivial. Es gibt den Längen- und Breitengrad und dadurch ist die Dimension für jeden Punkt eindeutig definiert: zwei. Wenn
man möchte, kann man noch den Zeitstempel oder die Höhe über dem Meeresspiegel
mit einbeziehen, aber es bleibt sehr offensichtlich, welche Dimension die Daten haben.
Bei Spuren hingegen wird es schwieriger. Eine Spur besteht aus mindestens zwei Punkten. Die Dimension lässt sich jetzt nur noch bestimmen, wenn man alle Punkte in einer
Menge zusammen fässt und diese als nur eine einzige Dimension betrachtet. Die in diesem Abschnitt vorgestellten Distanzfunktionen, die Fréchet- und die Hausdorff-Distanz,
ermöglich die Bestimmung der Distanz zwischen zwei Spuren. Beide Funktionen eignen
sich als Distanzfunktionen für Clusteralgorithmen, da sie sowohl symmetrisch als auch
bei zwei gleichen Eingaben den Wert 0 zurück liefern. (siehe auch Abschnitt 2.2).
let M inP ts − distance(p) be the distance from
( p to its M inP ts neighbor. Then, the core-distance
UNDEFINED,
if Card(N (p)) < M inP ts
of p is defined as core − distance,M inpts =
M inP ts − Distance(p), otherwise
8 Übersetzung aus dem Englischen vom Autor. Original: Let p and o be objects from a database D, let N (o) be the -neighborhood of o, and let M inP ts be a natural number. Then, the
reachability-distance
of p with respect to o is defined as reachability − distance,M inP ts (o, p) =
(
UNDEFINED, if Card(N (p)) < M inP ts
max (core − distance(o), dist(o, p))
13
Abbildung 2.3.: Das Erreichbarkeitsdistanzdiagramm von OPTICS. Auf der x-Achse befinden sich die Punkte in der von OPTICS bestimmten Anordnung (siehe auch Algorithmus 1). Auf der y-Achse ist die ermittelte Erreichbarkeitsdistanz. In den „Tälern“ dieses Diagrammes befinden sich nun die
Cluster
2.3.1
|
Fréchet-Distanz
Die Fréchet-Distanz ist ein Abstandsmaß zwischen zwei Strecken. In der Literatur gibt
es häufig das Beispiel mit dem Hund und seinem Besitzer, die auf den zwei zu messenden
Strecken entlang laufen. Der Besitzer ist mit seinem Hund über eine Leine verbunden.
Beiden ist es erlaubt, sich in beliebiger, aber nicht negativer Geschwindigkeit von ihrem jeweiligen Startpunkt zum Zielpunkt zu bewegen. Die Freéchet-Distanz ist definiert
als Antwort auf die Frage, wie lang die Leine mindestens sein muss, damit Hund und
Herrchen ihre jeweilige Strecke ablaufen können.[HA95]
Definition 9 (Fréchet-Distanz) Seien f : [a, a0 ] → V und f : [b, b0 ] → V polygonale
Linien. Dann beschreibt δF (f, g) deren Fréchet-Distanz, falls für δF (f, g) folgendes
gilt:
δF (f, g) :=
inf 0
max dist (f (α(t)), g(β(t)))
α[0,1]→[a,a ]
β[0,1]→[b,b0 ]
t∈[0,1]
Dabei sind α, β sind stetige, monoton steigende Funtionen mit α(0) = a, α(1) = a0 ,
β(0) = b) und β(1) = b0 .9
vom Autor aus dem Englischen. Original: „Let f : [a, a0 ] and g : [b, b0 ] be curves. Then
δF (f, g) denotes their Fréchet-distance, defined as:
9 Übersetzung
14
Bei der Berechnung der Fréchet-Distanz wird zwischen der allgemeinen und der diskreten Fréchet-Distanz unterschieden. Die diskrete Fréchet-Distanz benötigt neben den
zwei angegebenen Strecken noch als Parameter.
Definition 10 (Diskrete Fréchet-Distanz) Seien f und g zwei polygonale Linien und sei ∈ R, > 0. Dann ist die diskrete Fréchet-Distanz dδF (f, g, ) wie folgt
definiert:

wahr
falls δF (f, g) ≤ dδF (f, g, ) :=
falsch sonst
Für den Prototypen wurde die Fréchet-Distanz implementiert, allerdings kann diese
nur mit Koordinaten in einer ebenen Fläche umgehen und nicht mit sphärischen Koordinaten (wie Längen- und Breitengrad sind). Die Umgehung des Problems wird in
Abschnitt 2.4.1 behandelt. Diese Implementierung baut dabei auf einem Algorithmus
auf, den Alt und Godau [HA95] entwickelt haben. Die Funktionsweise des Algorithmus
kann anschaulich mit einem Free-Space-Diagramm dargestellt werden.
Für ein Free-Space-Diagramm (Abbildung 2.4) für die Fréchet-Distanz zwischen den
Polylinien P und Q werden die Koordinaten dieser beiden Polylinien auf der x- bzw.
y-Achse aufgetragen. Sei außerdem p(i), i ∈ [0, 1], bei der p(0) der Startpunkt von P
und p(1) der letzte Punkt von P ist. Analog gilt dies für q(i). Sofern dist(p(x), q(y)) >
, so wird (x, y) im Free-Space-Diagramm rot eingefärbt. Ist es danach noch möglich,
eine monoton steigende Kurve von (0, 0) nach (1, 1) zu „zeichnen“, so gibt die diskrete
Fréchet-Distanz den Wert „wahr“ zurück.
Nun gibt es allerdings unendlich viele Punkte in diesem Diagram und damit ist es
nicht berechenbar. Der „Trick“ bei der Berechnung dieses Diagramms ist folgender: Das
Free-Space-Diagramm zwischen zwei Kanten (eine Kante ist hier die direkte Verbindung
von genau zwei Punkten) bildet, sofern vorhanden, immer eine konvexe Ellipse. (Beweis
steht in [HA95]). Dadurch reicht es aus, die Schnittpunkte mit den Rändern der einzelnen
Zellen zu berechnen, um das Free-Space-Diagramm zu berechnen.
Komplexität Jede Zelle des Free-Space-Diagrammes kann mit konstanter Laufzeit O(1)
berechnet werden. Insgesamt müssen p · q Zellen berechnet werden.
Danach muss noch überprüft werden, ob man eine monoton steigende Funktion durch
dieses Diagramm zeichnen kann. Hierfür wird jede Zelle daraufhin untersucht, ob durch
sie selbst eine monoton steigende Funktion gezeichnet werden kann. Dies wird mit Hilfe
der Schnittpunkte an den Kanten mit der konvexen Free-Space-Ellipse errechnet. Danach
δF (f, g) := inf α[0,1]→[a,a0 ]
β[0,1]→[b,b0 ]
max
|f (α(t)), g(β(t))|
t∈[0,1]
where α, β range over continous and increasing functions with α(0) = a, α(1) = a0 , β(0) = b and
β(1) = b0 only.“
15
wird noch überprüft, ob die Zelle links oder unter der eigenen von (0, 0) aus erreichbar ist.
Insgesamt ergibt sich damit für die diskrete Fréchet-Distanz eine Laufzeit von O(p · q).
Da für den Prototypen nur die diskrete Fréchet-Distanz implementiert wurde, ist sie
nur für den Algorithmus DBSCAN geeignet und nicht für OPTICS, weil DBSCAN sich
tatsächlich nur für die Frage interessiert, ob die Distanz kleiner ist als .
Abbildung 2.4.: Das Free-Space-Diagramm für ein gegebenes und die polygonalen Linien P und Q. Dabei wird in dem Diagramm für jede Stelle auf P und
Q ein roter Punkt gesetzt, falls die Distanz größer als ist und weiß,
falls sie kleiner ist. Kann man nun eine monoton steigende Funktion
von links unten (0, 0) nach (1, 1) einzeichnen, so ist die Fréchet-Distanz
δF (P, Q) ≤ . Das Diagramm wurde aus der Arbeit von Alt und Godau
entnommen. [HA95]
2.3.2
|
Hausdorff-Distanz
Als Alternative für die Fréchet-Distanz kann auch die Hausdorff-Distanz verwendet
werden.[Hen99] Sie ist jedoch nicht direkt auf Strecken von Punkten definiert sondern
vergleicht ungeordnete Mengen von Punkten.
Definition 11 (Hausdorff-Distanz) Die Hausdorff-Distanz für zwei endliche
Mengen P und Q ist wie folgt definiert:
(
)
d(P, Q) = max sup (e, Q) , sup (e, P )
e∈P
e∈Q
Daher wird der Winkel bzw. die Richtung α der Strecken mit berücksichtigt. α wird dabei nur zwischen dem Start- und Endpunkt eines Segmentes berechnet. Dieser Wert wird
trotzdem als repräsentativ für das gesamte Segment betrachtet, da nach der Zerlegung
16
der Spuren die Segmente selten mehr als 100 Meter lang sind und meistens auch einen
geraden Verlauf haben. Wenn bei zwei Strecken s1 und s2 die Differenz einen Grenzwert
von 37 Grad überschreitet, wird die Distanz als unendlich hoch betrachtet. Damit die
Hausdorff-Distanz bei nah aneinander verlaufenden Segmenten niedrigere Werte als bei
Strecken, die fernab voneinander verlaufen, müssen auch die Punkte den selben Abstand
haben. Abbildung 2.5 verdeutlicht dies noch einmal.
Ein Vorteil der Hausdorff-Distanz ist hingegen, dass sie ohne Projektion auskommt
(abgesehen vom Index), da im Gegensatz zur Fréchet-Distanz nur Abstandsfunktionen
zwischen zwei Punkten (bestehend aus Längen- und Breitengrad) benötigt wird, die bereits implementiert wurden. Insgesamt ergibt sich damit für die diskrete Fréchet-Distanz
eine Laufzeit von O(p · q). Da jeder Punkt mit jedem verglichen werden muss, liegt die
Laufzeit der Hausdorff-Distanz ebenfalls bei O(|P | · |Q|).
(a) Die Abstände der Punkte müssen normalisiert werden
(b) Die Hausdorff-Distanz beachtet
nicht unterschiedliche Richtungen
Abbildung 2.5.: Links sieht man zwei Strecken, die sich in ihrem Verlauf stark ähneln.
Die Fréchet-Distanz würde einen einen geringen Abstand zwischen den
Strecken ermitteln, die Hausdorff-Distanz jedoch einen vergleichsweise hohen Wert. Damit die Hausdorff-Distanz einen ähnlich niedrigen
Wert liefert wie die Fréchet-Distanz, müssen müssen die Punkte auf den
Strecken einen regelmäßigen Abstand haben.
Rechts ist ein anderes Problem mit der Hausdorff-Distanz dargestellt.
Die Strecken verlaufen zwar nah beieinander, aber in völlig unterschiedliche Richtungen. Die Fréchet-Distanz würde deshalb auch hier einen
hohen Wert liefern, die Hausdorff-Distanz allerdings nicht. Deshalb wird
ein maximaler Winkelabstand zwischen den Strecken festgelegt, welcher
bei Überschreitung dazu führt, dass die Distanz zwischen den beiden
Strecken als unendlich betrachtet wird.
2.4
2.4.1
|
Unterstützende Funktionen
|
UTM-Projektion
Die Koordinaten aus dem GPX-Format sind Winkelangaben auf einer Kugel. Allerdings
lassen sich viele Berechnungen leichter durchführen, wenn sie in einer ebenen Fläche
lägen. Da auch für die Kartenerstellung eine ebene Repräsentation nötig ist, gibt es
17
bereits eine Vielzahl möglicher Projektionen. Für den Prototypen fiel die Wahl auf die
UTM -Projektion. UTM steht für universal transverse mercator coordinate system. Die
UTM -Projektion wurde 1947 beim US-Militär wingeführt, um rechtwinkelige Koordinaten weltweit auf militärischen Karten einheitlich benennen zu können. Bereiche nördlich
des 84. nördlichen Breitengrades und südlich des 80. südlichen Breitengrades werden
allerdings nicht betrachtet. Jede Zone ist dabei 6 Längengrade „breit“, jedoch kann
die „Höhe“ schwanken.[Syn87, S. 57f] Für Bereiche jenseits des 84. nördlichen bzw. 80.
südlichen Breitengrades sollten andere Projektionssystem verwendet werden, z.B. die
UPS -Projektion.
UTM wird in Deutschland schon länger auch zivil genutzt, insbesondere bei bei der
Feuerwehr und dem Katastrophenschutz. [Str96, S. 54]
Durch die UTM -Projektion entstehen Koordinaten, die in einer ebenen Fläche liegen.
Aufgrund der Mercator-Projektion sind diese winkeltreu. Ihre Abweichungen bei der
Distanz sind am Mittelmeridian (der Längengrad, der eine Zone vertikal in genau zwei
cm
und sind damit für unsere
gleich große Hälften teilt) am größten und betragen 40 km
Zwecke vernachlässigbar. [Str96, S. 55]
Allerdings ist der Prototyp dadurch gezwungen, mit Datensätzen zu arbeiten, bei
denen sämtliche Punkte in einer Zone liegen.
Innerhalb einer Zone werden Koordinaten zweidimensional jeweils in Metern angegeben. Einmal der Ost-Wert und einmal der Nord-Wert. Außerdem wird bei einer UTM Koordinate auch immer angegeben, in welcher Zone die Koordinate liegt. Die Bezeichnungen der Zonen bestehen aus einem Buchstaben und einer Zahl. Die Zonen sind von
Süden nach Norden mit Buchstaben versehen und von Westen nach Osten mit Zahlen.
Berlin liegt beispielsweise in der Zone U32.
2.4.2
|
RBaum
Der RBaum ist eine dynamische Indexstruktur für räumliches Suchen („A Dynamic Index Structure for Spatial Searching“ [Gut84]. Im Gegensatz zu den meisten Indexstrukturen, die nur eindimensional arbeiten, ist er in der Lage, mit beliebig vielen Dimensionen
umzugehen. Er benötigt allerdings zusätzlich eine spatiale Datenbank, in der jedes gespeicherte Objekt mit einem eindeutigen Schlüssel versehen ist. Er ist wie ein B-Baum
ausgeglichen und speichert in seinen Blättern die Schlüssel für die Datenobjekte. Jeder
Eintrag in den Blättern (ein Blatt kann mehrere Einträge haben, wie bei einem B-Baum
gibt es auch eine Mindestanzahl an Einträgen, für den Fall, dass die Wurzel kein Blatt
ist) besteht aus dem Schlüssel, der auf den eigentlichen Eintrag in der Datenbank zeigt,
und einer Mengen an Intervallen. Für jede Dimension wird ein Intervall angelegt, in dem
das Objekt liegt. Aus den einzelnen Intervallen entsteht also eine Bounding-Box.
Jeder Knoten besteht ebenfalls aus einer Bounding-Box und Zeigern zu Kinderknoten
bzw. Blättern. Eine Suchanfrage S wird ebenfalls in Form einer Bounding-Box gestellt.
Die Suche beginnt ebenfalls wie bei einem B-Baum in der Wurzel, allerdings, im Gegensatz zum B-Baum, kann es passieren, dass bei Knoten mehrere Unterbäume untersucht
werden müssen. Dies liegt daran, dass mehrere Bounding-Boxen der Kindsknoten sich
mit S schneiden. Die Laufzeit beträgt daher im best-case O(log n) - das ist die Höhe des
18
Baumes - und ist im wort-case O(n).
2.4.3
|
Ramer-Douglas-Peucker-Filter
p9
p3
p3
p4
p6
p5
(1)
p9
p8
p6
e 1 p5
p7
p1
p7
p8(2)
p1
p2
p2
p9
e3
p3
p9
p3
p4
e4
p6
p5
e2
p4
p4
p8
p8
p5 p6 p7
p8(4)
p1
(3)
p2
p2
p9
p3
p8
p1
p2
(5)
Abbildung 2.6.: Exemplarischer Ablauf des RDP-Filters, seine Funktionsweise wird in
Abschnitt 2.4.3 erläutert
Der RDP-Filter glättet Strecken und versucht so viel wie möglich vom eigentlichen
Streckenverlauf zu erhalten.[DP73] Der Algorithmus arbeitet rekursiv. Er zieht eine Kante vom Start- zum Endpunkt und überprüft, ob alle Punkte einen Abstand kleiner als zu dieser Kante haben. Ist dies der Fall, so werden sie einfach gelöscht. Wenn nicht, wird
der Punkt genommen, der den größten Abstand zu dieser Kante hat. An diesem Punkt
wird die Strecke unterteilt und der Algorithmus wird rekursiv auf die entstandenen Teilstrecken angewendet. Der Ablauf der Algorithmus wird hier exemplarisch erläutert und
bezieht sich dabei auf das in Abbildung 2.6 gezeigte Beispiel.
19
1. Gegeben ist eine Polylinie, die durch die Punkte p1 , . . . , p9 definiert ist.
2. Es wird eine Kante e1 zwischen p1 und p9 gezogen. Dabei wird festgestellt, dass p3
am weitesten von der Kante entfernt ist und diese Entfernung auch überschreitet.
3. Der Vorgang wird rekursiv wiederholt. Einmal für {p1 , p2 , p3 } und einmal für
{p3 , . . . , p9 }. p2 hat dabei eine zu große Entfernung zur neuen Kante e2 , weshalb die Strecke hier ebenfalls unterbrochen wird. Die neuen beiden Strecken
{p1 , p2 } und {p2 , P3 } bestehen nur aus zwei Punkten und der Algorithmus bricht
ab. p8 ist ebenfalls zu weit von der Kante e3 entfernt, allerdings entsteht hierbei nur
eine Teilstrecke {p8 , p9 }, die nur aus einer Kante besteht. Die Strecke {p3 , . . . , p8 }
hat hingegen mehr Punkte und der Algorithmus kann hier weiter fortgesetzt werden.
4. Sämtliche Punkte zwischen p3 und p8 haben eine Distanz kleiner als zur Kante
e4 und werden deshalb gelöscht.
5. Der Algorithmus bricht ab.
20
3 | Design
Bei der Aggregierung besteht das Problem, dass Spuren häufig über eine gewisse Strecke
nah beieinander laufen und danach wieder getrennte Wege gehen, wie Abbildung 3.1
dargestellt. Beide der in Abschnitt 2.3 besprochenen Distanzfunktionen liefern bei sol3
2
1
Abbildung 3.1.: Die Fréchet-Distanz zwischen den Strecken (1) und (2) gleicht ungefähr
der zwischen (3) und (1), obwohl letztere zumindestens teilweise nah beieinander laufen. Dadurch muss eine sinnvolle Zerlegung für die Strecken
gefunden, damit die Fréchet-Distanz sinnvolle Ergebnisse liefert.
chen Strecken hohe Werte und es wäre daher wünschenswert, die Spuren an Kreuzungen
zu zerlegen. Nachdem Spuren an Kreuzungen in Segmente zerlegt wurden, verbinden sie
im Idealfall eine Kreuzung mit der anderen. Bei zwei Segmenten, die die selben Kreuzungen verbinden wird nun erwartet, dass sie eine niedrige Distanz zueinander haben
und DBSCAN dies auch so einordnet.
Die zwei grundlegenden Arbeitsschritte, Kreuzungserkennung und Aggregierung, werden in diesem Kapitel erläutert.
3.1
|
Kreuzungserkennung
Die grundlegende Hypothese, wie Kreuzungen erkannt werden können, beruht auf folgenden zwei Hypothesen.
Hypothese 1 An einer Kreuzung überlagern sich die Spuren von mindestens zwei Straßen. Spuren bestehen wiederum aus Punkten, was zur Folge hätte, dass an Kreuzungen
die Dichte der Punkte ansteigt.
21
Hypothese 2 GPS-Emprfänger, wie beispielsweise die Kombination aus einem AndroidTelefon und der App mytracks [Sch10]1 , sind in der Lage, ihre Position in einem regelmäigen zeitlichen Intervall aufzuzeichnen. An Kreuzungen müssen Verkehrsteilnehmer
ihre Geschwindigkeit reduzieren, zeitbasierte GPS-Empfänger messen deshalb auch in
kürzeren räumlichen Abständen. Dadurch steigt die Dichte und OPTICS ermittelt für
diese Punkte eine niedrigere Erreichbarkeitsdistanz.
Letztendlich wird erwartet, dass die Punkt-Dichte an Kreuzungen ansteigt. Jedoch
erscheint es kaum sinnvoll, einen Grenzwert für die Punktdichte festzulegen, um damit die Kreuzungen zu erkennen. Eine Hauptstraße hat überall meistens eine höhere
Punktdichte als eine Kreuzung von Nebenstraßen. Bei OPTICS wird nun erwartet, dass
bestimmte „Täler“, egal auf welche „Höhe“ darauf hindeuten, dass dort eine Kreuzung
sein könnte.
3.1.1
|
OPTICS
Der Pseudocode von OPTICS wird in Algorithmus 1 dargestellt und hier erläutert.
Die Zeilen 2 und 3 sind Initialisierungsschritte. Die Variable results soll später die
Objekte aufnehmen und sie in der Reihenfolge speichern, in der sie dort eingetragen
wurden. Im Initialzustand sind alle Objekte als unverarbeitet markiert und ihrer Erreichbarkeitsdistanz ist auf unendlich gesetzt.
Als ersten Schritt nimmt OPTICS ein beliebiges unverarbeites Objekt o und bestimmt
dessen -Umgebung N (o). (Zeile 5) Danach wird die Erreichbarkeitsdistanz auf unendlich, bzw. undefiniert gesetzt (Zeile 6) und die Kerndistanz ermittelt (Zeile 7). Außerdem
wird o als verarbeitet (Zeile 8) markiert und an die geordnete Liste angehängt. Sofern
in N (o) bzw. neighbours weniger als minP ts Elemente vorhanden waren, so geht OPTICS zur Überprüfung des nächsten Punktes über. (Zeile 10) Wenn nicht, so wird die
Prozedur update() aufgerufen, deren Pseudocode auf Seite 24 zu finden ist. Ihre Aufgabe
ist es, für jedes Objekt p ∈ N (o) die Erreichbarkeitsdistanz von o nach p zu ermitteln.
Danach werden sie in der in Zeile 3 erstellten Prioritätswarteschlange eingefügt, in der
die Erreichbarkeitsdistanz als Schlüssel zum Ordnen genutzt wird. Dabei ist die Priorität
umso höher, je niedriger die Erreichbarkeitsdistanz ist.
In Zeile 12 wird damit begonnen, die Prioriätswarteschlange abzuarbeiten. Jedes Element o2 aus der Prioritätswarteschlange wird als verarbeitet markiert (Zeile 15) und an
result (Zeile 16) angehängt. Außerdem wird erneut die -Umgebung N (o2) bestimmt
(Zeile 14) und die Kerndistanz (Zeile 17) ermittelt.
Ebenfalls wird, falls |N (o2)| ≥ minP ts ist, was gleichbedeutend mit der Tatsache ist,
dass die Kerndistanz nicht unendlich bzw. definiert ist, noch einmal update() aufgerufen. Dadurch können sich bisherige Einträge in der Prioritätswarteschlange nach vorne
verschieben bzw. neue hinzu kommen.
Es ist durchaus möglich, dass die Prioritätswarteschlange erst dann leer wird, wenn
1 Es
können auch andere Aufzeichnungsmodi genutzt werden wie zum Beispiel in einem regelmäßigen
Entfernungsintervall
22
Algorithmus 1: OPTICS
Data : A dataset to cluster (DS), minimum amount of points (minPts), maximum
radius (eps)
Result : The dataset in the order created by OPTICS and each object is
annotated with a reachability-distance
1 begin
2
OrderedList results := new OrderedList();
/* queue is ordered by reachability-distance
*/
:=
3
PriorityQueue queue
new PriorityQueue();
4
for o ∈ DS do
5
if o not processed then
6
neighbours := DS.getNeighbours(eps, o);
7
o.reachability_distance := UNDEFINED;
/* See also def. 7 for the core distance
*/
8
o.setCoreDistance(DS, minPts, eps);
9
o.setProcessed(TRUE);
/* The very first point of the data set will always have an
undefined reachability distance
*/
10
results.append(o);
11
if o.core_distance not UNDEFINED then
/* calculate the reachability distance from each object
in the neighbourhood to o and store them in the
ordered queue. Pseudo code for update() can be found
on page 24
*/
12
update(queue, neighbours, o);
13
while queue.hasNext() do
14
o2 := queue.next();
15
neighbours2 := DS.getNeighbours(eps, o);
16
o2.setProcessed(TRUE);
17
results.append(o2);
18
o2.setCoreDistance(DS, minPts, eps);
19
if o2.core_distance not UNDEFINED then
/* manipulate the ordered queue again
*/
20
update(queue, neighbours2, o2);
21
end
22
end
23
end
24
end
25
end
26 end
23
Prozedur update(PriorityQueue queue, neighbours, centerObject)
/* if you look up upon algorithm 1 you can see, that this procedure
will be only invoked if the centerObject has a defined core
distance
*/
1 core_distance := centerObject.core_distance;
2 for o ∈ neighbours do
3
if o not processed then
4
tmp_reachability_distance := max(core_distance, dist(o,
centerObject);
/* o can only be in the priority queue, if it has already a
valid reachability distance and it is not processed. If the
new reachability-distance for o is valid (that means below
eps) it should be stored in the priority queue.
*/
5
if o.reachablity_distance is UNDEFINED then
/* o is not stored in the priority queue yet. Update the
reachability disance and insert it into the queue
*/
6
o.reachablity_distance := tmp_reachability_distance;
7
queue.insert(o);
8
else
9
if o.reachability_distance > tmp_reachability_distance then
10
o.reachability_distance := tmp_reachability_distance;
11
queue.move_up(o);
12
24
der komplette Datensatz abgearbeitet ist. Dies ist der Fall, wenn alle Punkte im Datensatz keine undefinierte Kerndistanz haben. Wenn nicht, wird vor der Abarbeitung des
kompletten Datensatzes die Schleife in Zeile 12 abgebrochen und der Algorithmus führt
Zeile 5 erneut aus.
Nach Abschluss der Ausführung ist jedes Objekt in der geordneten Liste und mit einer
Erreichbarkeitsdistanz versehen. Daraus kann man dann ein Erreichbarkeitsdistanzdiagramm erstellen, wie z.B. die Abbildungen 3.2 und 2.3.
Von einer Kreuzung wird nun erwartet, dass sie zu einem Tal im Erreichbarkeitsdistanzdiagramm führt, da dort eine lokale Erhöhung der Dichte erwartet wird. Abbildung
3.2 zeigt, wie vermutlich sich das Bild einer Kreuzung auf den Cluster auswirkt. In den
folgenden zwei Abschnitten werden Verfahren vorgestellt, die diese Täler erkennen und
extrahieren können.
3.1.2
|
Clusterextraktion
Für das Extrahieren der Cluster aus dem Erreichbarkeitsdistanzdiagramm (eine Folge
von Objekten {x1 , x2 , . . . , xn }) gibt es einen Algorithmus (der ebenfall in [KSAB99] beschrieben), bei dem steile Umgebungen (steep areas) ermittelt werden. Jedem Objekt xi
ist eine Erreichbarkeitsdistanz zugeordnet, die mittels r(i) ermittelt werden kann. Der
Algorithmus erhält zusätzlich als Eingabeparameter die Zahl ξ, welche zwischen 0 und 1
liegt und den Wert minP ts, bei dem Ankerst et al [KSAB99] empfehlen, ihn mit minP ts
bei der ursprünglichen Ausführung von OPTICS gleichzusetzen.
Definition 12 (ξ-steil fallendes Objekt) Ein Objekt ξi ist dann ξ-steil fallend
(ξ-steep downward point), wenn seine Erreichbarkeitsdistanz multipliziert mit (1 − ξ)
größer ist als die des Nachfolgers.
r(i) · (1 − ξ) ≥ r(i + 1)
Analog kann man auch einen ξ-steil steigenden Punkt definieren.2
Definition 13 (ξ-steil fallende Umgebung) Ein Intervall I = [xs , xe ], das eine
Teilmenge des Ergebnisses von OPTICS ist. I wird als ξ-steil fallende Umgebung
bezeichnet, genau dann, wenn:
• xs und xe sind ξ-steil fallende Objekte
2 Übersetzung
aus dem Englischen vom Autor. Original: „A point p ∈ {1, . . . , n − 1} is called a ξ-steep
downward point iff p’s successor is ξ% lower: DownP ointξ (p) ⇔ r(p) × (1 − ξ) ≥ r(p + 1)“
25
Kreuzung
Straße
Straße
Kreuzung
Abbildung 3.2.: Die Vermutung ist, dass bei Kreuzungen die Dichte steigt und die Erreichbarkeitsdistanz sinkt.
26
• ∀i, s < i ≤ e : r(i) ≤ r(i − 1)
• I hat nicht mehr als minP ts aufeinander folgende Objekte, die keine ξ-steil
fallenden Objekte. ∀[xs , xe ] ⊆ I mit @xi ∈ [xs , xe ] ist ξ-steil fallendes Objekt
⇒ e − s < minP ts
• I ist maximal: ∀J : (I ⊆ J ∧ J ist ξ-fallende Umgebung ⇒ I = J)
Analog kann auch die ξ-steil steigende Umgebung definiert werden.3
Ein Cluster sind dann alle Punkten, zwischen einer fallenden steilen Umgebung und
einer steigenden steilen Umgebung. Im Idealfall bilden der erste Punkt s der fallenden
steilen Umgebung und der letzte Punkt e der steigenden steilen Umgebung die „Grenzen“
des Clusters, sofern |r(s) − r(e)| ≤ ξ · r(e) ist. Falls dies nicht der Fall ist, wird nach einer
anderen möglichen Kombination aus den beiden steilen Gebieten gesucht, oder es kann
kein gültiger Cluster erstellt werden.
Zudem gilt ∀i, s < i < e : r(i) < r(s) ∧ r(i) < r(e), was bedeutet, dass kein Punkt eine
größere Erreichbarkeitsdistanz haben darf als die beiden begrenzenden Punkte.
Cluster
Abbildung 3.3.: Die beiden steilen Umgebungen sind rot hervor gehoben. Innerhalb eines Clusters darf kein Punkt eine höhere Erreichbarkeitsdistanz als die
beiden begrenzenden Punkte haben.
Dieses Verfahren würde erst einmal alle Cluster extrahieren. Auf Abbildung 3.2 würde
dies bedeuten, dass es auch die Straße extrahiert. Daher werden alle Cluster entfernt,
3 Übersetzung
vom Autor aus dem Englischen. Original: „An interval I = [s, e] is called a ξ-steep upward
area U pAreaξ (I) iff it satisfies the following conditions: s is a ξ-steep upward point U pP ointξ (s);
e is a ξ-steep upward point; each point between s and e is at least as hight as its predecessor:
∀, x, s < x ≤ e : r(x) ≥ r(x − 1); I does not contain more than minP ts consecutive points that are not
ξ-steep upward: ∀[s, e] ⊆ [s, e] : ((∀x ∈ [s, e] : ¬U pwardP ointξ (x)) ⇒ e − s < minP ts, I is maximal:
∀J : (I ⊆ J, U pAreaξ (J) ⇒ J = I
27
die Subcluster enthalten. Oder anderes formuliert: Es werden nur die Cluster extrahiert,
die auf der niedrigsten Hierarchieebene liegen.
3.1.3
|
Schwankungsanalyse
Alternativ zu den eben vorgestellten Verfahren wurde noch ein zweites Verfahren zur
Kreuzungserkennung entwickelt. Es erhält zwei Parameter: Zum einen ξ, ein Wert zwischen 0 und 1 sowie ∈ N.
Sei D = {x1 , x2 , . . . xn } der Datensatz und r(xi ) die Funktion, die die Erreichbarkeitsdistanz ermittelt. Der Algorithmus errechnet dann für jedes i ∈ {, + 1, . . . , n − } die
durchschnittliche Erreichbarkeitsdistanz (i, ), die wie folgt definiert ist:
i+
P
(i, ) =
j=i−
!
r(xj ) − r(xi )
2·
Sofern (i, ) · ξ ≥ r(xi ) ist, so wird xi als möglicher Repräsentant für eine Kreuzung betrachtet. Eine in diesem Verfahren ermittelte Kreuzung hat meistens dann auch mehrere
Repräsentatanten. Dieses Verfahren ermittelt keine Cluster im eigentlichen Sinne, sondern analysiert, wie stark die Erreichbarkeitsdistanz in einem Bereich des Diagrammes
schwankt.
3.2
|
Aggregierung
Im vorhergehenden Abschnitt wurde gezeigt, wie Kreuzungen mit der Hilfe von OPTICS erkannt werden können. Mit Hilfe dieser automatischen Erkennung können nun
die Spuren an den Kreuzungen zerlegt werden. Da die Strecken jetzt nur noch die Länge eines Straßenabschnittes haben, sinkt damit deutlich die Wahrscheinlichkeit, dass
die Distanzfunktion hohe Werte zurück liefert, obwohl sie teilweise nah beieinander
verlaufen. Als Distanzfunktion können zwei verschiedene Distanzen eingesetzt werden:
1
die Fréchet-Distanz und die Hausdorff2
3
6
Distanz. Mit der von DBSCAN durchge4
5
führten Clusteranalyse werden die einzelnen Spursegmente zwar in Gruppen zu1
sammen gefasst oder als Rauschen de2
3
6
klariert und verworfen, aber die Zusam4 5
menfassung, also das Aggregieren ist noch Abbildung 3.4.: Zusammenfassen eines Clunicht geschehen.
sters zu einer aggregierten
Das Verfahren zum Ermitteln des CluSpur. Schwarz sind zwei ursterzentrums arbeitet mit Spuren, die alsprünglicher Spuren dargele aus n Punkten bestehen. Daher müssen
stellt und grün die neu entdie Spuren, nachdem sie geclustert wurstandenen.
den, auf eine einheitliche Punktzahl gebracht werden. Dabei werden alle Punkte jeder Spur durchnummeriert. Danach wird
28
für jedes i ∈ [1, . . . , n] der Schwerpunkt aller Punkte mit der Nummer i berechnet. Abbildung 3.4 zeigt schematisch, wie dieser Algorithmus arbeitet.
29
4 | Implementierung
Um die in der vorher gehenden Verfahren anwenden zu können, wurde ein Prototyp
in Java 7 geschrieben, der diese Algorithmen implementiert und einige Werkzeuge zur
Evaluation liefert. Der Prototyp wurde GPSk genannt und erweitert den Prototypen
agg2graph, den Johannes Mitlmeier [Mit12] geschrieben hat.
4.1
|
Eingabe
Format Die Daten für dieses Projekt stammen von OpenStreetMap - sie wurden mit
Hilfe des Clients JOSM herunter geladen und als GPX-Datei auf der Festplatte gespeichert.
Die Abkürzung GPX steht für GPS Exchange Format und basiert auf dem XML-Format.[Top13]
Es ist ein einfaches Dateiformat, in dem Punkte einzeln als waypoints abgelegt werden
können oder auch ganze Strecken. Entweder als route, welche eine einfache Strecke darstellt, oder als track, in dem mehrere trackparts enthalten sind. Die Punkte werden
einfach mit Breiten- und Längengrad in einer GPX-Datei angegeben. Zusätzlich gibt
es noch die Möglichkeit, Angaben über den Zeitstempel, Messungenauigkeiten oder die
aktuelle Höhe zu machen. Da dies nur optional ist, sollte man sich keinesfalls darauf
verlassen, dass diese Daten bei einer Eingabedatei vorhanden sind. Außerdem kann an
jede Spur und an jeden Punkt auch noch ein <extensions-Element angehängt werden,
in dem völlig beliebige Daten abgespeichert werden. In diesem Projekt wird dies dazu
genutzt, um zusätzliche Informationen, wie zum Beispiel die errechnete Erreichbarkeitsdistanz, zu speichern.
Das Einlesen und die Ausgabe der Daten erfolgt mit Hilfe von JAXB. JAXB ist ein Teil
der Java-Bibliothek, die es ermöglicht, XML-Dokumente in einer JavaBean abzubilden
und umgekehrt. Der Vorteil dieser Technologie ist, dass die Verarbeitung der Daten sehr
einfach ist und JAXB eine valide Ausgabe von XML zusichert.[OM03] Der Nachteil ist,
dass JAXB das Dokument nicht einlesen kann, wenn der namespace in der GPX-Datei
nicht korrekt definiert wurde. In Listing 4.1 ist der Kopf einer GPX-Datei zu sehen, die
mit den Ergebnissen von OPTICS angereichert wurde.
Listing 4.1: Kopf einer von GPSk ausgegebenen GPX-Datei.
<n s 2 : g p x x m l n s : n s 2=" h t t p : //www. t o p o g r a f i x . com/GPX/1/1 "
x m l n s : n s 3=" h t t p : // i n f . fu−b e r l i n . de / agg2graph / e x t e n s i o n s / gpsk "
version=" 1 . 1 " c r e a t o r=" gpsk ">
<ns2:wpt l a t=" 52. 5177 37300 0000 0028 8946 4667 5325 9301 18560 7910 1562 5 "
30
l o n=" 13 .375974 199999 9999251 258486 7654368 2813644 409179 6875 ">
<n s 2 : e x t e n s i o n s>
<n s 3 : p o i n t −meta>
<r e a c h a b i l i t y D i s t a n c e>INF</ r e a c h a b i l i t y D i s t a n c e>
</ n s 3 : p o i n t −meta>
</ n s 2 : e x t e n s i o n s>
</ ns2:wpt>
<ns2:wpt l a t=" 52. 5177 6600 0000 00172 4856 7019 1235 8403 2058 7158 20312 5 "
l o n=" 1 3.37 59429 9999 9999 4720 3832 5620 8151 57890 3198 2421 875 ">
<n s 2 : e x t e n s i o n s>
<n s 3 : p o i n t −meta>
<r e a c h a b i l i t y D i s t a n c e>
6.406228352046712
</ r e a c h a b i l i t y D i s t a n c e>
</ n s 3 : p o i n t −meta>
</ n s 2 : e x t e n s i o n s>
Datenquelle Die Daten für dieses Projekt stammen von OpenStreetMap. Diese wurden
mit Hilfe des OSM-Clients JOSM herunter geladen. JOSM unterstützt nativ den Export
im osm-Format, bietet aber auch an, die Daten im GPX-Format zu exportieren.[Com13]
Beim Herunterladen kann man eine Bounding Box festlegen, in der die Daten liegen.
Außerdem kann festlegen, ob es Rohdaten seien sollen, die herunter geladen werden
oder Kartendaten. Da Kartendaten praktisch schon anonym sind, wurden ausschließlich
Rohdaten verwendet.
4.2
|
Bereinigung
Einige Spuren von OpenStreetMap verlaufen sowohl innerhalb als auch außerhalb der
festgelegten Bounding Box. JOSM löscht dann einfach alle Punkte, die außerhalb der
Bounding Box liegen. Wenn jedoch eine Spur die Bounding Box verlässt und später
wieder eintritt, so entsteht dadurch eine Kante in der Spur, die entlang des Randes der
Bounding Box entlang läuft. Um diesen Effekt zu vermeiden, werden die solche Kanten
entfernt und Spuren zerlegt.
Ebenfalls sind in Spuren Kanten vorhanden, die außergewöhnlich lang sind und die
eigentlich nur Sinn ergeben, wenn die Person mit dem Flugzeug unterwegs war. Eine andere Erklärung dafür sind Tunnel: In einem Tunnel gibt es keinen Empfang und manche
GPS-Spuren verbinden direkt Tunnelanfang mit dem -ende.
agg2graph bietet dafür eine effektive Filterfunktion, die für die Bereinigung der Daten
genutzt wurde. Sämtliche Datensätze, auf denen Operationen ausgeführt wurden (dies
betrifft alle Ergebnisse der Evaluation in Kapitel 5), wurden vorher von der agg2graphBibliothek bereinigt. Die Parameter dafür stehen in Tabelle 4.1. Johannes Mitlmeier
erläutert sie kurz in [Mit12, S.35ff].
31
minSegmentLength
1 minEdgeLength
0.1
maxSegmentLength
∞ maxEdgeLength
500
minEdgeLengthIncreaseFactor 10 maxZigZagAngle 30
minEdgeLengthAfterIncrease
30 maxNumOutliers 2
Tabelle 4.1.: Parameter für die Bereinigung der GPS-Spuren
4.3
|
Karte
Graphisch dargestellt wird alles im MapPanel dargestellt, welches die Klasse JXMapViewer erweitert, welcher aus der swingX-Bibliothek[Lab13] stammt. Obwohl agg2graph
bereits eine ähnliche Funktionaliät bereit stellt, wird diese nicht genutzt, da sie auf dem
JMapViewer (ohne X) basiert, die unter GPL-Lizenz steht und damit es nicht ermöglicht,
GPSk unter einer anderen Lizenz als GPL zu veröffentlichen.[Fou13] Der JXMapViewer
lädt automatisch die Kacheln, quadratische 256 × 256 Pixel große PNG-Bilder, die für
die Darstellung der Karte zusammen gefügt werden, von OpenStreetMap herunter. Diese
Kacheln werden zusätzlich auch auf der Festplatte gespeichert, um bei einer späteren
Ausführung des Prototypen immer noch eine Karte zeichnen zu können, selbst wenn
keine Internetverbindung vorhanden ist.
Zwar ist die Darstellung einer Karte für das Funktionieren des Prototypen nicht notwendig, allerdings lässt sich damit sehr einfach überprüfen, ob z.B. Kreuzungen richtig
erkannt wurden.
4.4
|
Algorithmen
Fast implementierte Algorithmus in GPSK erweitert die Klasse AbstractAlgorithm. Alternativ, wenn der Algorithmus mehr als zwei Datensätze benötigt, kann dieser stattdessen auch die Klasse MultipleInputAlgorithm erweitert werden. Ausgenommen ist
allerdings der Algorithmus OPTICS, der Dieser muss nur die Methode call() implementieren und eine @Options enthalten, die auf die Klasse für die Optionen zeigt. Eine
solche Options-Klasse ist beispielhaft in Listing 4.2 zu finden. Per reflections wird
diese von der Klassse RunAlgorithmAction ausgewertet und eine GUI erstellt, wie man
sie in Abbildung 4.1 sehen kann. RunAlgorithmAction erweitert die Klasse AbstractAlgorithm aus der Java-Bibliothek. Ihr Konstruktor erhält die Klasse vom Algorithmus
und das Objekt muss nur noch in einer entsprechenden Swing-Komponenente (JButton,
JMenuItem eingefügt werden.
Jeder Datensatz besteht aus Spuren und Punkten, die einem Objekt der GPSkEnvironment-Klasse gespeichert werden. Zusätzlich werden sämtliche GPSkEnvironment’s
in einer HashMap in der Singleton-Klasse EnvironmentManager gespeichert. Bei einem
Klick auf eine RunAlgorithmAction wird ein GUI-Element gebaut, in dem eine DropDown-Liste alle vorhandenen Datensätze auflistet (Algorithmen-Klassen können Filter
angeben, um unsinnige Eingabe zu verhindern) und es wird ein Textfeld angeboten, in
32
dem man den Schlüssel angeben kann, unter dem das Ergebnis gespeichert werden kann.
Beispielhaft ist eine solche Klasse für DBSCAN in Listing 4.2 zu finden.
Listing 4.2: Optionen Klasse für DBSCAN. Die Felder können zusätzliche Annotationen
haben (hier @Min, um Bedingungen für diese Objekte festzulegen. Die @Description-Annotation kann von der OptionsDialog-Klasse benutzt werden,
um Tooltips zu erstellen. Sie wurde in diesem Listing weggelassen, um Platz
zu sparen.
package de . fub . agg2graph . gpsk . a l g o r i t h m s ;
import de . fub . agg2graph . gpsk . a n n o t a t i o n s . D e s c r i p t i o n ;
import de . fub . agg2graph . gpsk . a n n o t a t i o n s . Min ;
/∗ ∗
∗
∗ @author C h r i s t i a n Windolf c h r i s t i a n w i n d o l f @ w e b . de
∗/
public c l a s s DBSCANoptions {
@Min( v a l u e =0)
@Description ( value = " [ . . . ] " )
public int minPts = 5 ;
@Min( v a l u e =0)
@Description ( value = " [ . . . ] " )
public double eps = 1 0 0 ;
@Override
public S t r i n g t o S t r i n g ( ) {
return
" DBSCANoptions{ " + " minPts=" + minPts + " , ␣ eps=" + eps + ’ } ’ ;
}
}
4.5
|
Kreuzungserkennung
Die Laufzeit von OPTICS lässt sich mit Hilfe eines Indizes, wie in Abschnitt 2.4.2
vorgestellt, von O(n2 ) auf O(n · log n) reduzieren. Diese Reduktion ist nicht nur in der
Theorie, sondern auch in der Praxis ausgesprochen relevant. Ein System, das mit einem
Core Duo T2400 und 2 GB RAM ausgestattet war benötigte bei einem Datensatz mit
3000 Punkten ungefähr 30 Sekunden, wenn kein Index verwendet wurde. Mit Index
konnte die Laufzeit auf weniger als eine Sekunde reduziert werden.
Die verwendete Bibliothek für den RBaum ist die jsi-Bibliothek [Mor13]. Sie kann
jedoch nur mit Koordinaten umgehen, die in einer ebenen Fläche liegen. Längen- und
33
Abbildung 4.1.: Beispielhafter Startdialog für DBSCAN. Das Feld input ist eine
DropDown-Liste, die alle vorhandenen Datensätze aus der GPSkEnvironment auflistet. Bei output steht, unter welchem Schlüssel die Ergebnisse nach der Ausführung in die GPSkEnvironment eingefügt werden sollen. Darunter stehen die Felder, die durch die Klasse DBSCANoptions automatisch erstellt wurden sowie den aus der @DescriptionAnnotation Tooltip. (siehe auch Listing 4.2)
34
Breitengrad sind keine solchen Koordinaten, weshalb die UTM -Projektion zum Einsatz
kommt. (siehe Abschnitt 2.4.1.
Die im Prototypen verwendetete Implementierung stammt aus der jsi-Bibliothek.[Mor13]
Allerdings kann ein R-Baum nur mit Rechtecken als Suchanfrage umgehen. [Gut84][S.49]
Dies führt dazu, dass die Nachbarschaftsanfrage N (p) (welche kreisförmig ist) nicht ganz
korrekt beanwortet wird und alle Punkte x mit dist(p, x) > nachträglich entfernt werden müssen, wie man in Abbildung 4.2 sehen kann. Der zu große Abfragebereich und
die Tatsache, dass Anfragen an den R-Baum nicht nur im best-case mit einer Laufzeit
von O(log n) beantwortet werden können, führt dazu, dass die Implementierung nicht
den best-case erreicht.
2·
2·
Abbildung 4.2.: Links eine normale Abfrage mit dem R-Baum, die zu viele Werte zurück liefert. Rechts ist ein konstruierter worst-case, bei dem die Abfrage
eine Laufzeit von O(n) benötigt unter der Annahme, dass gleich dem
Durchmesser des Datensatzes ist. Allerdings kann man auch deutlich erkennen, dass die zukünftigen Nachbarschaftsanfragen (es wird für jeden
Punkt eine gemacht) weniger als O(n) Schritte benötigen.
Wenn so groß wie der Durchmesser der Daten ist, führt dies auch dazu, dass eine
Abfrage den kompletten Datensatz zurück liefert und die Laufzeit den worst-case von
O(n2 ) erreicht.
35
5 | Evaluation
Um die Qualität der vorgestellten Verfahren und des Prototypen zu evaluieren, wurden Testdurchläufe mit Datensätzen von OpenStreetMap durchgeführt. Für die Überprüfung der Kreuzungserkennung wurde ein Datensatz aus der Umgebung des Berliner
Hauptbahnhofes genommen. (resources/hbf/hbf.gpx). Als Distanzfunktion wurde die
Fréchet-Distanz verwendet.
Für die Aggregierung wurde ein Datensatz aus West-Berlin, der sich vom Brandenburger Tor bis zum Bahnhof Westend erstreckt verwendet.
Der Prototyp erlaubt ist in der Lage, seine Ergebnisse in einem JXMapViewer einzuzeichnen und damit eine optische Evaluation der Daten zu ermöglichen.
5.1
|
Kreuzungserkennung
Die Kreuzungserkennung ist ein elementarer Vorverarbeitungsschritt für die Aggregierung. Das in Abschnitt 3.2 vorgestellte Verfahren kann ohne sie wenn überhaupt, nur
mit einem sehr großen Informationsverlust arbeiten.
Die Wahl auf die Umgebung des Berliner Hauptbahnhofes fiel vor allem deshalb, weil
sich dort mehrere Szenarien überlagern.
1. Eine Mischung aus geschwungenen Verkehrswegen (insbesondere an der Spree) und
geraden Verkehrswegen.
2. Es gibt drei verschiedene Verkehrsmittel: die Straßen (die sich wiederum in Radfahrer, Autofahrer und Fußgänger aufteilen können), die Bahn und die Schifffahrt.
Außerdem gibt es Spuren, die von einem zum anderen Verkehrsmittel wechseln.
3. Es gibt Stellen im Datensatz, an denen sich Spuren überschneiden, aber keine
Kreuzungen erkannt werden sollen. Eine Brücke über die Spree ist keine Kreuzung
zwischen der Straße und dem Fluss. Ebenfalls soll eine S-Bahn-Brücke nicht als
Kreuzung zwischen einer Straße und den Gleisen gewertet werden.
5.1.1
|
Optische Evaluation
Der RDP-Filter (siehe Abschnitt 2.4.3) wurde ursprünglich in den Prototypen eingebaut,
um Rechenleistung zu sparen und die Daten (wenn auch verlustbehaftet) zu komprimie-
36
Abbildung 5.1.: Die ermittelten Kreuzungen, die rot dargestellt sind, wurden ohne
RDP-Filter erzeugt. Die blauen Punkte sind hingegen mit RDP-Filter
als Vorverwarbeitungsschritt durchgeführt. GPSk hat dabei die blauen
Punkte in einer höheren Ebene gezeichnet als die roten, was bedeutet,
dass die roten einfach dort übermalt wurden, wo ursprünglich blaue
waren. Bei fast allen blauen Punkten liegt jedoch ein roter Punkt direkt darunter, abgesehen von den Rändern. Dort liegt meistens kein
roter Punkt unter einem blauen Punkt. Die Punkte wurden mit Hilfe
der Schwankungsanalyse aus dem Erreichbarkeitsdistanzdiagramm von
OPTICS ermittelt.
Links ist ein Bereich markiert, der auf der Kurve einer S-Bahn-Schiene
liegt. Hier liegen unter den blauen Punkten keine roten Punkte. Dies
liegt daran, dass die Strecke dort eine Kurve macht und der RDP-Filter
dort sehr viele Punkte nicht löscht. Der markierte Bereich links oben
zeigt hingegen wiederum eine Kreuzung, die ohne RDP (rot) gefunden
wurde, mit jedoch übersehen wurde. Der genaue Verlauf der Kurve in
diesem Bereich wird in Abbildung 5.2 dargestellt. Man sieht, dass dort
eine einzige Spur an genau dieser Kreuzung sehr viele Punkte hat, jedoch
wird dies vom RDP-Filter auf einen Punkt reduziert.
37
(a) ohne
RDP
(b) mit
RDP
Abbildung 5.2.: Der RDP-Filter reduziert diese Stelle auf einen einzigen Punkt macht
es in diesem Sonderfall unmöglich dies als Kreuzung zu erkennen.
ren. Die optische Analyse zeigt jedoch sehr deutlich, dass dieser Schritt die Ergebnisse
der Kreuzungserkennung deutlich verbessern kann.
Dies liegt daran, dass die in Abschnitt 3.1 vorgestellten Hypothesen nicht wirklich
zutreffen. Die erste Hypothese stimmt zwar, die zweite jedoch nicht. Fußgänger bleiben
an Kreuzungen nicht stehen, wenn sie keine Straße überqueren müssen und erhöhen die
Dichte der Punkte bei einer zeitbasierten Aufzeichnung nicht. PKWs wiederum müssen
ebenfalls kaum ihre Geschwindigkeit reduzieren, wenn die Ampel grün ist und sie geradeaus fahren. Umgekehrt können sie im Stau stecken bleiben und die Kreuzungserkennung
ordnet dies als Stau ein.
Wenn man jedoch den RDP-Filter als Vorverarbeitungsschritt durchlaufen lässt, so
werden die Spuren geglättet. Wenn eine Spur abbiegt, so muss der RDP-Filter an dieeser
Stelle den Punkt belassen. Wenn bei einem geraden Straßenverlauf nahezu alle Punkte
gelöscht werden, an Kreuzungen jedoch nicht, so entsteht wieder das Muster, auf das in
Abbildung 3.2 gehofft wurde.
Um die Auswirkungen des RDP-Filters besser zeigen zu können, wurden die Kreuzungen (mit und ohne RDP-Filter) ermittelt und mit Hilfe von GPSk auf einer Karte
eingezeichnet. Dies wurde zwei Mal durchgeführt. Einmal wurde für das Erreichbarkeitsdistanzdiagramm mit der Schwankungsanalyse ausgewertet (Abbildung 5.1) und einmal
mit der Clusterextraktion (Abbildung 5.3). Auf beiden Abbildungen kann man gut erkennen, dass mit dem RDP-Filter praktisch genau so viele Kreuzungen erkannt werden
wie ohne. Allerdings werden ohne RDP-Filter weitaus mehr Fehler gemacht als mit dem
Filter. OPTICS wurde für diese Abbildungen mit den Parametern = 75 Meter und
minP ts = 15 ausgeführt. Bei der Variante mit RDP-Filter (blaue Punkte) wurde auf
25 Meter gesetzt. Für die mit der Schwankungsanalyse erstellte Abbildung 5.1 wurde
ξ = 0.9 und = 10 gewählt. Die Variante mit der Clusterextraktion in Abbildung 5.3
bekam die Parameter ξ = 0.05 und minP ts = 15.
Der RDP-Filter hat jedoch nicht nur positive Auswirkungen auf die Ergebnisse.
An der Kreuzung Otto-Dix-Straße/Lesser-Ury-Weg (links oben auf Abbildung auf Abbildung 5.1, Vergrößerung mit Spuren aus dem Datensatz statt erkannten Kreuzungen
sind in Abbildung 5.2 zu sehen) verläuft nur eine Spur, bei der auf einmal die Punktdichte an einer Kreuzung deutlich ansteigt. Ohne RDP-Filter wird dies auch deshalb
als Kreuzung erkannt, aber mit RDP-Filter wird diese Punkte auf genau einen Punkt
reduziert, mit der Folge, dass sie nicht mehr erkannt wird.
Ein weiteres Problem ergibt sich mit der Besonderheit, dass Daten von OpenStreetMap
38
Abbildung 5.3.: Ein zweiter Vergleich bei der Kreuzungserkennung, diesmal allerdings
mit der Clusterextraktion statt mit der Schwankungsanalyse. Deutlich
zu sehen ist dabei, dass weniger Punkte entstehen als in Abbildung
5.1. Erneut zeigen die roten die Berrechnung ohne RDP-Filter und die
blauen Punkte mit RDP-Filter an. Man sieht allerdings wieder ähnliche
Artefakte: Ränder des Datensatzes und Kurven (z.B. auf der S-BahnStrecke im Südwesten) werden als Kreuzungen erkannt.
39
verwendet wurden. Diese Daten sind nur ein Ausschnitt des Gesamtdatensatzes und Spuren, die die festgelegte Bounding Box um den Hauptbahnhof verlassen, werden sie an den
Rändern abgeschnitten. Die Endpunkte dieser abgeschnittenen Punkte liegen dadurch
automatisch am Rand der Bounding Box. Der RDP-Filter wiederum entfernt niemals
die Endpunkte einer Strecke. Wenn jedoch wieder der RDP-Filter überall Punkte läscht,
jedoch nicht am Rand, so steigt dort die Dichte (und es sinkt die Erreichbarkeitsdistanz).
Die Folge ist, dass diese als Kreuzung eingestuft werden.
Deshalb gibt es in GPSk auch ein Werkzeug, dass einfach sämtliche Punkte, die weniger
als x Meter Abstand zum Rand haben, entfernt werden (Voreinstellung sind 25 Meter).
Bei der Erstellung der Abbildungen 5.1 und 5.3 ist jedoch dieses Tool nicht zum Einsatz
gekommen, um genau diesen Effekt zeigen zu können.
Ebenfalls auffällig ist die sehr große Ansammlung an Punkten auf dem Hauptbahnhof.
Dies ist erst einmal grundsätzlich nicht schlecht, da der Hauptbahnhof ein Verkehrsknotenpunkt ist. Wünschenswert wäre es natürlich, wenn er diesen auf einige sehr wenige
Punkte reduzieren würde, allerdings ist dieses Gelände sehr unübersichtlich.
Beim Vergleich zwischen den Abbildungen 5.1 (Schwankungsanalyse) und 5.3 (Clusterextraktion) fällt auf, dass die Schwankungsanalyse häufig einen ganzen Satz an Punkten
für eine Kreuzung erkennt, während die Clusterextraktion sich auf einen beschränkt. Dafür gibt es zwei Gründe: Die Schwankungsanalyse betrachtet eine steile Umgebung als
Kreuzung. Bei einer steil abfallenden Umgebung hat der letzte Punkt dieser Umgebung
nur Punkte, die eine höhere Erreichbarkeitsdistanz haben als er selbst und rechts einen
ungefähr ähnlichen hohen Wert. Unterm Strich ist die durchschnittliche Erreichbarkeitsdistanz in seiner näheren Umgebung niedriger als seine eigene und die Schwankungsanalyse „sieht“ eine Kreuzung. Nun ist jedoch in der Clusteranalyse jeder Cluster von zwei
steilen Umgebungen begrenzt. Der zweite Grund ist der, dass die Schwankungsanalyse
auch Cluster erkennt, die weniger als minP ts Punkte haben.
5.1.2
|
Statistische Evaluation
Bei der optischen Evaluation lieferte die Clusterextraktion mit dem RDP-Filter deutlich
bessere Ergebnisse, daher wird in diesem Abschnitt ihr Verhalten noch einmal statistisch
untersucht. Für die statistische Evaluation wird erneut der Datensatz vom Hauptbahnhof DSc verwendet. Dieser soll nun mit einem Referenzdatensatz DSr verglichen werden, in dem manuell alle Kreuzungen eingetragen wurden, die erkannt werden sollten.
Die Referenzdaten befinden sich in der Datei resources/hbfRef.gpx. Damit eine eine Kreuzung in diesen Referenzdatensatz eingetragen wurde musste sie folgende zwei
Bedingungen erfüllen:
1. Auf einer Straßenkarte muss eine Kreuzung erkennbar sein. (Es wurde dabei Bing
Maps in der höchsten Zoomstufe verwendet)
2. An der Stelle verlief auch eine Spur aus dem Datensatz.
Für den Vergleich zwischen diesen beiden Datensätzen wird die Erkennungs- (Def. 14)
und die Fehlerrate (Def. 15) ermittelt.
40
Definition 14 (Erkennungsrate) Sei DSc ein Datensatz mit errechneten Kreuzungen, DSr ein Referenzdatensatz mit manuell eingetragenen Kreuzungen und > 0
ein Maximalabstand. Dann ist die Erkennungsrate φ wie folgt definiert:
φ=
|{p|p ∈ DSr ∧ ∃q ∈ DSc : dist(p, q) ≤ }|
|DSr |
Definition 15 (Fehlerrate) Sei DSc ein Datensatz mit errechneten Kreuzungen,
DSr ein Referenzdatensatz mit manuel eingetragenen Kreuzungen und > 0. Dann
ist die Fehlerrate Φ wie folgt definiert:
Φ=
|{p|pinDSc ∧ ∃q ∈ DSr : dist(p, q) ≤ }|
|DSc |
Φ/φ
0, 7
0, 6
Fehlerrate Φ
Erkennungsrate φ
0, 5
ξ
0, 04
0, 08
0, 12
0, 16
0, 20
Abbildung 5.4.: Graphische Darstellung der ermittelten Erkennungsrate- bzw. Fehlerrate. Die Kreuzungen wurden mit Hilfe von OPTICS ( = 75 Meter,
minP ts = 15 und anschließender Clusterextraktion (minP ts = 15, ξ siehe x-Achse) ermittelt. Zudem wurden Kreuzungen entfernt, die weniger
als 25 Meter Abstand zum Rand des Datensatzen haben.
Die Graphik 5.4 zeigt, wie sich der Wert der Fehlerrate Φ und der Erkennungsrate φ
verhalten, wenn der Parameter ξ bei der Clusterextraktion verändert wird. Je niedriger
ξ wird, umso höher wird die Erkennungsrate und die Fehlerrate sinkt. Der Grund dafür sind Kurven. Eine Kurve auf einer Straße führt dazu, dass alle Verkehrteilnehmer
dazu gezwungen werden, abzubiegen und dem Straßenverlauf zu folgen. An genau diesen Stelle löscht nun der RDP-Filter keine Punkte, um möglichst viel vom eigentlichen
41
Spurverlauf zu erhalten. An einer Kreuzung hingegen haben die Verkehrsteilnehmer die
Wahl, ob sie geradeaus fahren oder abbiegen wollen. Daher sind die Täler im Erreichbarkeitsdistanzdiagramm an Kurven deutlich tiefer als an Kreuzungen und werden selbst
bei einem sehr hohen ξ noch erkannt.
Je niedrige ξ wird, umso mehr werden auch die etwas weniger tiefen Täler der Kreuzungen bemerkt. Die Tatsache, dass die Fehlerrate mit fallendem ξ ebenfalls sinkt, bedeutet
nicht, dass in absoluten Zahlen weniger Fehler gemacht werden. Dadurch, dass mehr
Kreuzungen korrekt erkannt werden, fällt einfach die relative Fehlerrate.
5.2
|
Aggregierung
Die Evaluation des Endergebnisses erfolgt ebenfalls mit optischen und statistischen Methoden. Da bei der optischen Analyse der Kreuzungserkennung die Kombination aus
RDP-Filter, OPTICS und Clusterextraktion die besten Ergebnisse lieferte, wurden diese eingesetzt, um die Spuren aufzuteilen, bevor die Aggregierung begann.
5.2.1
|
Optische Evaluation
Die graphischen Ergebnisse entsprechen weitestgehen den Erwartungen. In den meisten verlaufen die aggregierten Spuren über Hauptstraßen, Nebenstraßen werden selten
„erkannt“. Dies hängt häufig damit zusammen, dass im Quelldatensatz (resources/dbscan/berlin.gpx) zu wenig Spuren dort verlaufen. Ein anderer Grund ist die Tatsache, dass die Kreuzungserkennung auf Nebenstraßen selten Kreuzungen erkennt, so
dass es zu keiner Aufspaltung kommt. Dies führt dann wieder zu dem in Abbildung 3.1
dargestellten Problem, dass Segmente, die nur partiell nah beieinander laufen, nicht als
Cluster erkannt werden.
Auf den Hauptstraßen sind zudem häufig zwei Spuren zu sehen. Die Erklärung dafür
ist einfach: Jede Richtung hat ihre eigene Spur. Manche Straßen haben trotzdem nur eine
Spur, hier ist häufig ebenfalls der Mangel an Spuren der Grund für die andere Richtung
der Grund. Abbildung 5.5 zeigt graphisch das Ergebnis der Aggregierung.
Interessant ist dabei auch ein Blick auf einen Fritz-Schloss-Park (Abbildung 5.6). Man
würde zumindestens erwarten, dass in der aggregierten Datei Hauptstraßen eher erkannt
werden als Parkwege. Allerdings laufen im Ursprungsdatensatz (weiterhin resource/dbscan/berlin.gpx) auf der Haupstraße weitaus weniger Spuren entlang als im Park.
Es ist im Sinne der Anoynmität, dass Spuren, die zu wenige Nachbarn haben, entfernt
werden. Insofern liefert der Algorithmus das gewünschte Ergebnis. Die Grundaussage des
Datensatzes, dass OpenStreetMap-Nutzer sich häufig im Fritz-Schloss-Park aufhalten
(oder ihn einfach nur oft vermessen), bleibt erhalten - wie sie ihn erreicht haben (woraus
sich schließen ließe, wo sie wohnen), wurde gelöscht.
Allerdings bilden sich in unübersichtlichen Situationen (z.B. Fußgängerzonen) Cluster,
bei denen die Ermittlung des Zentroiden kaum noch möglich ist. Als Beispiel dient hier
die nähere Umgebung des Kölner Doms. Zwar werden hier noch einige Spuren aggregiert,
allerdings haben einige Aggregate eine kurze Länge, die kaum noch die ursprünglichen
42
Abbildung 5.5.: Die schwarzen Linien sind das Ergebnis der Durchführung mit den Parametern = 50 Meter und minP ts = 2. Bei den blauen Linien wurde
stattdessen minP ts stattdessen auf 5 gesetzt. Dabei liegen die blauen
Linien in einer höheren Schicht, und übermalen dabei fast alle schwarzen Linien. Das heißt, alles, was mit minP ts = 5 erkannt wurde, wurde
auch mit minP ts = 2 erkannt.
43
Abbildung 5.6.: Der Fritz-Schloss-Park. Die aggregierten Spuren sind blau eingezeichnet, die Original-Spuren rot. DBSCAN wurde hier mit den Parametern
= 50 Meter und minP ts = 5 ausgeführt.
44
Bewegungen wieder spiegeln. Abbildung 5.7 zeigt den Ausgangsdatensatz in Köln und
die Ergebnisse.
(a) Kölner Hauptbahnhof/Dom. Die bluen
Linien sind die aggregierten. Es wird zwar
noch anatzweise das Netz der dortigen
Fußgängerzone wieder gegeben, allerdings
sehr unsauber.
(b) Bei ausreichend vielen weiteren
Strecken fässt DBSCAN die beiden schwarzen Strecken zu einem
einzigen Cluster zusammen.
Abbildung 5.7.: Die Fußgängerzone in der Nähe des Kölner Doms stellt ein Problem
dar, da sich dort Cluster bilden, deren Zentroide nur noch etwas sehr
unscheinbares darstellen. Die rechte Skizze zeigt beispielhaft, wie in solchen Situationen unterm Strich zwei Spuren zusammen gefasst werden,
die eigentlich eine recht hohe Fréchet-Distanz haben.
5.2.2
|
Statistische Evaluation
Eine wichtige Stellschraube für die Aggregierung ist der Parameter minP ts. Er bestimmt direkt, ob eine Straße, auf der x Spuren verlaufen, ins Aggregat hinein kommen oder nicht. Die logische Konsequenz ist, dass mit steigendem minP ts die Anzahl
der aggregierten Spuren (also Zentren der ermittelten Cluster) sinkt. Auch die Summe
der Länge sämtlicher Aggregate müsste sinken. Testläufe mit dem Datensatz aus der
Datei resources/dbscan/berlin.gpx, deren Ergebnisse in der Abbildung 5.8 eingetragen wurden, bestätigen diese Vermutung. Die Messreihen einmal mit dem Parameter
= 50 Meter und einmal mit = 20 Meter durchgeführt.
45
= 50m, Länge
= 50m, Anzahl der Cluster
= 20m, Länge
480
2400
400
2000
320
1600
240
1200
160
800
80
400
4
8
12
16
20
Anzahl der Cluster
Länge aller Strecken in Kilometer
= 20m, Anzahl der Cluster
24
minPts
Abbildung 5.8.: Die blauen Linien sind die statistischen Ergebnisse für = 50 Meter und
die grünen Linien sind die Ergebnisse mit = 20 Meter. Die Linien, die
die Gesamtlänge aller aggregierten Spuren darstellen, sind durchgezogen. Die Linien, die die Anzahl der Cluster bzw. aggregierten Spuren
widerspiegeln sind gestrichelt.
46
6 | Fazit & Ausblick
In dieser Arbeit wurden bei der Kreuzungserkennung verschiedene Verfahren implementiert und evaluiert. Dabei lieferte das Verfahren mit RDP-Filter, OPTICS und der
Clsuterextraktion die besten Ergebnisse. In dieser Arbeit konnte darauf eine Art bestpractise ermittelt werden, wie Spuren mit dem Prototypen GPSk anonymisiert werden
können. Diese best-practise ist in dem Fließdiagramm in Abbildung 6.1 dargestellt.
Import
Reinigung
RDP-Filter
OPTICS
Splitter
Clusterextraktion
DBSCAN
Aggregierung
Abbildung 6.1.: Empfohlener Ablauf für die Anonymisierung der Spuren mit GPSk. Dabei stehen die durchgezogenen Linien für Spuren, die von einem Verarbeitungsschritt übergeben. Die gepunkteten Linien stehen hingegen
Punkte.
6.1
|
Kreuzungserkennung
Für die Anonymisierung mittels DBSCAN ist die Zerlegung der Spuren zwingend notwendig. (Ein Testdurchlauf mittels DBSCAN mit der Datei resources/dbscan/berlin.gpx
47
fand keinen einzigen Cluster). Die in der Arbeit vorgestellte Methode mit RDP-Filter,
OPTICS und der Clusterextraktion ist in erster Linie eine Kurvenerkennung, bei der
nebenbei Kreuzungen erkannt werden. Unterm Strich kann DBSCAN mit Hilfe dieses
Vorverarbeitungsschrittes plausible Ergebnisse liefern, allerdings könnten die Ergebnisse
durch eine bessere Kreuzungserkennung insgesamt verbessert werden.
6.2
|
Aggregierung
Es hat sich gezeigt, dass DBSCAN durchaus geeignet ist, um Spuren zu anonymisieren. Die Anonymität wird dabei vor allem dadurch gewährleistet, dass Spuren entfernt
werden. Ein Angreifer A kann aus der Tatsache, dass er weiß, P ’s Spuren im Datensatz
vorhanden ist, nicht schließen, dass P ’s Spuren in den aggregierten und veröffentlichten
Datensatz eingeflossen sind.
k-Anonymität wird schließlich dadurch zugesichert, dass DBSCAN Cluster erzeugt,
die eine Mindestgröße von minP ts + 1 haben. Dadurch gibt es immer minP ts + 1 nicht
unterscheidbare Quasi-Identifizierer. Also st k-Anonymität zugesichert unter der Vorraussetzung, dass bei DBSCAN der Parameter minP ts ≥ k − 1 ist.
Die aggregierten Ergebnisse wären auch dann noch k-anonym, wenn keine Spuren gelöscht würden. Es ist zwar sehr unwahrscheinlich, dass DBSCAN in einem gewöhnlichen
GPS-Datensatz kein Rauschen erkennt und nirgends eine Spur einzeln verläuft, dennoch sollte man darauf achten, dass DBSCAN einen Teil der Spuren entfernt, bevor ein
Datensatz veröffentlicht.
Eine zweite Eigenschaft der Ergebnisse, nämlich dass die verbleibenden Segmente nur
noch Kreuzungen miteinander verbinden, erhöht ebenfalls die Anonymität. Selbst wenn
ein Angreifer A die Information hat, dass P in genau diesem Aggregat enthalten ist,
kommt er nur bis zur nächsten Kreuzung. Innerhalb einer Großstadt ist dies bei einer
hohen Kreuzungsdichte kein Problem, in ländlichen Regionen ist der Abstand dazwischen
deutlich größer.
Neben der Anonymisierung ist dieses Verfahren auch zur Straßenerkennung geeignet.
Die Ergebnisse auf Abbildung 5.5 für minP ts = 2 liegen ziemlich genau auf den Straßen
- der niedrige Wert für minP ts führt nicht dazu, dass Straßen erkannt werden, die besser
als Rauschen hätten erkannt werden sollen.
6.3
|
Ausblick
Bei dem in dieser Arbeit vorgestellten Verfahren werden nur Distanzfunktionen verwendet, die räumliche Entfernungen messen. Bei der Aggregierung werden dadurch sämtliche
Zeitstempel zerstört. Sowohl bei der Definition der Distanzfunktionen für die Clusteranalyse als auch der Bestimmung der Clusterzentren könnte man diesen jedoch berücksichtigen. Sofern die Datendichte nicht hoch genug ist, kann man auch stattdessen bestimmte
Features der Zeitstempel extrahieren. Beispielsweise wäre es möglich, nur die Wochentage oder die Geschwindigkeit zu berücksichtigen, um so einen höheren Informationserhalt
48
trotz Anonysierung zu ermöglichen.
Eine weitere, noch nicht untersuchte Möglichkeit wäre, zu versuchen, die Kreuzungserkennung zu verbessern. Einen interessanten Ansatz dafür lieferte Simon Könnecke, der
überprüfte, ob Kanten sich schneiden und ob sie es annähernd rechtwinklig tun. [Kö13]
Das Verfahren lieferte vor allem bei einer dünnen Datendichte bessere Ergebnisse und
könnte mit dem hier vorgestellten Aggregationsverfahren kombiniert werden.
Anonymität Der entscheidende Unterschied zwischen Krankenhausdaten (auf deren
Basis häufig die Diskussion über Anonymität geführt wird) und GPS-Spuren ist eben,
dass es keine Trennung zwischen quasi-identifizierenden und sensiblen Attributen gibt.
1
Homogenitätsattacken
Bei Krankenhausdaten sind mit einer Wahrscheinlichkeit von 81
möglich, wenn die Datensätze 5-anonym sind. [MGKV06, S. 2] Machanavajjhala et al.
führten deshalb den Begriff der l-Diversität ein. l-Diversität bedeutet, dass für jede
vollständige Gruppe (also jede Gruppe enthält alle Tupel, die einen bestimmten QuasiIdentifizierer haben) aus Tupeln, die homogene Quasi-Identifizierer haben, dass sie min1
für die
destens l verschiedene sensible Attribute haben. Der „niedrige“ Wert von 81
Wahrscheinlichkeit der Homogenität der sensiblen Attribute deutet darauf hin, dass die
meisten 5-anonymen Krankenhausdatensätze automatisch zumindestens 2-divers sind.
Wenn jedoch sensible und quasi-identifizierende Attribute gleich sind, bedeutet dies,
dass alle k-anonymen Datensätze nur 1-divers sind. Zwar anonymisiert das hier vorgestellte Verfahren GPS-Spuren, aber das Kriterium k-Anonymität ist ein schlechter
Indikator für die tatsächliche Anonymität. Für die Evaluation zukünftiger Anonymisierungsverfahren auf GPS-Spuren wäre es daher sinnvoll, wenn zusätzliche Kriterien für
die Anonymität auf GPS-Spuren diskutiert werden würden.
49
7 | Literaturverzeichnis
[App12] Apple Computer Inc.: iPhone 3G - Technical Specifications. 2012.
– http://support.apple.com/kb/SP495, zuletzt aufgerufen am 25. Juni
2013
[CK09] Cao, Lili ; Krumm, John J.: From GPS Traces to a Routable Road Map.
In: Procedings from the 17th ACM SIGSPATIAL International Conference
on Advances in Geographic Information Systems, 2009, S. 3–12
[Com13] Community, JOSM: WikiStart - JOSM. 2013. – http://josm.
openstreetmap.de/wiki/De:WikiStart zuletzt aufgerufen am 21. Juni
2013
[DP73] Douglas, David ; Peucker, Thomas: Algorithms for the reduction of the
number of points required to represent a digitised line or its caricature. In:
The Canadian Cartographer 10 (1973), S. 112 – 122
[Fou13] Foundation, Free S.: Frequently Asked Questions About The GNU
License.
2013. –
http://www.gnu.org/licenses/gpl-faq.html#
GPLRequireSourcePostedPublic, zuletzt aufgerufen am 21. Juni 2013
[Gar13] Gartnet Inc.: Worldwide PC, Tablet and Mobile Phone Shipments to
Grow 5.9 Percent in 2013. 2013. – http://www.gartner.com/newsroom/
id/2525515, zuletzt aufgerufen am 25. Juni 2013
[Gat12] Gatzke, Franz: Anwendung von k-Anonymisierung auf statischen GPSDaten, Freie Universiät Berlin, Institut für Informatik, Bachelorarbeit, 2012
[Goo13] Google Inc.: Android 4.2 Compatibility Definition. 2013. – http://
static.googleusercontent.com/external_content/untrusted_dlcp/
source.android.com/de//compatibility/4.2/android-4.2-cdd.pdf
[Gut84] Guttman, A.: A Dynamic Index Structure for Spatial Searching. In: ACM
SIGMOD International Conference on Management of Data (1984)
[HA95] Helmut Alt, Michael G.: Computing the Frèchet-Distance between two
polygonal curves. In: International Journal of Computational Geometry and
Applications 5 (1995), S. 75–91
50
[Hen99] Henrikson, Jeff: Completeness And Total Boundedness of the Hausdorff
Metric. In: MIT Undergraduate Journal of Mathematics (1999)
[KSAB99] Kriegel, Hans-Peter ; Sander, Jörg ; Ankerst, Mihael ; Breuning,
Markus: OPTICS: Ordering Points to Identify the Clustering Structure. In:
ACM SIGMOD international conference on Management of data (1999)
[Kö13] Könnecke, Simon: Untersuchung einer Clustermethode zur Aggregation
von GPS-Spursegmenten, Freie Universiät Berlin, Institut für Informatik,
Bachelorarbeit, 2013
[Lab13] Labs, Swing: Swing Labs: Swing Component Extensions. 2013. – https:
//swingx.java.net/ zuletzt aufgerufen am 11. Juli 2013
[MGKV06] Machanavajjhala, Ashwin ; Gehrke, Johannes ; Kifer, Daniel ; Venkitasubramaniam, Muthuramakrishnan: l-diversity: Privacy beyond kAnoymity. In: ACM Transactions on Knowledge Discovery from Data
(TKDD) (2006)
[Mit12] Mitlmeier, Johannes: Generierung von Straßengraphen aus aggregierten
GPS-Spuren, Freie Universität Berlin, Institut für Informatik, Masterarbeit,
2012
[Mor13] Morris, Aled: JSI (Java Spatial Index) Rtree Library. 2013. – http:
//jsi.sourceforge.net/ zuletzt aufgerufen am 22. Juni 2013
[MV12] Müller, Sebastian ; Voisard, Agnés: Storing aggregated traces for map
construction. In: 8. GI/KuVS-Fachgespräch Ortsbezogene Anwendungen und
Dienste, 2012, S. 8–11
[OM03] Ort, Ed ; Mehta, Bhakti:
Java Architecture for XML Binding
(JAXB). 2003. – http://www.oracle.com/technetwork/articles/
javase/index-140168.html zuletzt aufgerufen am 21. Juni 2013
[PG09] Philippe Golle, Kurt P.: On the Anonymity of Home/Work Location
Pairs. In: Pervasive (2009)
[ROE09] Raento, Mika ; Oulasvirta, Antti ; Eagle, Nathan: Smartphones, an
emerging tool for social scientists. In: Socialogical & Methods and Research
(2009), S. 426–454
[Sch10] Schmidt, Torsten:
My tracks - eigene GPS-Daten aufzeichnen.
2010. –
http://www.netz-online.com/2010/09/13/
my-tracks-eigene-gps-daten-aufzeichnen/ zuletzt aufgerufen am
6. Juli 2013
[SE00] Sanders, Jörg ; Esters, Martin: Knowledge Discovery in Databases: Techniken und Anwendungen. Springer-Verlag GmbH, Heidelberg, 2000
51
[SEKX96] Sander, Jörg ; Ester, Martin ; Kriegel, Hans-Peter ; Xiaowei, Xu: A
Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise. In: Proceedings of the Second International Conference on
Knowledge Discovery and Data Mining (1996)
[Str96] Strehmel, Ralf: Amtliches Bezugssystem der Lage: ETRS89. In: Vermessung Brandenburg 1/96 (1996)
[Swe02] Sweeney, L.: k-anonymity: A model for protecting privacy. In: International Journal on Uncertainty, Fuzziness and Knowledge-based Systems (2002)
[Syn87] Synder, John P.: Map Projections: A Working Manual. Geological Survey
(U.S.), 1987
[Top13] TopoGrafix: GPX 1.1 Schema Documentation. 2013. – http://www.
topografix.com/GPX/1/1/ zuletzt aufgerufen am 20. Juni 2013
[ZS10] Zhang, Lijuan ; Sester, Monika: Incremental Data Acquisition from GPSTraces. (2010)
52
A | Verwendete Bibliotheken
Der Prototyp GPSk erweitert den Prototypen agg2graph und nutzt einige seiner Funktionen.
• commons-jxpath-1.3.jar Erlaubt XPath-Ausdrücke auf JavaBeans http://commons.
apache.org/proper/commons-jxpath/
• frechet-0.0.1-SNAPSHOT.jar Vom Autor erstellte Implementierung der diskreten Fréchet-Distanz
• frechet.jar Implementierung der Fréchet-Distanz vom mytraj-Projekt. http:
//code.google.com/p/mytraj/ Wird nicht mehr wirklich verwendet, da sie abstürzt, wenn sich Spuren schneiden.
• hamcrest.jar Bibliothek zum Erstellen von Unit-Tests. http://code.google.
com/p/hamcrest/
• jarjar-1.4.jar Ant-Task, die das Erstellen einer Executable Jar erleichtern.
https://code.google.com/p/jarjar/
• jens.jar Die Implementierung der Fréchet Distanz durch Jens Fischer. Wird nicht
mehr benutzt, weil sie ein Speicherleck hat.
• jscience.jar Enthält die UTM -Projektion. http://jscience.org/
• jsi-1.0b8.jar Enhält eine RBaum-Implementierung http://jsi.sourceforge.
net/
• jts-1.8.jar Geometrie-Bibliothek. Wird von frechet.jar benötigt. Außerdem
existiert in GPSk ein Tool (welches nicht in der Arbeit selbst diskutiert wurde, da es
für die Erstellung der Ergebnisse, die in der Evaluation besprochen wurden, nicht
verwendet wurde), das Polygone um Kreuzungen zeichnen kann.
• junit-4.11.jar Framework zum Erstellen von Unit-Testsi http://junit.org/
• log4j-1.2.6 Framework zum Loggen von Ereignissen
• swingx-all-1.6.4.jar Enthält den JXMapViewer zum Darstellen von Karten.
53
B | CD-Inhalt
Dieser Arbeit liegt eine CD für Beispieldaten und Code bei.
• main.pdf Digitale Version dieser Arbeit
• resources Beispieldateien, die in der Evaluation verwendet wurden.
• GPSk Der Prototyp
– build_gpsk.gpx Ant-Skript zum Erstellen einer ausführbaren Jar-Datei.
– gpsk.jar auführbare Jar-Datei, die den Prototypen startet.
– res Ordner mit Resource für den Prototypen
– test Testdateien für Unit-Tests
– unit-test Quellcodes für Unit-Tests.
• de Quellpaket de.
• com Quellpaket com.
• org Quellpaket org.
54