标准化样本数据以进行聚类

机器算法验证 正常化
2022-04-04 20:18:16

我有 200 个样本的三种汇总分数,a,bc

S1,S2,S3,...,S200

as1,as2,...,as200

bs1,bs2,...,bs200

cs1,cs2,...,cs200

这些分数中的每一个本质上是某个事件在每个样本的数据中发生的次数。我希望通过基于相关的聚类来找到这些样本的组。但是,这些分数中的每一个的量表都非常不同:

总结a

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
2.0   36.0   55.0   52.5   69.0  139.0 

总结b

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
8.0   99.5   285.0   292.7   737.5  2624.0 

总结c

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
40.0    111.0   176.0   300.4   554.5   779.0 

我应该标准化分数吗?如果是这样,怎么做?

注意。我不想对这些类型的事件之间以及这些汇总分数之间的依赖性或独立性做出任何假设。

更新:所以,我决定尝试使用欧几里得进行聚类。为了获得标准化和转换后的数据,我正在执行以下操作: 1. 使用 Shapiro 测试测试分数是否符合正态分布

  1. 如果不是,则使用 boxcoxfit 中进行boxcox 转换λ

  2. 获取每个分数的 z 分数

  3. 具有欧几里得距离度量的聚类

这看起来合理吗?

2个回答

聚类通常需要一个相似性度量来计算数据的分区。你知道如何计算的相似度吗?您是否需要规范化主要取决于这个问题。如果您没有这样的度量/度量,并且您想使用常规的欧几里德距离,则建议对您的数据进行归一化 - 使每个变量均值和单位方差为零。因为如果你不这样做,范围最大的分数将主导距离计算。ab

要对 x 执行 z 分数归一化,您不必测试 x 是否为正态分布。对于任何分布,z 都将处于零均值、一个标准差的分布中。

当您根据特定分布对数据使用任何测试时,分布类型很重要。

在这个意义上,正态分布的方便之处在于

如果 x 处于均值 m 且标准差 s z (= (xm)/s) 的正态分布,则均值为零且标准差为 1。

==== 有些人使用数据集的最小值和范围进行归一化聚类:

z= (x - min_x) / (max_x - min_x)

使数据落入 [0,1]