Уровень алгоритма

Участник:Igor.orpanen/Плотностный алгоритм кластеризации (DBSCAN): различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 41: Строка 41:
  
 
== Масштабируемость алгоритма и его реализации ==
 
== Масштабируемость алгоритма и его реализации ==
*
+
 
 
== Динамические характеристики и эффективность реализации алгоритма ==
 
== Динамические характеристики и эффективность реализации алгоритма ==
  
Строка 47: Строка 47:
  
 
== Существующие реализации алгоритма ==
 
== Существующие реализации алгоритма ==
*
+
{| class="wikitable"
 +
|-
 +
! Реализация
 +
! Технологии
 +
! Лицензия
 +
! Посдедовательная сложность
 +
! Структуры данных
 +
! Метрики
 +
! Параллельность
 +
|-
 +
| [http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html Scikit learn]
 +
| Python
 +
| BSD 3
 +
| <math>O(n \log n)</math>
 +
| k-d tree, ball tree
 +
| Любые
 +
| style="background: #9F9;" | Есть
 +
|-
 +
| [https://github.com/alitouka/spark_dbscan alitouka/spark_dbscan]
 +
| Scala, Spark
 +
| GPLv2
 +
| <math>O(n \log n)</math>
 +
| r-tree
 +
| Euclidean
 +
| style="background: #9F9;" | Есть
 +
|-
 +
| [https://github.com/irvingc/dbscan-on-spark irvingc/dbscan-on-spark]
 +
| Scala, Spark
 +
| GPLv2
 +
| <math>O(n \log n)</math>
 +
| r-tree
 +
| Euclidean
 +
| style="background: #9F9;" | Есть
 +
|-
 +
| [https://github.com/propanoid/DBSCAN propanoid/DBSCAN]
 +
| C++, Boost, OpenMP
 +
| ABRMS
 +
| <math>O(n \log n)</math>
 +
| vantage-point tree
 +
| Euclidean
 +
| style="background: #9F9;" | Есть
 +
|-
 +
| [https://cran.r-project.org/web/packages/dbscan/index.html CRAN]
 +
| R, C++
 +
| GPLv3
 +
| <math>O(n \log n)</math>
 +
| k-d tree
 +
| Euclidean
 +
| style="background: #F99;" | Нет
 +
|-
 +
| [http://weka.sourceforge.net/doc.packages/optics_dbScan/weka/clusterers/DBScan.html Weka]
 +
| Java
 +
| GPLv3
 +
| <math>O(n^2)</math>
 +
| -
 +
| Euclidean, Manhattan
 +
| style="background: #F99;" | Нет
 +
|-
 +
| [https://commons.apache.org/proper/commons-math/javadocs/api-3.1/org/apache/commons/math3/stat/clustering/DBSCANClusterer.html Apache Commons]
 +
| Java
 +
| Apache 2.0
 +
| <math>O(n^2)</math>
 +
| -
 +
| Euclidean
 +
| style="background: #F99;" | Нет
 +
|-
 +
| [https://github.com/choffstein/dbscan choffstein/dbscan]
 +
| Python
 +
| -
 +
| <math>O(n^2)</math>
 +
| -
 +
| Euclidean
 +
| style="background: #F99;" | Нет
 +
|}
  
 
= Литература =
 
= Литература =
[1] Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. - 608 с.
 

Версия 00:48, 16 октября 2016


Плотностный алгоритм кластеризации (DBScan)
Последовательный алгоритм
Последовательная сложность [math]O(n \log n)[/math]
Объём входных данных [math]-[/math]
Объём выходных данных [math]-[/math]
Параллельный алгоритм
Высота ярусно-параллельной формы [math]-[/math]
Ширина ярусно-параллельной формы [math]-[/math]

Автор описания: Орпанен И.С.

1 ЧАСТЬ. Свойства и структура алгоритмов

1.1 Общее описание алгоритма

1.2 Математическое описание алгоритма

1.3 Вычислительное ядро алгоритма

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

1.10 Свойства алгоритма

2 ЧАСТЬ. Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Возможные способы и особенности параллельной реализации алгоритма

2.4 Масштабируемость алгоритма и его реализации

2.5 Динамические характеристики и эффективность реализации алгоритма

2.6 Выводы для классов архитектур

2.7 Существующие реализации алгоритма

Реализация Технологии Лицензия Посдедовательная сложность Структуры данных Метрики Параллельность
Scikit learn Python BSD 3 [math]O(n \log n)[/math] k-d tree, ball tree Любые Есть
alitouka/spark_dbscan Scala, Spark GPLv2 [math]O(n \log n)[/math] r-tree Euclidean Есть
irvingc/dbscan-on-spark Scala, Spark GPLv2 [math]O(n \log n)[/math] r-tree Euclidean Есть
propanoid/DBSCAN C++, Boost, OpenMP ABRMS [math]O(n \log n)[/math] vantage-point tree Euclidean Есть
CRAN R, C++ GPLv3 [math]O(n \log n)[/math] k-d tree Euclidean Нет
Weka Java GPLv3 [math]O(n^2)[/math] - Euclidean, Manhattan Нет
Apache Commons Java Apache 2.0 [math]O(n^2)[/math] - Euclidean Нет
choffstein/dbscan Python - [math]O(n^2)[/math] - Euclidean Нет

3 Литература