聚类算法:K-means

聚类算法学习汇总

  • K-means聚类
    • 1. 概述
    • 2. 算法核心思想
    • 3. 算法实现步骤
    • 4. K-means术语:
    • 5. K-means算法优缺点
  • Mean Shift聚类
    • 1. 概述

聚类是一种机器学习技术,它涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该具有高度不同的属性和/或特征。聚类是一种无监督学习的方法,是许多领域中常用的统计数据分析技术。

K-means聚类

1. 概述

K-means聚类算法也称k均值聚类算法,是集简单和经典于一身的基于距离的聚类算法。它采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为类簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

2. 算法核心思想

K-means聚类算法是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

3. 算法实现步骤

聚类算法:K-means_第1张图片

  1. 首先确定一个k值,即我们希望将数据集经过聚类得到k个集合
  2. 从数据集中随机选择k个数据点作为质心1
  3. 对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的集合
  4. 把所有数据归好集合后,一共有k个集合
  5. 对已聚类的k个几个,重新计算每个集合的重心作为新的质心2
  6. 使用新的质心2,重新对数据点进行聚类,并获取新的质心3
  7. 如果质心3质心2之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),认为聚类已经达到期望的结果,算法终止
  8. 如果质心3质心2之间的距离变化很大,继续迭代
    聚类算法:K-means_第2张图片

4. K-means术语:

簇:所有数据的点集合,簇中的对象是相似的。
质心:簇中所有点的中心(计算所有点的中心而来)

5. K-means算法优缺点

  • 优点:
    1. 原理比较简单,实现也是很容易,收敛速度快
    2. 当结果簇是密集的,而簇与簇之间区别明显时, 它的效果较好
    3. 主要需要调参的参数仅仅是簇数k
  • 缺点:
    1. K值需要预先给定,很多情况下K值的估计是非常困难的
    2. K-Means算法对初始选取的质心点是敏感的,不同的随机种子点得到的聚类结果完全不同 ,对结果影响很大
    3. 对噪音和异常点比较的敏感,可以用来检测异常值
    4. 采用迭代方法,可能只能得到局部的最优解,而无法得到全局的最优解

Mean Shift聚类

1. 概述

Mean Shift(均值漂移)是基于密度非参数聚类算法,其算法思想是假设不同簇类的数据集符合不同的概率密度分布,找到任一样本点密度增大的最快方向(最快方向的含义就是Mean Shift),样本密度高的区域对应于该分布的最大值,这些样本点最终会在局部密度最大值收敛,且收敛到相同局部最大值的点被认为是同一簇类的成员。

均值偏移(Mean shift)聚类算法是一种基于滑动窗口(sliding-window)的算法,它试图找到密集的数据点。而且,它还是一种基于中心的算法,它的目标是定位每一组群/类的中心点,通过更新中心点的候选点来实现滑动窗口中的点的平均值。这些候选窗口在后期处理阶段被过滤,以消除几乎重复的部分,形成最后一组中心点及其对应的组。

你可能感兴趣的:(数据分析)