目录
层次聚类
层次聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有的数据点合并成一类,并生成聚类谱系图。
用途:根据问卷数据对认知特征进行分析
!前提:问卷中一定一定一定要有对应矩阵量标题,对各个指标进行打分。在设置问卷的时候就要根据层次聚类指标进行设置一道量标题
写作步骤
首先,设置聚类变量,一般是矩阵量标题的题目
其次进行肘部法则运算(matlab)
最后,进行聚类分析(spss)
肘部法则(matlab实现)
用来计算出需要聚类的个数K是多少
用matlab计算
(选中一行摁f9即可只运行这一行数据)
(数据导入:可以右键新增变量,复制自己的数据)
clc;
clear;
clc,clear
cd('C:\Users\ASUS\Desktop\肘部法则') % 引号里修改成自己的存储路径
unnamed=xlsread("层次聚类.xlsx"); % 引号里填数据所在的表格名称
%数据文件名
data = unnamed;
%对原始数据进行归一化处理
data=mapminmax(unnamed,0,1);
%n是样本数,p为特征维数,k为分类数
[n,p]=size(data);
K=8;D=zeros(K,2);
for k=2:K
[lable,c,sumd,d]=kmeans(data,k,'dist','sqeuclidean');
% data,n×p原始数据向量
% lable,n×1向量,聚类结果标签;
% c,k×p向量,k个聚类质心的位置
% sumd,k×1向量,类间所有点与该类质心点距离之和
% d,n×k向量,每个点与聚类质心的距离
sse1 = sum(sumd.^2);
D(k,1) = k;
D(k,2) = sse1;
end
plot(D(2:end,1),D(2:end,2))
hold on;
plot(D(2:end,1),D(2:end,2),'or');
title('不同K值聚类偏差图')
xlabel('分类数(K值)')
ylabel('簇内误差平方和')
生成肘部法则图
选择K=3,因为在第三个点折线有急促变为平缓的拐点
通俗的说,图像拐点说明再增加k值,类内误差变化已经很小了,已经不能比当前k值更好的区分样本了。
聚类分析(spss实现)
谱系图操作过程
1.打开SPSS软件并导入数据,依次点击:分析→分类→系统聚类
2.导入自变量和分类依据变量。
一定要选择个案!!选择变量不会在数据窗口生成聚类结果!!!
3.在“图”按钮菜单中勾选谱系图。(冰柱图使用较少)
4.在“方法”按钮菜单中可以选择类与类之间的距离计算方式和点与点之间的距离计算方式。同时,如果原始数据量纲不统一,可以在左下方的转换值处对数据进行标准化。
5.通过“肘部法则”等方式确定聚类个数后,重新进行一次系统聚类过程。打开系统聚类窗体后打开“保存”按钮菜单,选择单个解,并输入解的个数。
SPSS进行系统聚类的结果:
谱系图:
聚类分布特征表操作
选择平均值
自变量是聚类分析的结果,因变量聚类分析的指标(即问卷矩阵量标题)
点击确定就能得到分布特征表了
但现在我只能将其复制到excel进行转置,不会在spss里面直接转置
这篇文章是为了防止我下次忘记层次聚类怎么操作专门总结的,不想下次再一个一个步骤去找怎么操作了QAQ
文章内容来源(十分感谢这两篇文章!!跪谢):