varclus变量聚类对变量有啥要求_变量聚类VarClus

本文所讲的变量聚类方法只是众多聚类方法中的其中一种,与SAS中的变量聚类proc varclus方法一致

  1. 为什么要做变量聚类

当数据集包含成百上千个变量时,很难挖掘出变量与变量之间的关系,太多的变量也会削弱模型的效果。同时很难对构建的模型进行合理的解释。变量聚类实际上做的是变量缩减,它可以通过减少冗余变量的个数,损失少量信息的情况下提升模型的训练速度和模型效果。

2. 变量聚类

PCA(主成分分析)通过主成分(原始自变量的线性组合)达到变量缩减的目的,但是通常主成分的含义很难得到解释。

一般聚类方法可分为两类:

(1)层次聚类:这种方法是在之前的迭代中嵌套产生不同的簇,是非常常用的聚类方法

(2)分区聚类(partitional clustering):分区聚类简单地将数据对象集合划分为非重叠子集(集群),通过最小化观测向量和参照向量(比如向量中心,或者初始猜测一个中心向量)的距离,使得每个数据对象恰好是一个子集。但是这种方法需要很精细地选择合适的参数以及评估所有可能的切分方式的损失,通常实际很难运用。

层次聚类中有2种方法

· 聚合

1. 每个变量自成一类

2. 计算不同类别之间的相似性

3. 合并最相似的类别

4. 重复步骤2和步骤3,直到只剩一个类别

· 切分

1. 初始时所有观测值全部归为一起成为一个大类

2. 计算不同类别之间的相似性

3. 把最不相似的类别做切分

4. 重复步骤2和步骤3直至每一个观测值都是一个类别

接来下介绍一种便于解释的变量缩减方法

Varclus过程是先把所有变量看成一类,递归地把当前的簇切分成2个子簇直到达到停止条件,从而产生不重叠的层次结构

v2-f16daaf9826132b420adc8cc2b3c0b33_b.jpg
变量聚类过程

当一个变量簇中第二大的主成分特征值大于设定的阈值(比如上图中设定为0.7),则认为该变量簇至少可以被两个主要的维度(前两个主成分)解释,因此该变量簇可以被切分为2个簇

分裂成两个簇的过程为:先计算该簇的前两个主成分,再进行斜交旋转,并把每个变量分配到旋转分量对应的簇里,分配的原则是变量与这个主成分相关系数的绝对值最大

分裂结束后,每一个变量簇中的特征值均小于实现设定的阈值

接下来简要做一个varclus结果展示

v2-5b47ed905eeafac6a8bc5635de7537d9_b.png
第一次循环

第一次循环:所有变量作为一个簇,上图中第四列变量解释方差为2.614435,占总方差的37.35%;第二特征值为1.660513>0.7,所以簇1需要被分裂

v2-817609549c670832b5cd78aaf0ca192b_b.jpg
第一次分裂后

v2-64554213e6c5901a4695e79197d45272_b.jpg
分裂生成2个簇

上图中第三列变量R-squared with own cluster(簇内

)指变量与所属簇内分量(簇的第一主成分)之间相关系数的平方,值越大表示该变量与簇越紧密

第四列变量R-squeared with next cluster(簇间

)指变量与相邻簇内分量之间的相关系数的平方,其值越小表明该变量与相邻簇分得越开

第五列变量

,簇内
越大,簇间
越小,
就会越小。
的值越小,表明该变量与簇越紧密,与相邻簇分得越开

由于两个簇2的第二特征值为0.925357>0.7,所以簇2需要继续被分裂,分裂结果如下

v2-bc8409dea89e20368724f1ca1e891b6f_b.jpg
继续分裂生成3个簇

最终循环结束后,结果如下所示

v2-fe0d5d4fc08f0e28952aa3c15cdf4d18_b.jpg
最终聚类结果

如何选择代表性变量?

选择每一个簇中

最小的变量作为该簇代表性变量,实际应用还是需要看业务解释
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值