一、聚类算法简介
聚类的基本思想:对于给定的M个样本的数据集,给定聚类(簇)的个数K(K<M),初始化每个样本所属的类别,再根据一定的规则不断地迭代并重新划分数据集的类别(改变样本与簇的类别关系),使得每一次的划分都比上一次的划分要好。
聚类是一种无监督的算法。
距离的常用度量方法:欧氏距离(P=2)
二、聚类算法分类
聚类算法有很多种,主要分为划分聚类、密度聚类和谱聚类等三种聚类。
2.1 划分聚类
1)KMeans聚类(KMeans、二分KMeans、KMeans++、KMeansll、Canopy、Mini Batch KMeans)
2)层次聚类(AGNES(凝聚的层次聚类)、DIANA(分裂的层次聚类)、BIRCH(平衡迭代削减聚类法)、CURE(使用代表点的聚类法))
2.2 密度聚类
1)DBSCAN(基于密度的聚类算法)
2)MDCA(密度最大值聚类算法)
2.3 谱聚类--通过对样本数据的拉普拉斯矩阵的特征向量进行聚类
三、划分聚类
1 kMeans算法及其衍生算法
1.1 KMeans算法
sklearn.cluster.
KMeans
(n_clusters=8,init=’k_means++’, n_init=10, max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm=’auto’)
KMeans算法的思想:对于给定的M个样本的数据集(无标签),给定聚类(簇)的个数K(K<M),初始化每个样本所属的类别,再根据距离的不同,将每个样本分配到距离最近的中心点的簇中,然后再对迭代完成的每个簇更新中心点位置(改变样本与簇的类别关系),直到达到终止条件为止。
KMeans算法的终止条件:1)迭代次数 2)簇中心点变化率 3)最小平方误差值
KMeans算法的优点:理解简单容易,凸聚类的效果不错,效率高