目录
1.聚类分析概述
2.各种距离的定义
2.1 样本相似性度量
2.2 类与类间的相似性度量
2.3 变量间的相似度度量
3.划分聚类
4.层次聚类
1.聚类分析概述
聚类分析是一种定量方法,从数据分析的角度看,它是对多个样本进行定量分析的多元统计分析方法,可以分为两种:
- 对样本进行分类称为Q型聚类分析
- 对指标进行分类称为R型聚类分析
从数据挖掘的角度看,又可以大致分为四种:
- 划分聚类
- 层次聚类
- 基于密度的聚类
- 基于网格的聚类
本篇文章将从数据挖掘的角度来揽述,但也会借鉴数学建模的部分思想。
无论是从那个角度看,其基本原则都是:
希望族(类)内的相似度尽可能高,族(类)间的相似度尽可能低(相异度尽可能高)。
先来看一下从数据挖掘的角度看,这四种聚类方法有什么不同。
划分聚类:给定一个n个对象的集合,划分方法构建数据的k 个分区,其中每个分区表示一个族(族)。大部分划分方法是基于距离的,给定要构建的k个分区数,划分方法首先创建一个初始划分,然后使用一种迭代的重定位技术将各个样本重定位,直到满足条件为止。
层次聚类:层次聚类可以分为凝聚和分裂的方法;凝聚也称自底向上法,开始便将每个对象单独为一个族,然后逐次合并相近的对象,直到所有组被合并为一个族或者达到迭代停止条件为止。分裂也称自顶向下,开始将所有样本当成一个族,然后迭代分解成更小的值。
基于密度的聚类:其主要思想是只要“邻域“中的密度(对象或数据点的数目)超过某个阀值,就继续增长给定的族。也就是说,对给定族中的每个数据点,在给定半径的邻域中必须包含最少数目的点。这样的主要好处就是过滤噪声,剔除离群点。
基于网格的聚类:它把对象空间量化为有限个单元,形成一个网格结构,所有的聚类操作都在这个网格结构中进行,这样使得处理的时间独立于数据对象的个数,而仅依赖于量化空间中每一维的单元数。
划分聚类是基于距离的,可以使用均值或者中心点等代表族中心,对中小规模的数据有效;而层次聚类是一种层次分解,不能纠正错误的合并或划分,但可以集成其他的技术;基于密度的聚类可以发现任意形状的族,族密度是每个点的“邻域“内必须具有最少个数的点,可以过滤离群点;基于网格的聚类使用一种多分辨率网格数据结构,能快速处理数据。
但在目前的工业应用中,主要是划分聚类和层次聚类的应用,所以接下来的内容主要在这几个方面。
2.各种距离的定义
2.1 样本相似性度量
要用数量化的方法对事物进行分类,就要用数量化的方法来定义每个样本的相似程度,这个相似程度在数学上可以称之为距离,最常用的闵氏距离:
- 缺点1:闵氏距离没有考虑样本的各指标的数量级水平。当样本的各指标数量级相差悬殊时,该距离不合适。
解决方法:在计算距离之前,先把所有指标都转化为统一的分布内,即标准化。
缺点2:使用欧式距离要求各坐标对距离的贡献应该是同等的,且变差大小也是相同的,如果变差不同,则不太适用。
比如在择偶时衡量一个男性的指标,假如是身高和收入水平,一个人是1.5米,收入6000,另一个人是1.8米,收入5500,这两个人的两个指标的变差差别就很大,不好用欧式距离。解决方法2:将欧式距离进行一定的改写:
d2(xik,xjk)=[∑k=1p(xik−xjkskk)2]12其中 s