<?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=DBSCAN</id>
	<title>DBSCAN - 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=DBSCAN"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=DBSCAN&amp;action=history"/>
	<updated>2026-05-28T14:49:53Z</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=DBSCAN&amp;diff=1951834&amp;oldid=prev</id>
		<title>~2025-30445-74: /* Verwendung von DBSCAN */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=DBSCAN&amp;diff=1951834&amp;oldid=prev"/>
		<updated>2025-10-29T08:33:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Verwendung von DBSCAN&lt;/span&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;DBSCAN&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Density-Based Spatial Clustering of Applications with Noise&amp;#039;&amp;#039;&amp;#039;, etwa: &amp;#039;&amp;#039;Dichtebasierte räumliche Clusteranalyse mit Rauschen&amp;#039;&amp;#039;) ist ein von Martin Ester, [[Hans-Peter Kriegel]], [[Jörg Sander (Informatiker)|Jörg Sander]] und Xiaowei Xu entwickelter [[Data-Mining]]-Algorithmus zur [[Clusteranalyse]]. Er ist einer der meistzitierten&amp;lt;ref&amp;gt;{{Internetquelle | url=http://academic.research.microsoft.com/CSDirectory/paper_category_7.htm | titel=Meistzitierte Data-Mining-Artikel | autor=Microsoft Academic Search | kommentar=DBSCAN ist ca. Platz 20–25 | zugriff=10.5.2010 | offline=ja | archiv-url=https://web.archive.org/web/20100421170848/http://academic.research.microsoft.com/CSDirectory/paper_category_7.htm | archiv-datum=2010-04-21 }}&amp;lt;/ref&amp;gt; Algorithmen in diesem Bereich.&lt;br /&gt;
