聚类属于无监督学习。
聚类的算法有很多种,其可分为基于划分、层次、密度、网格及模型的聚类方法。
根据数据集的不同,需要采用不同的聚类算法和策略。
1. 选择聚类算法,所面临的常见问题又哪些?
1) 不同形状的数据集。不同形状的数据集,也需要采取不同的度量策略,或者不同的聚类算法。
2)不同的数据次序。相同数据集,但数据输入次序不同,也会造成聚类的结果的不同。
3)噪声。不同的算法,对噪声的敏感程度不同。
2. 在高维的欧式空间,什么是“维数灾难”?
在高维下,所有点对的距离都差不多(如欧式距离),或者是几乎任意两个向量都是正交(利用夹角进行进行度量),这样聚类就很困难。
3. 常见的聚类算法的策略有哪些?
1)层次或凝聚式聚类。采取合并的方式,将邻近点或簇合并成一个大簇。
2)点分配。每次遍历数据集,将数据分配到一个暂时适合的簇中,然后不断更新。
4. 层次聚类算法的复杂度是多少?
每次合并,都需计算出两个点对之间的距离,复杂度是O(n^2), 后续步骤的开销,分布正比与O((n-1)^2), O((n-2)^2)...,这样求和算下来,算法复杂度是O(n^3).
算法优化:采用优先队列/最小堆来优化计算。优先队列的构建,第一步需要计算出每两个点的距离,这个开销是O(N^2). 一般情况下,