天天看点

分类模型——系统聚类(一)

系统聚类

又名“分层聚类法”。聚类分析的一种方法。其做法是开始时把每个样品作为一类,然后把最靠近的样品(即距离最小的群品)首先聚为小类,再将已聚合的小类按其类间距离再合并,不断继续下去,最后把一切子类都聚合到一个大类。我们首先来简单举个例子

分类模型——系统聚类(一)

这是生成的一个聚类图,这是聚类分析的核心内容,由聚类图来观察如何聚类。

步骤

以n个样本为例:

定义以变量或指标的个数为维度的空间里的一种距离;

计算n个样本两两之间的距离;

将每个样本归为一类,根据计算出的样本间的距离合并距离最近的两类为一个新类;

再计算新类与其他各类的距离,同样再根据计算出的距离合并距离最近的两类为一个新类;

循环以上过程直至类别个数为1;

画出各阶段的聚类图并决定类别的个数。

对于变量聚类分析,只需要将距离替换为相似系数,然后将相似系数较大的变量分别聚类即可。常用的空间距离有:绝对值距离、欧式距离、欧式距离、切比雪夫距离、马氏距离和兰氏距离。(会再开一个文章专门介绍这几个距离)

具体方法分类有许多种方法,最常用的一种方法是在样品距离的基础上定义类与类之间的距离。首先将n个样品分成n类,每个样品自成一类,然后每次将具有最小距离的两类合并,合并后重新计算类与类之间的距离,这个过程一直持续到将所有的样品归为一类为止,并把这个过程画成一张聚类图,参照聚类图可方便地进行分类。因为聚类图很像一张系统图,所以这种方法就叫系统聚类法。系统聚类法是在实际中使用最多的一种方法,从上面的分析可以看出,虽然我们已给了计算样品之间距离的方法,但在实际计算过程中还要定义类与类之间的距离。定义类与类之间的距离也有许多方法,不同的方法就产生了不同的系统聚类方法,常用的有如下六种:

(1)最短距离法:类与类之间的距离等于两类最近样品之间的距离;

(2)最长距离法:类与类之间的距离等于两类最远样品之间的距离:

(3)类平均法:类与类之问的距离等于各类元素两两之间的平方距离的平均;

(4)重心法:类与类之间的距离定义为对应这两类重心之间的距离对样品分类来说,每一类的类重心就是该类样品的均值;

(5)中间距离法:最长距离法夸大了类间距离,最短距离法低估了类间距离介于两者问的距离法即为中间距离法,类与类之问的距离既不采用两类之间最近距离。也不采用最远距离,而是采用介于最远和最近之间的距离;

(6)离差平方和法:基于方差分析的思想,如果分类正确,同类样品之间的离差平方和应当较小,类与类之间的离差平方和应当较大。

这些方法的使用却决于用于什么种类的分析,举一个例子。

假如我们要分析用户我们得到一串数据,将他们进行分类,分为四类,我们可能就会用到最短距离法。

例题(最短距离法)

我们在此采用明氏距离(绝对值距离)

假设我们需要对一组数据进行聚类,此例题我们只观测一种指标(大家可以选择观测多种指标,同时也学要对数据进行标准化处理,我们先讲简单例题,深入的多维我们放在下一节)

我们测量一批原件,我们测量它的指标分别为10,18,16,18,22,44,58,68.很简单就时两两相减取绝对值就是明氏距离

我们得出矩阵

分类模型——系统聚类(一)

我们找到距离最小的变为新的类G8

分类模型——系统聚类(一)

我们可以看出2是最小的距离所以G2和G3组为新的类G8,然后再次进行剩下的分类

分类模型——系统聚类(一)

我们可以找到下一个时G6和G7组成新的类G9继续重复上述步骤

分类模型——系统聚类(一)

G1和G4组成新的类G10,我们继续将剩下的进行聚类

分类模型——系统聚类(一)

将G8和G10组成最新的类G11

分类模型——系统聚类(一)

然后G5和G9组成G12,然后将G12和G11组成最终的一类,就完成了。我们利用DPS来进行数据分析得到了最重要的聚类图

分类模型——系统聚类(一)

我们就可以观察如何进行分类,按照聚类图来做出所需结论。

个人认为系统聚类的最大优势就是不需要我们进行划分类(比如K-Medioide就需要我们自己规定K值),我们只需要根据聚类图来作为决断依据即可。

优化

我个人认为系统聚类可以进行一定的优化,在第一次聚类中我们使用所分好的大类中值来计算距离,但实际上可以使用均值来代替每个点,这样一方面减少了程序的计算量,同时也增加了系统的稳定度,这个优化类似于我下一篇即将写到的对K-Medoide的优化,在其中我认为在原有优化的基础上根据标准差的大小来确定聚类半径(说多了下一篇我会具体写到)

数值标准化

在系统聚类的实际应用中我们不可能用它来解决这么简单的问题(这个只是带领大家入门),所以我们就会面对数值标准化的问题,数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。我们常用的数值标准化有:

一、Min-max 标准化min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x’,其公式为:

新数据=(原数据-最小值)/(最大值-最小值)

二、z-score 标准化(只知道均值和标准差,一般建模比赛也用不到)这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。

z-score标准化方法适用于A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。新数据=(原数据-均值)/标准差spss默认的标准化方法就是z-score标准化。

用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。

  步骤如下:

  1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;

  2.进行标准化处理:

  zij=(xij-xi)/si

  其中:zij为标准化后的变量值;xij为实际变量值。

  3.将逆指标前的正负号对调。

  标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

三、Decimal scaling小数定标标准化这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于A的取值中的最大绝对值。将属性A的原始值x使用decimal scaling标准化到x’的计算方法是:

x’=x/(10^j)

其中,j是满足条件的最小整数。

例如 假定A的值由-999到989,A的最大绝对值为999,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-999被规范化为-0.999。

注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。

四、对数Logistic模式

新数据=1/(1+e^(-原数据))

对数函数转换,表达式如下:

  y=log10(x)

  说明:以10为底的对数函数转换。

  五、模糊量化模式

新数据=1/2+1/2sin[3.1415/(极大值-极小值)*(X-(极大值-极值)/2) ]

X为原数据

  反余切函数转换,表达式如下:

  y=atan(x)*2/PI(就是3.1415926,那个字母打不出来)

————————————————————————————————————

部分数据标准化处理方式整理于网络(百度百科),感谢原作者(万分感谢)

大家有需要滴话加一下我滴公众号哇!(万分感谢我会努力更新哒!!!!)

分类模型——系统聚类(一)

继续阅读