聚类算法
种类繁多,且其中绝大多数可以用R实现。需要说明的是,这些算法本身无所谓优劣,取决于数据使用者对于算法的选择是否得当。 。下面将选取普及性最广、 最实用、最具有代表性的5中聚类算法进行介绍,其中包括:
ll K-均值聚类(K-Means)
ll K-中心点聚类(K-Medoids)
ll 密度聚类
ll 层次聚类(系谱聚类 Hierarchical Clustering, HC)
ll 期望最大化聚类(Expectation Maximization, EM)
K-均值聚类
1. 随机选取K个样本作为类中心;
2. 计算各样本与各类中心的距离;
3. 将各样本归于最近的类中心点;
4. 求各类的样本的均值,作为新的类中心;
5. 判定:若类中心不再发生变动或达到迭代次数,算法结束,否则回到第2步
优化:
一、k-means:在大数据的条件下,会耗费大量的时间和内存。
优化k-means的建议:
1、减少聚类的数目K。因为,每个样本都要跟类中心计算距离。
2、减少样本的特征维度。比如说,通过PCA等进行降维。
3、考察其他的聚类算法,通过选取toy数据,去测试不同聚类算法的性能。
4、hadoop集群,K-means算法是很容易进行并行计算的。
K-中心点聚类
K-中心点算法与K-均值算法在原理上十分相近,它是针对K-均值算法易受极值影响这一缺点的改进算法。在原理上的差异在于选择各类别中心点时不取样本均值点,而在类别内选取到其余样本距离之和最小的样本为中心。
层次聚类(系谱聚类)
名称在于,其聚类的过程可以通过类似于系谱图的形式呈现出来。相比K-均值算法与K-中心点算法,系谱算法的突出特点在于,不需事先设定类别数k,这是因为它每次迭代过程仅将距离最近的两个样本/簇聚为一类,其运作过程将自然得到k=n至k=1(n为待分类样本总数)个类别的聚类