(1)k-means算法
k-mean是一个迭代算法,假设我们想要将数据聚类成n类,其方法为:
首先选择k个随机的点,称为聚类中心;对于数据集中的每一个数据,按照距离k个中心点的距离,将其与距离最近的中心点关联起来与同一个中心点关联的所有点聚成一类;计算每个组的平均值,将该组所关联的中心点移动到平均值的位置;重复上述过程,直到中心点不再变化。
针对k-means进行了很多改进:
k-means++:假设已经选取了n个初始聚类中心,在选取第n+1个聚类中心时,距离当前n个聚类中心越远的点会有更高的概率被选为第n+1个聚类中心。
ISODATA:当属于某个类别的点过少时,取消该聚类中心,当属于某个类别的样本数过多时,分散程度比较大时,把该类别分类两个子类别。
(2)层次聚类
(3)高斯混合模型
假设每个簇的数据都是符合高斯分布的。使用EM算法学习。每个簇代表一个类别。
E步,计算每个点由某个模型生成的概率;M步,使用E步估计出来的概率,改进每个分模型的均值,方差和权重。
(4)k-中心点算法
k-means对因为求均值的方式确定聚类中心点,因此对异常值比较敏感,而k-中心点算法则以最接近中心点对点为中心点。