0
A
回答
0
不要混淆算法和任务。
没有为k-均值多于一个的算法。其实至少有二打。例如,有些人使用k-d-trees进行加速。他们都是启发式的,因为我相信,找到最优的k-means解决方案在整体上表现为NP-hard。
同样,存在用于分级聚类的幼稚O(n^3)
运行时和O(n^2)
内存方法,然后有算法,诸如早产为单一联结分层聚类和CLINK完整联动分级聚类,在O(n^2)
时间和O(n)
存储器中运行。
最后但并非最不重要的,如果你使用DBSCAN并设置minPts=2
,结果将有效地同单链路聚类时在epsilon
高度切割。然而,通过适当的索引,DBSCAN运行在O(n log n)
(例如,在ELKI中 - scipy的实现不是那么聪明,它需要O(n^2)
内存和运行时)。
那么,为什么你可以有明显相同的任务,例如不同的运行时间?首先,一些算法(和实现)可能只是非常原始的。易于实施和理解,但不够聪明。其次,一些算法执行您可能感兴趣或可能不感兴趣的额外工作。单链接层次聚类计算层次结构; DBSCAN与minPts=2
只有通过这种层次结构单一切 - 比完整的层次结构中的多简单的结果。最后但并非最不重要的,有启发式。大多数k-means变种都属于最后一类:通过接受错过全球最佳解决方案,当然可以比进行彻底搜索更快。
相关问题
- 1. StratifiedKFold与train_test_split分层之间的区别
- 2. 层次与层次之间的区别
- 3. R:分层聚类
- 4. 分布式分层聚类
- 5. 分层凝聚聚类
- 6. OpenCV中的分层聚类
- 7. R中的分层聚类
- 8. “层”和“层”之间有什么区别?
- 9. Cluster 3.0中的分层聚类分析
- 10. Magento分层导航类别
- 11. 图层和图案之间的区别
- 12. PAM与Metis分区之间的区别
- 13. R - 'pvclust'中的分层聚类问题
- 14. 位序列的分层聚类
- 15. python中热图的分层聚类
- 16. C#部分类与Objective C类别之间的区别?
- 17. c#中的层和层之间有什么区别#
- 18. CNN中局部层和密集层之间的区别
- 19. 中间层与coreos的主要区别
- 20. 的UITableView与分层分类-Swift的iOS
- 21. 分层聚类给定距离矩阵
- 22. 自定义距离分层聚类
- 23. PostgreSQL多层分区
- 24. 应用层和业务逻辑层之间有什么区别?
- 25. AWS beanstalk中工作层和Web层之间有什么区别
- 26. 分类()和attr(“class”)之间的区别
- 27. 分类和回归之间的区别
- 28. 类型别名(“使用”)在相同与分层名称空间
- 29. ELKI GUI没有聚类结果的分层聚类
- 30. 分层分类法的wp_tag_cloud
你能解释一下什么是O且n在声明中下面提到? 类似地,存在用于层次聚类的朴素的O(n^3)运行时和O(n^2)存储器方法。 – 2013-05-14 16:30:29
复杂性:https://en.wikipedia.org/wiki/Big_O_notation - 以及复杂性会影响运行时性能...... – 2013-05-14 16:41:01