PROCLUS算法
PROCLUS是由Aggarwal等人在1999年提出的一种子空间聚类算法。原文是《Fast Algorithms for Projected Clustering》,在ACM数据库可以进行下载。
算法总体介绍
PROCLUS是基于投影的子空间聚类算法,搜索策略为自顶向下。算法基于中心点思想,适合球形簇数据集,采用曼哈顿距离度量对象的相似性。
算法一共分为以下三个阶段:
- 初始阶段 ,选择中心点超集;
- 迭代阶段,确定每一个中心点的特征维度,通过对聚类结果进行分析,并不断迭代替换差的中心点,得到最优中心点集;
- 优化阶段,对中心点维度进行优化,改善聚类质量;
初始阶段
输入:数据集合 D D D,簇个数 K K K,常数 A A A,常数 B B B
输出:中心点集 M C MC MC
- 从数据集中随机选择 A ∗ K A*K A∗K( A A A是常数)个数据构成初始中心点超集 M C ′ MC' MC′;
- 使用贪心算法从 M C ′ MC' MC′中选择大小为 B ∗ K B*K B∗K( B B B为常数,且 B < A B<A B<A)的中心点集 M C MC MC;
2.1 初始化 M C MC MC为空集
2.2 从 M C ′ MC' MC′中随机选择一个样本 m m m加入 M C MC MC(同时将 m m m从 M C ’ MC’ MC’中移除)
2.3 计算 M C ′ MC' MC′中每个点与 M C MC