
它可以提供全面的统租带宴计分析,方便易用可快速 *** 作,可缩小数据科学与数据理解之间的差距;在具体的应用方向方面,SPSS提供了高级统计分析、大量机器学习算法、文本分析等功能,具备开源可扩展性,可与大弊银数据的集成,并能够无缝部署到应用程序中。
§8.利用Matlab和SPSS软件实现聚类分析1. 用辩渗Matlab编程实现
运用Matlab中的一些基本矩阵计算方法,通过自己编程实现聚类算法,在此只讨论根据最短距离规则聚类的方法。
调用函数:
min1.m——求矩阵最小值,返回最小值所在行和列以及值的大小
min2.m——比较两数大小,返回较小值
std1.m——用极差标准化法标准化矩阵
ds1.m——用绝对值距离法求距离矩阵
cluster.m——应用最短距离聚类法进行聚类分析
print1.m——调用各子函数,显示聚类结果
聚类分析算法
假设距离矩阵为vector, a阶,矩阵中最大值为max,令矩阵上三角元素等含灶睁于max
聚类次数=a-1,以下步骤作谈岁a-1次循环:
求改变后矩阵的阶数,计作c
求矩阵最小值,返回最小值所在行e和列f以及值的大小g
for l=1:c,为vector(c+1,l)赋值,产生新类
令第c+1列元素,第e行和第f行所有元素为,第e列和第f列所有元素为max
源程序如下:
%std1.m,用极差标准化法标准化矩阵
function std=std1(vector)
max=max(vector) %对列求最大值
min=min(vector)
[a,b]=size(vector) %矩阵大小,a为行数,b为列数
for i=1:a
for j=1:b
std(i,j)= (vector(i,j)-min(j))/(max(j)-min(j))
end
end
%ds1.m,用绝对值法求距离
function d=ds1(vector)
[a,b]=size(vector)
d=zeros(a)
for i=1:a
for j=1:a
for k=1:b
d(i,j)=d(i,j)+abs(vector(i,k)-vector(j,k))
end
end
end
fprintf('绝对值距离矩阵如下:\n')
disp(d)
%min1.m,求矩阵中最小值,并返回行列数及其值
function [v1,v2,v3]=min1(vector)%v1为行数,v2为列数,v3为其值
[v,v2]=min(min(vector'))
[v,v1]=min(min(vector))
v3=min(min(vector))
%min2.m,比较两数大小,返回较小的值
function v1=min(v2,v3)
if v2>v3
v1=v3
else
v1=v2
end
%cluster.m,最短距离聚类法
function result=cluster(vector)
[a,b]=size(vector)
max=max(max(vector))
for i=1:a
for j=i:b
vector(i,j)=max
end
end
for k=1:(b-1)
[c,d]=size(vector)
fprintf('第%g次聚类:\n',k)
[e,f,g]=min1(vector)
fprintf('最小值=%g,将第%g区和第%g区并为一类,记作G%g\n\n',g,e,f,c+1)
for l=1:c
if l<=min2(e,f)
vector(c+1,l)=min2(vector(e,l),vector(f,l))
else
vector(c+1,l)=min2(vector(l,e),vector(l,f))
end
end
vector(1:c+1,c+1)=max
vector(1:c+1,e)=max
vector(1:c+1,f)=max
vector(e,1:c+1)=max
vector(f,1:c+1)=max
end
%print1,调用各子函数
function print=print1(filename,a,b)%a为地区个数,b为指标数
fid=fopen(filename,'r')
vector=fscanf(fid,'%g',[a b])
fprintf('标准化结果如下:\n')
v1=std1(vector)
v2=ds1(v1)
cluster(v2)
%输出结果
print1('fname',9,7)
2.直接调用Matlab函数实现
2.1调用函数
层次聚类法(Hierarchical Clustering)的计算步骤:
①计算n个样本两两间的距离{dij},记D
②构造n个类,每个类只包含一个样本;
③合并距离最近的两类为一新类;
④计算新类与当前各类的距离;若类的个数等于1,转到5);否则回3);
⑤画聚类图;
⑥决定类的个数和类;
Matlab软件对系统聚类法的实现(调用函数说明):
cluster 从连接输出(linkage)中创建聚类
clusterdata 从数据集合(x)中创建聚类
dendrogram 画系统树状图
linkage 连接数据集中的目标为二元群的层次树
pdist 计算数据集合中两两元素间的距离(向量)
squareform 将距离的输出向量形式定格为矩阵形式
zscore 对数据矩阵 X 进行标准化处理
各种命令解释
⑴ T = clusterdata(X, cutoff)
其中X为数据矩阵,cutoff是创建聚类的临界值。即表示欲分成几类。
以上语句等价与以下几句命令:
Y=pdist(X,’euclid’)
Z=linkage(Y,’single’)
T=cluster(Z,cutoff)
以上三组命令调用灵活,可以自由选择组合方法!
⑵ T = cluster(Z, cutoff)
从逐级聚类树中构造聚类,其中Z是由语句likage产生的(n-1)×3阶矩阵,cutoff是创建聚类的临界值。
⑶ Z = linkage(Y) Z = linkage(Y, 'method')
创建逐级聚类树,其中Y是由语句pdist产生的n(n-1)/2 阶向量,’method’表示用何方法,默认值是欧氏距离(single)。有’complete’——最长距离法;‘average’——类平均距离;‘centroid’——重心法 ;‘ward‘——递增平方和等。
⑷ Y = pdist(X) Y = pdist(X, 'metric')
计算数据集X中两两元素间的距离, ‘metric’表示使用特定的方法,有欧氏距离‘euclid’ 、标准欧氏距离‘SEuclid’ 、马氏距离‘mahal’、明可夫斯基距离‘Minkowski‘ 等。
⑸ H = dendrogram(Z)H = dendrogram(Z, p)
由likage产生的数据矩阵z画聚类树状图。P是结点数,默认值是30。
2.2举例说明
设某地区有八个观测点的数据,样本距离矩阵如表1所示,根据最短距离法聚类分析。
%最短距离法系统聚类分析
X=[7.90 39.77 8.49 12.94 19.27 11.05 2.04 13.29
7.68 50.37 11.35 13.3 19.25 14.59 2.75 14.87
9.42 27.93 8.20 8.14 16.17 9.42 1.55 9.76
9.16 27.98 9.01 9.32 15.99 9.10 1.82 11.35
10.06 28.64 10.52 10.05 16.18 8.39 1.96 10.81]
BX=zscore(X) % 标准化数据矩阵
Y=pdist(X)% 用欧氏距离计算两两之间的距离
D=squareform(Y) % 欧氏距离矩阵
Z = linkage(Y)% 最短距离法
T = cluster(Z,3) 等价于 { T=clusterdata(X,3) }
find(T==3) % 第3类集合中的元素
[H,T]=dendrogram(Z) % 画聚类图
聚类谱系图如图1所示:
图1 聚类谱系图
3.用SPSS软件实现聚类分析
在SPSS软件中同样可以实现该算法,
例如:下表是1999年中国省、自治区的城市规模结构特征的一些数据,可通过聚类分析将这些省、自治区进行分类,具体过程如下:
省、自治区 首位城市规模(万人) 城市首位度 四城市指数 基尼系数 城市规模中位值(万人)
京津冀 699.70 1.437 1 0.936 4 0.780 4 10.880
山西 179.46 1.898 2 1.000 6 0.587 0 11.780
内蒙古 111.13 1.418 0 0.677 2 0.515 8 17.775
辽宁 389.60 1.918 2 0.854 1 0.576 2 26.320
吉林 211.34 1.788 0 1.079 8 0.456 9 19.705
黑龙江 259.00 2.305 9 0.341 7 0.507 6 23.480
苏沪 923.19 3.735 0 2.057 2 0.620 8 22.160
浙江 139.29 1.871 2 0.885 8 0.453 6 12.670
安徽 102.78 1.233 3 0.532 6 0.379 8 27.375
福建 108.50 1.729 1 0.932 5 0.468 7 11.120
江西 129.20 3.245 4 1.193 5 0.451 9 17.080
山东 173.35 1.001 8 0.429 6 0.450 3 21.215
河南 151.54 1.492 7 0.677 5 0.473 8 13.940
湖北 434.46 7.132 8 2.441 3 0.528 2 19.190
湖南 139.29 2.350 1 0.836 0 0.489 0 14.250
广东 336.54 3.540 7 1.386 3 0.402 0 22.195
广西 96.12 1.228 8 0.638 2 0.500 0 14.340
海南 45.43 2.191 5 0.864 8 0.413 6 8.730
川渝 365.01 1.680 1 1.148 6 0.572 0 18.615
云南 146.00 6.633 3 2.378 5 0.535 9 12.250
贵州 136.22 2.827 9 1.291 8 0.598 4 10.470
西藏 11.79 4.151 4 1.179 8 0.611 8 7.315
陕西 244.04 5.119 4 1.968 2 0.628 7 17.800
甘肃 145.49 4.751 5 1.936 6 0.580 6 11.650
青海 61.36 8.269 5 0.859 8 0.809 8 7.420
宁夏 47.60 1.507 8 0.958 7 0.484 3 9.730
新疆 128.67 3.853 5 1.621 6 0.490 1 14.470
(1)打开数据文件,在spss中可以打开多种类型的文件,如*.xls、*.dbf、*.txt、*.sav等,
File→Open→Data;
(2)进行聚类分析:Analyze→Classify→Hierarchical Cluster(此例子中用层次聚类法);
进入如下对话框,设置聚类变量,以及采用的聚类方法,是否显示聚类谱系图等(因为采用不同的聚类方法,分类结果不同)。
设置完成后,即可得到聚类结果,此例子中采用欧式距离计算样本之间各变量的距离,组平均法聚类,得到的聚类谱系图如下图所示:
SPSS(Statistical Product and Service Solutions),“统计产品与服务解决方案”软件。
最初软件全称为“社会科学统计软件包”(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为“统计产品与服务解决方案”蔽腊,这标志着肆棚SPSS的战略方向正在做出重大调整。
SPSS为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称,有Windows和Mac OS X等版本。
扩展资料
SPSS功能
一、集数据录入、资料编辑、数据管理、统计分析、报表制作、图形绘制为一体。从理论上说,只要计算机硬盘和内存足够大,SPSS可以处理任意大小的数据文件,无论文件中包含多少个变量,也不论数据中包含多少个案例。
二、统计功能囊括了《教育统计学》中所有的项目,包括常规的集中量裂并则数和差异量数、相关分析、回归分析、方差分析、卡方检验、t检验和非参数检验。
也包括近期发展的多元统计技术,如多元回归分析、聚类分析、判别分析、主成分分析和因子分析等方法,并能在屏幕(或打印机)上显示(打印)如正态分布图、直方图、散点图等各种统计图表。
从某种意义上讲,SPSS软件还可以帮助数学功底不够的使用者学习运用现代统计技术。使用者仅需要关心某个问题应该采用何种统计方法,并初步掌握对计算结果的解释,而不需要了解其具体运算过程,可能在使用手册的帮助下定量分析数据。
参考资料来源:百度百科-spss
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)