Участник: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;" | Нет | ||
+ | |} | ||
= Литература = | = Литература = | ||
− |
Версия 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 Существующие реализации алгоритма
- 3 Литература
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 | Нет |