一对出现在大量集群解决方案中的频率
How often a pair appear together over a large number of cluster solutions
为了评估 classification/clustering 解决方案的稳定性,我对我的数据进行了 运行 1,000 次算法引导。在这些分类结果中,我想计算每对在 SAME 集群中出现的频率。我对大约 250 个观察结果进行了聚类,形成了大约 31k 个这样的对。
这是生成合成数据集的伪代码:
set.seed(1)
ID <- paste ("ID",seq(1:250),sep="")
cluster1 <- sample(1:5, 250, replace=TRUE)
cluster2 <- sample(1:5, 250, replace=TRUE)
cluster3 <- sample(1:5, 250, replace=TRUE)
df <- data.frame(ID, cluster1, cluster2, cluster3)
您会看到 ID3 和 ID4 在同一个集群中出现两次。
与所有分类一样,用于表示集群成员资格的整数是任意的。
因为我的问题不是太大,所以我使用了我很容易用 C 编写的代码。
set.seed(1)
pairs.matrix <- matrix(0, 250, 250)
for (s in 1:1000){
cluster=sample(1:5, 250, replace=TRUE)
for (i in 1:(length(cluster)-1))
for (j in (i+1):length(cluster))
if (cluster[i] == cluster[j]) pairs.matrix[i,j] <- pairs.matrix[i,j] + 1
}
为了评估 classification/clustering 解决方案的稳定性,我对我的数据进行了 运行 1,000 次算法引导。在这些分类结果中,我想计算每对在 SAME 集群中出现的频率。我对大约 250 个观察结果进行了聚类,形成了大约 31k 个这样的对。
这是生成合成数据集的伪代码:
set.seed(1)
ID <- paste ("ID",seq(1:250),sep="")
cluster1 <- sample(1:5, 250, replace=TRUE)
cluster2 <- sample(1:5, 250, replace=TRUE)
cluster3 <- sample(1:5, 250, replace=TRUE)
df <- data.frame(ID, cluster1, cluster2, cluster3)
您会看到 ID3 和 ID4 在同一个集群中出现两次。
与所有分类一样,用于表示集群成员资格的整数是任意的。
因为我的问题不是太大,所以我使用了我很容易用 C 编写的代码。
set.seed(1)
pairs.matrix <- matrix(0, 250, 250)
for (s in 1:1000){
cluster=sample(1:5, 250, replace=TRUE)
for (i in 1:(length(cluster)-1))
for (j in (i+1):length(cluster))
if (cluster[i] == cluster[j]) pairs.matrix[i,j] <- pairs.matrix[i,j] + 1
}