代码之家  ›  专栏  ›  技术社区  ›  akash87

雅卡系数唯一原理

  •  1
  • akash87  · 技术社区  · 6 年前

    您好,我有一个数据集,可以使用以下方法进行模拟:

    set.seed(123)
    v1 <- rbinom(10000, 1, .2)
    v2 <- rbinom(10000, 1, .3)
    v3 <- rbinom(10000, 1, .25)
    v4 <- rbinom(10000, 1, .5)
    v5 <- rbinom(10000, 1, .35)
    v6 <- rbinom(10000, 1, .2)
    v7 <- rbinom(10000, 1, .3)
    v8 <- rbinom(10000, 1, .25)
    v9 <- rbinom(10000, 1, .5)
    v10<- rbinom(10000, 1, .35)
    dats <- data.frame(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10)
    

    我正在使用Jaccard distance创建一个距离结构,如下所示:

    dat.jac <- philentropy::distance(dats, method = "jaccard") 
    

    所以我的问题是:因为这些是二进制变量,这意味着最多有2^10=1024个唯一组。这是否意味着由于我的分数远远超过1024分,我的数据代表性过高?问这个问题的另一种方法是,我是否需要计算唯一观测值的Jaccard距离,并使用观测值的计数作为权重,或者我可以只计算每个观测值(行)的Jaccard距离来获得距离矩阵?在编程方面,我应该执行以下哪项?

    日期:。jac<-philentropy::距离(dats,method=“jaccard”)
    

    dat.jac <- philentropy::distance(unique(dats), method = "jaccard")
    

    我的目标是使用以下代码在层次聚类中使用距离矩阵:

    dist.jac.mat<- as.matrix(dist.jac)
    dist.jac.mat[is.na(dist.jac.mat)] <- 0 
    hc <- hclust(as.dist(dist.jac.mat), method = "single")
    fviz_nbclust(dats, FUN = hcut, diss = as.dist(dist.jac.mat), k.max = 15, 
    nboot = 250, method = "silhouette")
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Has QUIT--Anony-Mousse    6 年前

    对于单链接,仅使用唯一点就足够了。 因为数量对于单个和完整的链接并不重要。 对于其他联系,这通常不成立。在这里,您需要使用加权聚类,并根据重复数进行加权。

    但是,您将遇到另一个问题:

    由于您几乎拥有所有组合,因此集群将毫无用处。只有极少数可能的距离,在一切都连接起来之前,你的树状图可能只有极少数级别。这是此类数据固有的。群集最适合于 不断的 变量,其中几乎没有重复距离。