数据挖掘聚类算法--划分(partitioning)

​​​​​​数据挖掘--聚类算法简介

聚类是对物理的或者抽象的对象集合分组的过程,聚类生成的组称为簇,而簇是数据对象的集合。所划分的簇有两个特征:(1)簇内部的任意两个对象之间具有较高的相似度(2)属于不同的簇的两个对象间具有较高的相异度。

聚类算法--特征

  1. 处理不同类型属性的能力;
  2. 对大型数据集的可扩展性;
  3. 处理高维数据的能力;
  4. 发现任意形状簇的能力;
  5. 处理孤立点或“噪声”数据的能力;对“噪声”数据具有较低的敏感性;合理地发现孤立点。
  6. 对数据顺序的不敏感性;
  7. 对先验知识和用户自定义参数的依赖性;
  8. 聚类结果的可解释性和实用性;
  9. 基于约束的聚类。

基于划分的聚类算法--K-means、K-medoid

划分方法:已知由n个对象(或元组)构成的数据库,对其采用目标函数最小化的策略,通过迭代把数据分成k个划分块,每个划分块为一个簇(cluster)。

条件:(1)每个簇至少包含一个对象;(2)每个对象必需属于且仅属于某一个簇。

1.K-means(均值)

核心思想:过迭代把数据对象划分到不同的簇中,以求目标函数最小化,从而使生成的簇尽可能地紧凑和独立。设p表示数据对象,ci表示簇Ci的均值,通常目标函数采用平方误差准则函数:

数据挖掘聚类算法--划分(partitioning)_第1张图片

这个目标函数采用欧几里得距离度量。如果采用Mahalanobis距离可以对椭圆形的簇进行分析。

算法步骤:输入:期望得到的簇的数目k,n个对象的数据库。

                  输出:使得平方误差准则函数最小化的k个簇。

                  1. 选择k个对象作为初始的簇的质心;

          重复:(1)计算对象与各个簇的质心的距离,将对象划分到距离其最近的簇;

                     (2)重新计算每个新簇的均值;

          直到:簇的质心不再变化。

算法优点:在处理大数据集时,该算法是相对可扩展性的,并且具有较高的效率。算法复杂度为O(nkt),其中,n为数据集中对象的数目,k为期望得到的簇的数目,t为迭代的次数。

算法缺点:用户必须事先指定聚类簇的个数;常常终止于局部最优;只适用于数值属性聚类(计算均值有意义);对噪声和异常数据也很敏感;不适合用于发现非凸形状的聚类簇。

2.K-medoid(中心)

核心思想:k-means利用簇内点的均值或加权平均值ci(质心)作为簇Ci的代表点。对数值属性数据有较好的几何和统计意义。对孤立点是敏感的,如果具有极大值,就可能大幅度地扭曲数据的分布。k-中心点(k-medoids)算法是为消除这种敏感性提出的,它选择簇中位置最接近簇中心的对象(称为中心点)作为簇的代表点。

算法步骤:输入:n个对象的数据库,期望得到的k个聚类簇

                  输出:k个簇,使所有对象与其所属簇中心点的偏差总和最小化

                  1. 选择k个对象作为初始的簇中心

         重复:(1)将每个剩余的对象,分配到最近的中心点所代表的的簇;

                    (2)随机选取非中心点Orandom;

、                (3)计算用Orandom代替中心点Oj形成新聚类的总代价S;

                    (4)If S<0 then用Orandom代替Oj,形成新的k个中心点的集合。

        直到:不再发生变化。

算法优点:对属性类型没有局限性;鲁棒性强:通过簇内主要点的位置来确定选择中心点,对孤立点和噪声数据的敏感性小。

算法缺点:处理时间要比k-mean更长;用户事先指定所需聚类簇个数k。

你可能感兴趣的:(数据挖掘,clustering,partition)