问题描述
我试图找到聚类分析的平均轮廓宽度。我在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 (将#修改为@)