火车头采集网站,wordpress修改主题文件,网站模板备份,国家企业信用信息公示系统平台聚类分析问题描述
聚类分析问题描述
人类认识世界的方法之一就是将事物按照各种属性或特征分成若干类别。 物以类聚、人以群分。分类方法多种多样#xff0c;简单直接的如高、矮、胖瘦。使用的信息量小#xff0c;但对类别界限附近的案例#xff0c;分类结果不一定合适。 …聚类分析问题描述
聚类分析问题描述
人类认识世界的方法之一就是将事物按照各种属性或特征分成若干类别。 物以类聚、人以群分。分类方法多种多样简单直接的如高、矮、胖瘦。使用的信息量小但对类别界限附近的案例分类结果不一定合适。 为了满足更高的分类要求对研究对象需用更多的特征变量来刻画。如要想把中国的县分类就有多种方法可以按照自然条件来分比如考虑降水、土地、日照、湿度等也可考虑收入、教育水准、医疗条件、基础设施等指标既可以用某一项来分类也可以同时考虑多项指标来分类。
引例20种啤酒的热量、钠含量、酒精及价格四种变量。如何找到数据中隐藏的模式特征 整理好的数据具有如下结构 x i x_{i} xi是特征变量可能是分类变量如民族、性别也可能是数值变量如 身高体重单位量纲也不相同。每个对象用一个p维特征向量来刻画。 任意两各随机变量 X ( x 1 , x 2 , … , x n ) T , Y ( y 1 , y 2 , … , y n ) T X(x_{1},x_{2},\dots,x_{n})^{T},\ Y(y_{1},y_{2},\dots ,y_{n})^{T} X(x1,x2,…,xn)T, Y(y1,y2,…,yn)T 的协方差 c o v ( X , Y ) 1 n ∑ i 1 n ( x i − x ˉ ) ( y i − y ˉ ) cov(X, Y)\frac{1}{n}\sum_{i1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y}) cov(X,Y)n1i1∑n(xi−xˉ)(yi−yˉ) P维特征向量 ( X 1 , X 2 , … , X p ) (X_{1},X_{2},\dots,X_{p}) (X1,X2,…,Xp)的协方差矩阵 ∑ ( v ( x 1 ) c ( X 1 , X 2 ) … c ( X 1 , X p ) c ( X 1 , X 2 ) v ( X 2 ) … c ( X 2 , X p ) … … … … c ( X , X p c ( X 2 , X p ) … v ( X p ) ) \sum\begin{pmatrix} v(x_{1})c(X_{1},X_{2})\dotsc(X_{1},X_{p}) \\ c(X_{1},X_{2})v(X_{2})\dotsc(X_{2},X_{p}) \\ \dots\dots\dots\dots \\ c(X,X_{p}c(X_{2},X_{p})\dotsv(X_{p}) \end{pmatrix} ∑ v(x1)c(X1,X2)…c(X,Xpc(X1,X2)v(X2)…c(X2,Xp)…………c(X1,Xp)c(X2,Xp)…v(Xp) 聚类分析clusteranalysis就是基于数据自身信息来对数据进行分类的方法也称为无监督学习。 在聚类分析之前研究者不知道观察对象可以分成多少个类类的特点也无所得知。在分类的过程中聚类分析能够从样本数据出发自动进行分类。 不同研究者对于同一组数据进行聚类分析所得到的聚类结果未必一致因此聚类分析是一种探索性的分析方法。
聚类分析的数学描述
假设 X i ( x i 1 , x i 2 , … , x i p ) , i 1 , 2 , … n X_{i}(x_{i1},x_{i2},\dots,x_{ip}),\quad i1,2,\dots n Xi(xi1,xi2,…,xip),i1,2,…n 是待分析的对象全体。每个对象用p个特征变量来刻画。
聚类分析就是分析n个对象样本所对应的特征向量间的空间距离及分散情况按照各样本间的距离远近或相似程度把n个样本划分成k个不相交非空的模式子集G1,G2,…,GK称为簇或类要求每一个样本能且只能隶属于某一类。
对研究样本聚类即数据表中的行作为对象称为Q型聚类。对特征变量指标进行聚类即对数据中的列对变量的聚类称为R型聚类。可以将一些相近的特征划归一类 它们在数学上是无区别的。 聚类分析的实质就是结合研究目的、专业知识和数据特征合理定义距离把数据分成若干个类别使得类别内部差异尽可能小类别间的差异尽可能大。
两种基本聚类算法
HierarchicalCluster谱系聚类或层次聚类K-Means Clusterk-均值聚类法。 在聚类分析的前沿领域有基于密度、基于网格和基于模型的新的聚类方法本质上都是寻求更好的相似度(similarity)或距离的定义方法
距离与相似系数
如何在高维空间中度量距离远近呢在啤酒数据中每种饮料都有四个变量值。这就是四维空间点的距离了。 不仅要定义点和点之间的距离也需要定义类集合和类集合之间的距离。不同距离定义方式影响聚类效果。 相似度是和距离相反但起同样作用的概态两点相似度越大就相当于距离越短
两点间距离
给定任意两点 X ( x 1 , x 2 , … , x p ) T , Y ( y 1 , y 2 , … , y p ) T X(x_{1},x_{2},\dots,x_{p})^{T},\ Y(y_{1},y_{2},\dots,y_{p})^{T} X(x1,x2,…,xp)T, Y(y1,y2,…,yp)T 有多种方法定义两点间的距离 最常用的欧氏距离 ∑ i ( x i − y i ) 2 \sqrt{ \sum_{i} (x_{i}-y_{i})^{2}} i∑(xi−yi)2 欧氏距离的优点几何意义明确简单 缺点从统计意义上看使用欧氏距离要求
向量的p个分量互不相关具有相当的方差各个坐标对欧氏距离的贡献同等且变差大小相同 也可采用欧氏距离平方
Minkowski距离 ( ∑ i 1 p ∣ x i − y i ∣ q ) 1 / q \left( \sum_{i1}^{p}| x_{i}-y_{i}|^{q} \right)^{1/q} (i1∑p∣xi−yi∣q)1/q 当取q1时即为Block(绝对距离 ∑ i 1 p ∣ x i − y i ∣ \sum_{i1}^{p}| x_{i}-y_{i}| i1∑p∣xi−yi∣ 当qo时Chebychev距离 m a x i ∣ x i − y i ∣ max_{i}| x_{i}-y_{i}| maxi∣xi−yi∣ 缺点
易受指标量纲的影响未考虑指标间的相关性
B模距离 对于任意的正定矩阵B由下式确定的距离称为B模距离 d X Y 2 ( X − Y ) T B ( X − Y ) d^{2}_{XY}(X-Y)^{T}B(X-Y) dXY2(X−Y)TB(X−Y) 当B为单位矩阵时即为欧式距离
若 B d i a g ( 1 σ 1 2 , 1 σ 2 2 , … , 1 σ p 2 ) Bdiag\left( \frac{1}{\sigma_{1}^{2}},\frac{1}{\sigma_{2}^{2}},\dots,\frac{1}{\sigma_{p}^{2}} \right) Bdiag(σ121,σ221,…,σp21) d X Y 2 ( x 1 − y 1 ) 2 σ 1 2 ( x 2 − y 2 ) 2 σ 2 2 ⋯ ( x p − y p ) 2 σ p 2 d_{XY}^{2}\frac{(x_{1}-y_{1})^{2}}{\sigma_{1}^{2}}\frac{(x_{2}-y_{2})^{2}}{\sigma_{2}^{2}}\dots\frac{(x_{p}-y_{p})^{2}}{\sigma_{p}^{2}} dXY2σ12(x1−y1)2σ22(x2−y2)2⋯σp2(xp−yp)2
当取协方差矩阵的逆矩阵时得到马氏距离 Mahalanobis距离 B [ c o v ( X ) ] − 1 ∑ − 1 B[cov(X)]^{-1}\sum^{-1} B[cov(X)]−1∑−1 d X Y 2 ( X − Y ) T ∑ − 1 ( X − Y ) d_{XY}^{2}(X-Y)^{T}\sum^{-1}(X-Y) dXY2(X−Y)T∑−1(X−Y) 优点
排除了指标间的相关性干扰不受指标量纲的影响对原数据进行线性变换之后马氏距离不变
相似系数
夹角余弦(Cosin) d x y cos θ x y ∑ i x i y i ∑ i x i 2 ∑ i y i 2 , − 1 ≤ d x y ≤ 1 d_{xy}\cos \theta_{xy}\frac{\sum_{i}x_{i}y_{i}}{\sqrt{ \sum_{i}x_{i}^{2}\sum_{i}y_{i}^{2} }},\ -1\le d_{xy}\le 1 dxycosθxy∑ixi2∑iyi2 ∑ixiyi, −1≤dxy≤1 相关系数(Pearson correlation) d x y γ x y ∑ i ( x i − x ˉ ) ( y i − y ˉ ) ∑ i ( x i − x ˉ ) 2 ∑ i ( y i − y ˉ ) 2 d_{xy}\gamma_{xy}\frac{\sum_{i}(x_{i}-\bar{x})(y_{i}-\bar{y})}{\sqrt{ \sum_{i}(x_{i}-\bar{x})^{2}\sum_{i}(y_{i}-\bar{y})^{2} }} dxyγxy∑i(xi−xˉ)2∑i(yi−yˉ)2 ∑i(xi−xˉ)(yi−yˉ)
距离或相似度定义是聚类分析的关键步骤要结合专业和所研究对象的特点设计。 比如Lance和Williams的距离 1 p ∑ i ∣ x i − y i ∣ x i y i \frac{1}{p}\sum_{i} \frac{| x_{i}-y_{i}|}{x_{i}y_{i}} p1i∑xiyi∣xi−yi∣ 兰氏距离是一个无量纲的量克服了闵可夫斯基距离与各指标的量纲有关的缺点且兰氏距离对大的奇异值不敏感这使其特别适合高度偏移的和数据。但兰氏距离也没有考虑变量间的相关性。 再比如汉明距离Hammingdistance两个01字符码中不同位值的数目。
两类之间的距离
由一个点组成的类是最基本的类如果每一类都由一个点组成那么点间的距离就是类问距离。但是如果某一类包含不止一个点那么就要确定类间距离 类间距离是基于点间距离定义的比如两类之间最近点之间的距离可以作为这两类之间的距离也可以用两类中最远点之间的距离或各类的中心之间的距离来作为类间距离等。
给定两类 G p , G q G_{p},G_{q} Gp,Gq及其均值中心 X p ˉ , X q ˉ \bar{X_{p}},\bar{X_{q}} Xpˉ,Xqˉ 两类之间的距离 D p q D_{pq} Dpq 最短距离法single D p q m i n X i ∈ G p , X j ∈ G q d ( x i , y j ) D_{pq}min_{X_{i}\in G_{p},X_{j}\in G_{q}}d(x_{i},y_{j}) DpqminXi∈Gp,Xj∈Gqd(xi,yj) 最长距离法complete D p q m a x X i ∈ G p , X j ∈ G q d ( x i , y j ) D_{pq}max_{X_{i}\in G_{p},X_{j}\in G_{q}}d(x_{i},y_{j}) DpqmaxXi∈Gp,Xj∈Gqd(xi,yj) 重心法Centroid D p q d ( X p ˉ , X q ˉ ) D_{pq}d(\bar{X_{p}},\bar{X_{q}}) Dpqd(Xpˉ,Xqˉ) 类平均法average D p q 1 n 1 n 2 ∑ X i ∈ G p ∑ X j ∈ G q d ( X i , X j ) D_{pq}\frac{1}{n_{1}n_{2}}\sum_{X_{i}\in G_{p}}\sum_{X_{j}\in G_{q}}d(X_{i},X_{j}) Dpqn1n21Xi∈Gp∑Xj∈Gq∑d(Xi,Xj) 离差平方和Wald D 1 ∑ X i ∈ G p ( X i − X p ˉ ) ′ ( X i − X p ˉ ) D_{1}\sum_{X_{i}\in G_{p}}(X_{i}-\bar{X_{p}})(X_{i}-\bar{X_{p}}) D1Xi∈Gp∑(Xi−Xpˉ)′(Xi−Xpˉ) D 2 ∑ X j ∈ G q ( X j − X q ˉ ) ′ ( X j − X q ˉ ) D_{2}\sum_{X_{j}\in G_{q}}(X_{j}-\bar{X_{q}})(X_{j}-\bar{X_{q}}) D2Xj∈Gq∑(Xj−Xqˉ)′(Xj−Xqˉ) D 1 2 ∑ X ∈ G p ∪ G q ( X k − X ˉ ) ′ ( X k − x ˉ ) D_{12}\sum_{X\in G_{p}\cup G_{q}}(X_{k}-\bar{X})(X_{k}-\bar{x}) D12X∈Gp∪Gq∑(Xk−Xˉ)′(Xk−xˉ) ⟹ D p q D 1 2 − D 1 − D 2 \Longrightarrow D_{pq}D_{12}-D_{1}-D_{2} ⟹DpqD12−D1−D2 G p ∪ G q G_{p}\cup G_{q} Gp∪Gq均值中心 X ˉ \bar{X} Xˉ。用两类合并后离差的增加量来衡量两类之间的距离 红绿合并2465后的离差平方8.75 离差平方和增加8.75-2.56.25 黄绿合并6515后的离差平方14.75 离差平方和增加14.75-8.56.25 黄红2415后的离差平方 离差平方和增加10-100 故按该方法的连接和黄红首先连接。
层次聚类算法步骤及SPSS实现
层次聚类的方法原理
操作对象是类 开始时每一个样本点被看做一个类。 它首先把最近的两类点合并成一类类数减少一个 在剩下的类中继续寻找最近的两类合并 这样下去每次都少一类直到最后只有一大类为止。越是后来合并的类距离就越远。
聚类树的构造过程
计算n个样本点两两之间的距离记为距离矩阵D首先构造n个类每个类只包含一个样本点每一类的平台高度均为0合并距离最近的两类为新类并且以这两个类间的距离值作为聚类图中的平台高度计算新类与当前各类的距离调整距离矩阵。若类的个数等于1转入步骤5否则转到步骤3画聚类图决定类的个数和类
以数据beer.sav为例可以先通过菜单描述统计→描述→另存为变量将数据标准化。
然后选择菜单分析→分类→系统聚类。然后把标准化的热量、咖啡因、钠含量、价格选入变量框。
在方法按钮设置类间距离计算方法如下图。
在绘制按钮选择画出树状图
在平台高度发生较大跳跃的地方可以提示最好的聚类数目。这里可以是2类或3类选择聚成2类并在保存按钮设置保存类成员 Cutoff5聚成了4类 Cutoff12聚成了2类
中间的系数是两类合并时的距离群集1群集2和系数 这三列就是用矩阵表示的聚类树合并过程
聚类分析要注意的问题
聚类分析是探索性研究是一种描述统计方法它没有深入的统计理论支持。可以试验不同的距离定义不同的分类个数以及使用原数据还是标准化数据等等。 聚类结果主要受所选择的变量影响。如果去掉一些变量或者增加一些变量结果会很不同。相比之下聚类方法的选择则不那么重要了。 从应用角度讲针对某个特定问题很难得出一个完全确定并且也有理论支持的结论。更多的时候是依据聚类的结果在问题中的“有用性”来判断模型效果的好坏。 一个较好的聚类结果应该在类内样品尽可能相似的前提下使得类的个数尽可能的少。 一个较好的聚类结果要有令人信服的解释。其中一个标准就是能不能给出可读性好的类别特征描述。
K均值聚类算法步骤及SPSS实现
K均值聚类的思想和算法
给定要聚类的数据点 X i ( x i 1 x i 2 , … , x i p ) i 1 , 2 , … , n X_{i}(x_{i1}x_{i2},\dots,x_{ip})i1,2,\dots,n Xi(xi1xi2,…,xip)i1,2,…,n k-均值聚类算法中的k表示聚类的个数。事先并不知道试探性给出或结合背景知识给出 每个类用一个中心点来表示。聚类中心点随机初始化。 C i , i 1 , 2 , … , k C_{i},i1,2,\dots ,k Ci,i1,2,…,k 通过计算样本数据点与中心点距离将所有样本数据点分配到距离最近的类中 ∣ ∣ X i − C j ∣ ∣ , j 1 , 2 , … , k | | X_{i}-C_{j}| |,j1,2,\dots,k ∣∣Xi−Cj∣∣,j1,2,…,k
K-均值聚类算法是一种迭代算法。每扫描一次就要重新计算每个聚类中心点的位置。当聚类中心点的位置变化在一定的阀值之内的时候停止变化时最后就可以得到K个类并且类中每个样本数据点到本簇的中心的距离都小于到其它簇中心的距离 主要的聚类过程有三步
随机生成k个初始点作为中心点。将数据集中的数据按照距离中心点的远近分配到各个类中。将各个类中的数据求平均值作为新的中心点重复上一步直到所有的簇不再改变。
K均值聚类分析的SPSS实现
以数据Beer.sav为例在SPSS中选择 分析→分类→k均值聚类
然后把啤酒的热量、钠含量、酒精及价格选入变量框。 在聚类数目处选择2自己试探可能的类数。 如果想要知道哪种饮料分到哪类则设置保存按钮再选类成员。结果会写入数据表中。
利用SPSS只迭代五次就达到目标了。这样就可以得到最后的三类的中心以及每类有多少点
倒数第二列给出各类包含的样本。结果是第一类为啤酒9、10、12、 16、19、20。剩下的饮料为第二类。最后一列给出到类中心的距离。
聚类分析MATLAB实现
两种聚类分析方法
一种是利用clusterdata函数对样本数据进行一次聚类其缺点为可供用户选择的面较窄不能更改距离的计算方法 另一种是分步聚类
找到数据集合中对象两两之间的相似性或非相似性用pdist函数计算变量之间的距离用linkage函数定义变量之间的连接用inconsistent函数评价聚类信息用cluster函数创建聚类。
pdist函数 调用格式
Y pdistX, metric’说明用metric指定的方法计算X数据矩阵中对象之间的距离。
X一个n×m的矩阵它是由m个对象组成的数据集每个对象的大小为n。metric指定距离计算方法 euclid欧氏距离默认 seuclid标准化欧氏距离 mahal马氏距离等等
linkage函数 调用格式
Z linkageY, method说明用method参数指定的算法计算系统聚类树 返回
Z为一个包含聚类树信息的(n-1)×3的矩阵。记载系统聚类合并过程。Ypdist函数返回的距离矩阵method可取值如下 single最短距离法默认 complete最长距离法 average未加权平均距离法 weighted加权平均法 centroid质心距离法 median加权质心距离法 ward内平方距离法最小方差算法
dendrogram函数 调用格式
[H, T, ...] dendrogram(Z, p,...)说明生成只有顶部p个节点的谱系图
inconsistent函数 说明利用linkage函数生成的Z计算两个节点合并时的不一致性。 调用格式
c inconsistent(Z)cluster函数
ClusterZa)其中0a2表示linkage输出的系统聚类树Z中距离小于a的样本点归于一类
·Cluster(Zb)其中b1整数表示将linkage输出的系统聚类树X分为b类
分布聚类步骤
寻找变量之间的相似性 最好先将数据用zscore函数进行标准化。
X2 zscore(X); %标准化数据
Y2 pdist(X2); %计算距离定义变量之间的连接
Z2 linkage(Y2);评价聚类信息
C inconsistent(Z2) %两个集合节点合并时的不一致度量创建聚类并作出谱系图
T cluster(Z2,6); %这里聚6个类
H dendrogram(Z2);可直接调用clusterdata函数根据数据创建分类调用格式
T clusterdata(X,...)Clusterdata(x,a)其中0a2表示将原始数据中距离小于a的样本点归于一类 Clusterdata(x,b),其中b1整数表示将原始数据x分为b类
Tclusterdata(Xcutoff)与下面的一组命令等价
Y pdist(X, euclid);
Z linkage(Y, single);
T cluster(Z, cutoff);MATLAB中若要实现k均值聚类直接使用的K-means函数。 使用方法
ldx Kmeans(X, K)
[ldx, C] Kmeans(X, K)X是NxP的数据矩阵K表示将X划分为几类为整数C是KxP的矩阵存储的是K个聚类质心位置ldx Nx1的向量存储的是每个点的聚类标号