<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=OPTICS</id>
	<title>OPTICS - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=OPTICS"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=OPTICS&amp;action=history"/>
	<updated>2026-05-24T03:13:28Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=OPTICS&amp;diff=1968433&amp;oldid=prev</id>
		<title>imported&gt;Corpophiliac am 2. März 2024 um 12:50 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=OPTICS&amp;diff=1968433&amp;oldid=prev"/>
		<updated>2024-03-02T12:50:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;OPTICS&amp;#039;&amp;#039;&amp;#039; ({{enS|Ordering Points To Identify the Clustering Structure|de=[etwa] Punkte ordnen um die Clusterstruktur zu identifizieren}}) ist ein dichtebasierter [[Algorithmus]] zur [[Clusteranalyse]]. Er wurde von [[Mihael Ankerst]], [[Markus M. Breunig]], [[Hans-Peter Kriegel]] und [[Jörg Sander (Informatiker)|Jörg Sander]] entwickelt.&amp;lt;ref&amp;gt;{{Literatur |Autor=Mihael Ankerst, Markus M. Breunig, [[Hans-Peter Kriegel]], Jörg Sander |Titel=OPTICS: Ordering Points To Identify the Clustering Structure |Sammelwerk=ACM SIGMOD international conference on Management of data |Verlag=ACM Press |Datum=1999 |Seiten=49–60 |Online=[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.129.6542 CiteSeerX]}}&amp;lt;/ref&amp;gt; Das Grundprinzip des Algorithmus entstammt [[DBSCAN]],&amp;lt;ref&amp;gt;{{Literatur |Autor=Martin Ester, [[Hans-Peter Kriegel]], Jörg Sander, Xiaowei Xu |Hrsg=Evangelos Simoudis, Jiawei Han, Usama M. Fayyad |Titel=A density-based algorithm for discovering clusters in large spatial databases with noise |Sammelwerk=Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96) |Verlag=AAAI Press |Datum=1996 |ISBN=1-57735-004-9 |Seiten=226–231 |Online=[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.71.1980 CiteSeerX]}}&amp;lt;/ref&amp;gt; jedoch löst der Algorithmus eine wichtige Schwäche des DBSCAN-Algorithmus: im Gegensatz zu diesem kann er Cluster unterschiedlicher Dichte erkennen. Gleichzeitig eliminiert er (weitgehend) den &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Parameter des DBSCAN-Algorithmus. Hierzu ordnet OPTICS die Punkte des Datensatzes linear so, dass räumlich benachbarte Punkte in dieser Ordnung nahe aufeinander folgen. Gleichzeitig wird die sogenannte „Erreichbarkeitsdistanz“ notiert. Zeichnet man diese Erreichbarkeitsdistanzen in ein Diagramm, so bilden Cluster „Täler“ und können so identifiziert werden.&lt;br /&gt;