Der [[Algorithmus]] arbeitet [[Dichte|dichtebasiert]] und ist in der Lage, mehrere Cluster zu erkennen. Rauschpunkte werden dabei ignoriert und separat zurückgeliefert.&lt;br /&gt;
&lt;br /&gt;
== Übersicht ==&lt;br /&gt;
[[Datei:DBSCAN-Illustration.svg|mini|Punkte bei A sind Kernpunkte. Punkte B und C sind &amp;#039;&amp;#039;dichte-erreichbar&amp;#039;&amp;#039; von A und dadurch &amp;#039;&amp;#039;dichte-verbunden&amp;#039;&amp;#039; und gehören zum selben Cluster. Punkt N ist weder ein Kernpunkt noch dichte-erreichbar, also Rauschen. (&amp;lt;math&amp;gt;minPts=3&amp;lt;/math&amp;gt;)]]&lt;br /&gt;
&lt;br /&gt;
Die Grundidee des Algorithmus ist der Begriff der &amp;#039;&amp;#039;Dichteverbundenheit&amp;#039;&amp;#039;. Zwei Objekte gelten als &amp;#039;&amp;#039;dichte-verbunden&amp;#039;&amp;#039;, wenn es eine Kette von &amp;#039;&amp;#039;dichten&amp;#039;&amp;#039; Objekten (&amp;#039;&amp;#039;Kernobjekte&amp;#039;&amp;#039;, mit mehr als &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt; Nachbarn) gibt, die diese Punkte miteinander verbinden. Die durch dieselben &amp;#039;&amp;#039;Kernobjekte&amp;#039;&amp;#039; miteinander verbundenen Objekte bilden einen Cluster. Objekte, die nicht Teil eines &amp;#039;&amp;#039;dichte-verbundenen&amp;#039;&amp;#039; Clusters sind, werden als Rauschen (engl. &amp;#039;&amp;#039;Noise&amp;#039;&amp;#039;) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
In DBSCAN gibt es drei Arten von Punkten:&lt;br /&gt;
* &amp;#039;&amp;#039;Kernobjekte&amp;#039;&amp;#039;, welche selbst &amp;#039;&amp;#039;dicht&amp;#039;&amp;#039; sind.&lt;br /&gt;
* &amp;#039;&amp;#039;Dichte-erreichbare&amp;#039;&amp;#039; Objekte. Dies sind Objekte, die zwar von einem &amp;#039;&amp;#039;Kernobjekt&amp;#039;&amp;#039; des Clusters erreicht werden können, selbst aber nicht &amp;#039;&amp;#039;dicht&amp;#039;&amp;#039; sind. Anschaulich bilden diese den Rand eines Clusters.&lt;br /&gt;
* Rauschpunkte, die weder &amp;#039;&amp;#039;dicht&amp;#039;&amp;#039;, noch &amp;#039;&amp;#039;dichte-erreichbar&amp;#039;&amp;#039; sind.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus hat zwei Parameter &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt;. &lt;br /&gt;
* Dabei definiert &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; die &amp;#039;&amp;#039;Nachbarschaftslänge&amp;#039;&amp;#039; eines Punktes: Von einem Punkt erreichbar ist ein zweiter Punkt genau dann, wenn sein Abstand kleiner als &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; ist. &lt;br /&gt;
* &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt; definiert dagegen, wann ein Objekt &amp;#039;&amp;#039;dicht&amp;#039;&amp;#039; (d.&amp;amp;nbsp;h. ein &amp;#039;&amp;#039;Kernobjekt&amp;#039;&amp;#039;) ist: wenn es mindestens &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-erreichbare Nachbarn hat.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Dichte-erreichbare&amp;#039;&amp;#039; Punkte können von mehr als einem Cluster &amp;#039;&amp;#039;dichte-erreichbar&amp;#039;&amp;#039; sein. Diese Punkte werden von dem Algorithmus nicht-deterministisch einem der möglichen Cluster zugeordnet. Dies impliziert auch, dass &amp;#039;&amp;#039;Dichteverbundenheit&amp;#039;&amp;#039; nicht [[Transitive Relation|transitiv]] ist; &amp;#039;&amp;#039;Dichte-Erreichbarkeit&amp;#039;&amp;#039; ist nicht [[Symmetrische Relation|symmetrisch]].&lt;br /&gt;
&lt;br /&gt;
== Wichtige Eigenschaften ==&lt;br /&gt;
DBSCAN ist exakt in Bezug auf die Definition von &amp;#039;&amp;#039;dichte-verbunden&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Noise&amp;#039;&amp;#039;. Das bedeutet, zwei &amp;#039;&amp;#039;dichte-verbundene&amp;#039;&amp;#039; Objekte sind garantiert im selben Cluster, während Rauschobjekte sicher in &amp;#039;&amp;#039;Noise&amp;#039;&amp;#039; sind. Nicht exakt ist der Algorithmus bei nur &amp;#039;&amp;#039;dichte-erreichbaren&amp;#039;&amp;#039; Objekten, diese werden nur einem Cluster zugeordnet, nicht allen möglichen.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz beispielsweise zum [[K-Means-Algorithmus]], muss nicht im vornherein bekannt sein, wie viele Cluster existieren.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus kann Cluster beliebiger Form (z.&amp;amp;nbsp;B. nicht nur kugelförmige) erkennen.&lt;br /&gt;
&lt;br /&gt;
DBSCAN ist weitgehend [[Determiniertheit (Algorithmus)|deterministisch]] und reihenfolgeunabhängig: Unabhängig davon, in welcher Reihenfolge Objekte in der Datenbank abgelegt oder verarbeitet werden, entstehen dieselben Cluster (mit der Ausnahme der nur &amp;#039;&amp;#039;dichte-erreichbaren&amp;#039;&amp;#039; Nicht-Kern-Objekte und der Cluster-Nummerierung).&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus kann mit beliebigen [[Distanzfunktion]]en und [[Ähnlichkeitsmaß]]en verwendet werden. Im Gegensatz zum [[K-Means-Algorithmus]] ist kein geometrischer Raum notwendig, da kein Mittelpunkt berechnet werden muss.&lt;br /&gt;
&lt;br /&gt;
DBSCAN selbst ist von &amp;#039;&amp;#039;linearer&amp;#039;&amp;#039; [[Komplexität (Informatik)|Komplexität]]. Jedes Objekt wird im Wesentlichen nur einmal besucht. Jedoch ist die Berechnung der &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Nachbarschaft im Regelfall nicht in konstanter Zeit möglich (ohne entsprechende Vorberechnungen). Ohne die Verwendung von vorberechneten Daten oder einer geeigneten [[Indexstruktur]] ist der Algorithmus also von quadratischer Komplexität.&lt;br /&gt;
&lt;br /&gt;
== DBSCAN-Algorithmus ==&lt;br /&gt;
Die Originalfassung von DBSCAN&amp;lt;ref&amp;gt;{{Literatur&lt;br /&gt;
 | Autor = Martin Ester, [[Hans-Peter Kriegel]], Jörg Sander, Xiaowei Xu&lt;br /&gt;
 | Titel = A density-based algorithm for discovering clusters in large spatial databases with noise&lt;br /&gt;
 | Seiten = 226–231&lt;br /&gt;
 | Herausgeber = Evangelos Simoudis, Jiawei Han, Usama M. Fayyad&lt;br /&gt;
 | Sammelwerk = Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96)&lt;br /&gt;
 | Verlag = AAAI Press&lt;br /&gt;
 | Jahr = 1996&lt;br /&gt;
 | ISBN = 1-57735-004-9&lt;br /&gt;
 | Online = [http://www.dbs.ifi.lmu.de/Publikationen/Papers/KDD-96.final.frame.pdf Online] PDF&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; kann durch folgenden [[Pseudocode]] beschrieben werden:&lt;br /&gt;
 DBSCAN(D, eps, MinPts)&lt;br /&gt;
    C = 0&lt;br /&gt;
    for each unvisited point P in dataset D&lt;br /&gt;
       mark P as visited&lt;br /&gt;
       N = D.regionQuery(P, eps)&lt;br /&gt;
       if sizeof(N) &amp;lt; MinPts&lt;br /&gt;
          mark P as NOISE&lt;br /&gt;
       else&lt;br /&gt;
          C = next cluster&lt;br /&gt;
          expandCluster(P, N, C, eps, MinPts)&lt;br /&gt;
&lt;br /&gt;
 expandCluster(P, N, C, eps, MinPts)&lt;br /&gt;
    add P to cluster C&lt;br /&gt;
    for each point P&amp;#039; in N&lt;br /&gt;
       if P&amp;#039; is not visited&lt;br /&gt;
          mark P&amp;#039; as visited&lt;br /&gt;
          N&amp;#039; = D.regionQuery(P&amp;#039;, eps)&lt;br /&gt;
          if sizeof(N&amp;#039;) &amp;gt;= MinPts&lt;br /&gt;
             N = N joined with N&amp;#039;&lt;br /&gt;
       if P&amp;#039; is not yet member of any cluster&lt;br /&gt;
          add P&amp;#039; to cluster C&lt;br /&gt;
          unmark P&amp;#039; as NOISE if necessary&lt;br /&gt;
&lt;br /&gt;
 regionQuery(P, eps)&lt;br /&gt;
    return all points within P&amp;#039;s eps-neighborhood (including P)&lt;br /&gt;
&lt;br /&gt;
Alternativ könnte DBSCAN auch [[Rekursion|rekursiv]] implementiert werden (statt des &amp;#039;&amp;#039;join&amp;#039;&amp;#039; von &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; erfolgt ein rekursiver Aufruf), dies bietet aber keine nennenswerten Vorteile.&lt;br /&gt;
&lt;br /&gt;
== DBSCAN (Rekursive Formulierung) ==&lt;br /&gt;
Die rekursive Implementierung zeigt anschaulicher, wie DBSCAN arbeitet. Da die Rekursionstiefe aber sehr hoch werden kann, ist die mengenbasierte normale Formulierung als Implementierung vorzuziehen.&lt;br /&gt;
&lt;br /&gt;
 DBSCAN(D, eps, MinPts)&lt;br /&gt;
    C = 0&lt;br /&gt;
    for each unvisited point P in dataset D&lt;br /&gt;
       mark P as visited&lt;br /&gt;
       N = getNeighbors(P, eps)&lt;br /&gt;
       if sizeof(N) &amp;lt; MinPts&lt;br /&gt;
          mark P as NOISE&lt;br /&gt;
       else&lt;br /&gt;
          C = next cluster&lt;br /&gt;
          add P to cluster C&lt;br /&gt;
          for P&amp;#039; in N&lt;br /&gt;
            if P&amp;#039; is not yet member of any cluster&lt;br /&gt;
              recursiveExpandCluster(P&amp;#039;, C, eps, MinPts)&lt;br /&gt;
&lt;br /&gt;
 recursiveExpandCluster(P, C, eps, MinPts)&lt;br /&gt;
    add P to cluster C&lt;br /&gt;
    if P is not visited&lt;br /&gt;
      mark P as visited&lt;br /&gt;
      N = getNeighbors(P, eps)&lt;br /&gt;
      if sizeof(N) &amp;gt;= MinPts&lt;br /&gt;
        for P&amp;#039; in N&lt;br /&gt;
          if P&amp;#039; is not yet member of any cluster&lt;br /&gt;
            recursiveExpandCluster(P&amp;#039;, C, eps, MinPts)&lt;br /&gt;
&lt;br /&gt;
== Generalisierter DBSCAN ==&lt;br /&gt;
Die generalisierte Version von DBSCAN, GDBSCAN&amp;lt;ref&amp;gt;{{Literatur&lt;br /&gt;
 | Autor = Jörg Sander, Martin Ester, [[Hans-Peter Kriegel]] und Xiaowei Xu&lt;br /&gt;
 | Titel = Density-Based Clustering in Spatial Databases: The Algorithm GDBSCAN and Its Applications&lt;br /&gt;
 | Sammelwerk = Data Mining and Knowledge Discovery&lt;br /&gt;
 | Band = 2&lt;br /&gt;
 | Auflage = 2.&lt;br /&gt;
 | Ort = Berlin&lt;br /&gt;
 | Verlag = Springer&lt;br /&gt;
 | Jahr = 1998&lt;br /&gt;
 | DOI = 10.1023/A:1009745219419}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Literatur | Autor = Jörg Sander | Titel = Generalized Density-Based Clustering for Spatial Data Mining | ISBN=3896754696 | Jahr=1998 | Ort = München | Verlag = Herbert Utz Verlag }}&amp;lt;/ref&amp;gt; abstrahiert hier von der &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Nachbarschaft und dem &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt;-Dichtekriterium. Diese werden ersetzt durch ein Prädikat &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;getNeighbors&amp;lt;/span&amp;gt; und einem Prädikat &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;isCorePoint&amp;lt;/span&amp;gt;.&lt;br /&gt;
 GDBSCAN(D, getNeighbors, isCorePoint)&lt;br /&gt;
    C = 0&lt;br /&gt;
    for each unvisited point P in dataset D&lt;br /&gt;
       mark P as visited&lt;br /&gt;
       N = getNeighbors(P)&lt;br /&gt;
       if isCorePoint(P, N)&lt;br /&gt;
          C = next cluster&lt;br /&gt;
          expandCluster(P, N, C)&lt;br /&gt;
       else&lt;br /&gt;
          mark P as NOISE&lt;br /&gt;
&lt;br /&gt;
 expandCluster(P, N, C)&lt;br /&gt;
    add P to cluster C&lt;br /&gt;
    for each point P&amp;#039; in N&lt;br /&gt;
       if P&amp;#039; is not visited&lt;br /&gt;
          mark P&amp;#039; as visited&lt;br /&gt;
          N&amp;#039; = getNeighbors(P&amp;#039;)&lt;br /&gt;
          if isCorePoint(P&amp;#039;, N&amp;#039;)&lt;br /&gt;
             N = N joined with N&amp;#039;&lt;br /&gt;
       if P&amp;#039; is not yet member of any cluster&lt;br /&gt;
          add P&amp;#039; to cluster C&lt;br /&gt;
Verwendet man eine &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt;-Bereichsanfrage als &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;getNeighbors&amp;lt;/span&amp;gt; und den &amp;lt;math&amp;gt;minPts&amp;lt;/math&amp;gt;-Test als &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;isCorePoint&amp;lt;/span&amp;gt;-Prädikat, so erhält man offensichtlich den ursprünglichen DBSCAN-Algorithmus.&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen von DBSCAN ==&lt;br /&gt;
Auf diesem Algorithmus basieren unter anderem&lt;br /&gt;
* [[OPTICS]] - Ordering Points To Identify the Clustering Structure&lt;br /&gt;
* Shared-Nearest-Neighbor-Clustering - Finding Clusters of Different Sizes, Shapes, and Densities in Noisy, High Dimensional Data&lt;br /&gt;
* PreDeCon - Density Connected Clustering with Local Subspace Preferences&lt;br /&gt;
* SubClu - Density connected Subspace Clustering for High Dimensional Data&lt;br /&gt;
* 4C - Computing Clusters of Correlation Connected Objects&lt;br /&gt;
* ERiC - Exploring Complex Relationships of Correlation Clusters&lt;br /&gt;
* [[HDBSCAN]] - Hierarchical Density Based Clustering&amp;lt;ref&amp;gt;{{Literatur |Autor=Ricardo J. G. B. Campello, Davoud Moulavi, Joerg Sander |Titel=Density-Based Clustering Based on Hierarchical Density Estimates |Sammelwerk=Advances in Knowledge Discovery and Data Mining |Verlag=Springer Berlin Heidelberg |Ort=Berlin, Heidelberg |Datum=2013 |ISBN=9783642374555 |DOI=10.1007/978-3-642-37456-2_14 |Seiten=160–172 |Online=http://link.springer.com/10.1007/978-3-642-37456-2_14 |Abruf=2018-08-01}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verwendung von DBSCAN ==&lt;br /&gt;
Der Algorithmus DBSCAN ist enthalten in&lt;br /&gt;
* [[Environment for DeveLoping KDD-Applications Supported by Index-Structures|ELKI]] (mit flexibler Indizierung und zahlreichen Varianten)&lt;br /&gt;
* [[Scikit-learn]] (mit Index für gängige Metriken)&lt;br /&gt;
* [[Waikato Environment for Knowledge Analysis|Weka]] (jedoch ohne Index-Unterstützung implementiert, sowie ineffizient)&lt;br /&gt;
* [[QGIS]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Dbscan}}&lt;br /&gt;
[[Kategorie:Clusteranalyse]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;/div&gt;</summary>
		<author><name>~2025-30445-74</name></author>
	</entry>
</feed>