K-Means聚类算法

K-Means聚类算法

K-Means聚类算法是典型的基于距离的非层次聚类算法,在最小化误差的函数的基础上将数据划分为预设的类数K,采用距离作为相似性的评价标准,即认为两个对象的距离越近,其相似度就越大。

1.算法过程:

  1. 从N个样本数据中随机选取K个对象作为初始的聚类中心。
  2. 分别计算每个样本到各个聚类中心的距离,将对象分配到距离最近的聚类中。
  3. 所有对象分配完成之后,重新计算K个聚类的中心。
  4. 与前一次计算得到的K个聚类中心相比较,如果聚类中心发生了变化,则执行步骤2。否则就转步骤5。
  5. 当聚类中心不发生变化的时停止并输出聚类的结果。

在所有的对象分配完成后,重新计算K个聚类中心的时候,对于连续数据,聚类中心选择该簇的均值,但是当样本的一些属性是离散(分类变量)时,均值是无定义的,可以使用K-众数方法。

2距离的计算

距离的种类,有三种:
1)样本与样本。
2)样本与簇(样本与簇中心)。
3)簇与簇(簇中心和簇中心)。
连续属性:
欧几里得距离; 曼哈吨距离; 闵可夫斯基距离;
欧几里得距离:这里写图片描述
曼哈吨距离:这里写图片描述
闵可夫斯基距离:这里写图片描述

文档数据(以每个单词作为属性,次数为值,组成一个向量)。
余弦相似性度量:
这里写图片描述
其中a,b为两个向量。

3目标函数

使用的是平方和SSE作为聚类质量的目标函数,对于两种不同的聚类结果,选择误差平方和最小的分类结果。

连续属性的SSE计算公式为:
这里写图片描述
文本数据的SSE计算公式为:
这里写图片描述

下面对上面公式的符号进行说明:
Ci:簇i的聚类中心
K:聚类的簇数
迭代符下的Ci是第i簇
x:样本

你可能感兴趣的:(机器学习)