&lt;br /&gt;
== Kernidee ==&lt;br /&gt;
OPTICS verwendet wie DBSCAN zwei Parameter, &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; spielt hier jedoch die Rolle einer Maximaldistanz und dient vor allem dazu, die [[Komplexität (Informatik)|Komplexität]] des Algorithmus zu begrenzen. Setzt man &amp;lt;math&amp;gt;\varepsilon = \infty&amp;lt;/math&amp;gt;, so ist die Komplexität des Algorithmus &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;, andernfalls kann sie mit Hilfe von geeigneten räumlichen [[Datenbankindex|Indexstrukturen]] wie dem [[R*-Baum]] auf &amp;lt;math&amp;gt;O(n\cdot\log n)&amp;lt;/math&amp;gt; reduziert werden. Ohne diese Optimierung hingegen verbleibt die Komplexität bei &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt; für endliche &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In DBSCAN ist ein Punkt ein „Kernpunkt“, wenn seine &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Umgebung mindestens &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt; Punkte enthält. In OPTICS hingegen wird geschaut, ab wann ein Punkt ein Kernpunkt wäre. Das wird mit der „Kerndistanz“ umgesetzt, also demjenigen &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Wert, ab dem ein Punkt in DBSCAN ein „Kernpunkt“ wäre. Gibt es kein &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;, mit dem ein Punkt ein Kernpunkt wäre, ist dessen Kerndistanz unendlich oder „undefiniert“.&lt;br /&gt;
&lt;br /&gt;
Die „Erreichbarkeitsdistanz“ eines Punktes &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; von einem zweiten Punkt &amp;lt;math&amp;gt;o&amp;lt;/math&amp;gt; ist definiert als &amp;lt;math&amp;gt;\max(kerndistanz(o),dist(o,p))&amp;lt;/math&amp;gt;, also als das Maximum des echten Abstandes und der Kerndistanz des verweisenden Punktes.&lt;br /&gt;
&lt;br /&gt;
OPTICS ordnet jetzt die Objekte in der Datenbank, indem es bei einem beliebigen unbearbeiteten Punkt anfängt, die Nachbarn in der &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Umgebung ermittelt und sie sich nach ihrer bisher besten Erreichbarkeitsdistanz in einer [[Vorrangwarteschlange]] merkt. Es wird jetzt immer derjenige Punkt als Nächstes in die Ordnung aufgenommen, der die kleinste Erreichbarkeitsdistanz hat. Durch das Verarbeiten eines neuen Punktes können sich die Erreichbarkeitsdistanzen der unverarbeiteten Punkte verbessern. Durch die Sortierung dieser Vorrangwarteschlange verarbeitet OPTICS einen detektierten Cluster vollständig, bevor er beim nächsten Cluster weitermacht.&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:OPTICS.svg]]&lt;br /&gt;
&lt;br /&gt;
OPTICS kann als Erreichbarkeitsdiagramm (unten) visualisiert werden. Hierbei sind die Punkte entlang der x-Achse nach der von OPTICS berechneten Ordnung sortiert, und auf der y-Achse ist die Erreichbarkeitsdistanz angegeben. „Täler“ in diesem Diagramm entsprechen erkannten Clustern im Datensatz; die Tiefe des Tales zeigt die Dichte des Clusters an.&lt;br /&gt;
Als zusätzliche Visualisierung wird hier (rechts oben) jeder Punkt mit seinem Erreichbarkeits-Vorgänger verbunden. Der so entstehende [[Spannbaum]] visualisiert die von OPTICS ermittelte Dichte-Verbundenheit der Punkte im Datensatz. Als Parameter wurden hier &amp;lt;math&amp;gt;\varepsilon \le 0.5&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;minPts=10&amp;lt;/math&amp;gt; verwendet. Diese Visualisierung wurde mit der OPTICS-Implementierung in [[Environment for DeveLoping KDD-Applications Supported by Index-Structures|ELKI]] erstellt.&lt;br /&gt;
&lt;br /&gt;
== Pseudocode ==&lt;br /&gt;
Der Grundansatz von OPTICS ist ähnlich zu dem von [[DBSCAN]], aber statt eine Menge von „bekannten aber noch nicht verarbeiteten“ Objekten zu pflegen, werden diese in einer [[Vorrangwarteschlange]] (beispielsweise einem indizierten [[Heap (Datenstruktur)|Heap]]) verwaltet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  OPTICS(DB, eps, MinPts)&lt;br /&gt;
     for each point p of DB&lt;br /&gt;
        p.reachability-distance = UNDEFINED&lt;br /&gt;
     for each unprocessed point p of DB&lt;br /&gt;
        N = getNeighbors(p, eps)&lt;br /&gt;
        mark p as processed&lt;br /&gt;
        output p to the ordered list&lt;br /&gt;
        Seeds = empty priority queue&lt;br /&gt;
        if (core-distance(p, eps, Minpts) != UNDEFINED)&lt;br /&gt;
           update(N, p, Seeds, eps, Minpts)&lt;br /&gt;
           for each next q in Seeds&lt;br /&gt;
              N&amp;#039; = getNeighbors(q, eps)&lt;br /&gt;
              mark q as processed&lt;br /&gt;
              output q to the ordered list&lt;br /&gt;
              if (core-distance(q, eps, Minpts) != UNDEFINED)&lt;br /&gt;
                 update(N&amp;#039;, q, Seeds, eps, Minpts)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In update() wird die Vorrangwarteschlange mit der &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Umgebung von &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; bzw. &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; aktualisiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  update(N, p, Seeds, eps, Minpts)&lt;br /&gt;
     coredist = core-distance(p, eps, MinPts)&lt;br /&gt;
     for each o in N&lt;br /&gt;
        if (o is not processed)&lt;br /&gt;
           new-reach-dist = max(coredist, dist(p,o))&lt;br /&gt;
           if (o.reachability-distance == UNDEFINED) // o is not in Seeds&lt;br /&gt;
               o.reachability-distance = new-reach-dist&lt;br /&gt;
               Seeds.insert(o, new-reach-dist)&lt;br /&gt;
           else               // o in Seeds, check for improvement&lt;br /&gt;
               if (new-reach-dist &amp;lt; o.reachability-distance)&lt;br /&gt;
                  o.reachability-distance = new-reach-dist&lt;br /&gt;
                  Seeds.move-up(o, new-reach-dist)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OPTICS gibt die Punkte also in einer bestimmten Reihenfolge aus, annotiert mit ihrer kleinsten Erreichbarkeitsdistanz (der veröffentlichte Algorithmus speichert auch die Kerndistanz, sie wird aber nicht weiter benötigt).&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen ==&lt;br /&gt;
OPTICS-OF&amp;lt;ref&amp;gt;{{Literatur |Autor=Markus M. Breunig, [[Hans-Peter Kriegel]], Raymond T. Ng and Jörg Sander |Titel=Principles of Data Mining and Knowledge Discovery |Verlag=Springer |Datum=1999 |ISBN=3-540-66490-4 |Kapitel=OPTICS-OF: Identifying Local Outliers |Seiten=262-270 |Online=http://springerlink.metapress.com/content/76bx6413gqb4tvta/ |DOI=10.1007/b72280}}&amp;lt;/ref&amp;gt; ist ein auf OPTICS aufbauendes Verfahren zur [[Ausreißer]]-Erkennung. Ein wichtiger Vorteil ist hier, dass Cluster im Zuge eines normalen OPTICS-Laufes ermittelt werden können, ohne eine separate Ausreißer-Erkennung durchführen zu müssen.&lt;br /&gt;
&lt;br /&gt;
DeLiClu,&amp;lt;ref&amp;gt;{{Literatur |Autor=E. Achtert, C. Böhm, P. Kröger |Titel=DeLi-Clu: Boosting Robustness, Completeness, Usability, and Efficiency of Hierarchical Clustering by a Closest Pair Ranking |Datum=2006 |Seiten=119 |DOI=10.1007/11731139_16}}&amp;lt;/ref&amp;gt; Density-Link-Clustering kombiniert Ideen von [[Hierarchische Clusteranalyse#Single-Linkage|Single-Linkage Clustering]] und OPTICS, eliminiert so den &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Parameter und erzielt eine verbesserte Performanz gegenüber OPTICS durch Verwendung eines [[R-Baum]]es als Index.&lt;br /&gt;
&lt;br /&gt;
HiSC&amp;lt;ref&amp;gt;{{Literatur |Autor=E. Achtert, C. Böhm, [[Hans-Peter Kriegel]], P. Kröger, I. Müller-Gorman, A. Zimek |Titel=Finding Hierarchies of Subspace Clusters |Datum=2006 |Seiten=446 |DOI=10.1007/11871637_42}}&amp;lt;/ref&amp;gt; ist ein hierarchisches (achsen-paralleles) Unterraum-Clustering-Verfahren.&lt;br /&gt;
&lt;br /&gt;
HiCO&amp;lt;ref&amp;gt;{{Literatur |Autor=E. Achtert, C. Böhm, P. Kröger, A. Zimek |Titel=Mining Hierarchies of Correlation Clusters |Datum=2006 |Seiten=119 |DOI=10.1109/SSDBM.2006.35}}&amp;lt;/ref&amp;gt; ist ein hierarchisches Clustering-Verfahren für beliebig orientierte Unterräume.&lt;br /&gt;
&lt;br /&gt;
DiSH&amp;lt;ref&amp;gt;{{Literatur |Autor=E. Achtert, C. Böhm, [[Hans-Peter Kriegel]], P. Kröger, I. Müller-Gorman, A. Zimek |Titel=Detection and Visualization of Subspace Cluster Hierarchies |Datum=2007 |Seiten=152 |DOI=10.1007/978-3-540-71703-4_15}}&amp;lt;/ref&amp;gt; ist eine Verbesserung von HiSC für komplexere Hierarchien (mit Schnitten von Unterräumen).&lt;br /&gt;
&lt;br /&gt;
== Verfügbarkeit ==&lt;br /&gt;
Eine Referenzimplementierung ist im Software-Paket [[Environment for DeveLoping KDD-Applications Supported by Index-Structures|ELKI]] des Lehrstuhls verfügbar, inklusive Implementierungen von [[DBSCAN]] und anderen Vergleichsverfahren.&lt;br /&gt;
&lt;br /&gt;
Im Modul „[[scikit-learn]]“ ist eine Implementierung von OPTICS in Python seit der Version scikit-learn v0.21.2 enthalten&amp;lt;ref&amp;gt;{{Internetquelle |url=https://scikit-learn.org/stable/modules/generated/sklearn.cluster.OPTICS.html#sklearn.cluster.OPTICS |titel=sklearn.cluster.OPTICS — scikit-learn 0.21.2 documentation |abruf=2019-07-03}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Clusteranalyse]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Corpophiliac</name></author>
	</entry>
</feed>