R中群集程序包的轮廓函数中的下标超出范围

问题描述

我试图找到聚类分析的平均轮廓宽度。我在R中的silhouette()包中使用了cluster函数。我收到“下标超出范围”错误。数据集的链接here。我的代码是:

library(openxlsx)
library(cluster)
library(clustMixType)

dataset <- read.xlsx("./hepatitis.data.imputed.xlsx",na.strings = "")

# List type of variables
numeric_vars      <- c("Age","Bilirubin","Sgot","Albumin")
categorical_vars  <- names(dataset_imputed[-c(which(names(dataset_imputed)%in%numeric_vars))])

# Dataset for clustering (remove class label)
df <- dataset[-c(1)]

# distance matrix
Gower_dist <- as.matrix(daisy(df,metric = "gower"))

# k-prototype clustering
k_proto_clust           <- kproto(data_fs,k = 2)
k_proto_clusters        <- k_proto_clust$cluster

# Compute silhouette width
clustering_silhouette         <- silhouette(x = k_proto_clusters,dmatrix = Gower_dist)
sum_clustering_silhouette     <- summary(clustering_silhouette)
avg_silhouette_width_cluster  <- sum_clustering_silhouette$avg.width

我仅需进行一次分析即可找到平均轮廓宽度,这没有任何问题。当我为优化模型调用avg_silhouette_width_cluster 时出现问题,该模型的平均轮廓宽度是针对具有不同数据子集的50个聚类分析计算的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)