0

我有一个由其他 R 包 TSclust 和 INT.PER 方法计算的相异矩阵。我想使用相异矩阵从 NbClust() 中检索最佳聚类数。但我得到一个错误。我怎样才能解决这个问题?

>library(TSclust)
>library(NbClust)

>INT.PER_data <- diss(data[-1], "INT.PER")
>Matrix_INT.PER_data<-as.matrix(INT.PER_data)
>nb <- NbClust(data=NULL, diss=Matrix_INT.PER_data, distance = NULL, min.nc = 2, max.nc = 25, method = "kmeans", index ="all")
>nb
Error in NbClust(data = NULL, diss =Matrix_INT.PER_data, distance = NULL,  : method = kmeans, data matrix is needed

数据如下所示:> head(data) Temperature H1 H1.1 H1.2 H2A H2A.1 H2A.2 H2B 1 76.0 0.1221658 0.1595197 0.1610738 0.1235955 0.1177524 0.1243822 0.1674721 2 76.2 0.1221658 0.1612350 0.1644295 0.1219904 0.1174267 0.1235585 0.1724907 3 76.4 0.1233503 0.1622642 0.1674497 0.1215088 0.1203583 0.1242175 0.1763941 4 76.6 0.1270728 0.1650086 0.1711409 0.1235955 0.1229642 0.1261944 0.1788104 5 76.8 0.1377327 0.1710120 0.1795302 0.1288925 0.1275244 0.1304778 0.1808550 6 77.0 0.1497462 0.1766724 0.1845638 0.1365971 0.1346906 0.1350906 0.1799257 H2B.1 H2B.2 H3 H3.1 H3.2 H4 H4.1 H4.2 H5 1 0.1523897 0.1945701 0.1222222 0.1884615 0.1166915 0.1333333 0.1174917 0.1278462 0.1378109 2 0.1573529 0.1930618 0.1192848 0.1833333 0.1150522 0.1319372 0.1169967 0.1278462 0.1412935 3 0.1617647 0.1900452 0.1172414 0.1820513 0.1152012 0.1315881 0.1165016 0.1269231 0.1452736 4 0.1636029 0.1900452 0.1189017 0.1833333 0.1186289 0.1324607 0.1156766 0.1255385 0.1500829 5 0.1658088 0.1915535 0.1204342 0.1820513 0.1250373 0.1366492 0.1184818 0.1264615 0.1553897 6 0.1669118 0.1915535 0.1242656 0.1846154 0.1318927 0.1399651 0.1229373 0.1301538 0.1636816 H5.1 H5.2 H6 H6.1 H6.2 L1A L1A.1 L1A.2 L1B 1 0.1468591 0.1400607 0.1059308 0.1238255 0.1121990 0.1368595 0.1462733 0.1416422 0.1256369 2 0.1482173 0.1449165 0.1046128 0.1224832 0.1142857 0.1436364 0.1506211 0.1432551 0.1214968 3 0.1468591 0.1477997 0.1051071 0.1213087 0.1147673 0.1528926 0.1540373 0.1454545 0.1187898 4 0.1497453 0.1509863 0.1074135 0.1218121 0.1162119 0.1585124 0.1599379 0.1495601 0.1187898 5 0.1560272 0.1562974 0.1112026 0.1238255 0.1202247 0.1646281 0.1661491 0.1554252 0.1232484 6 0.1621392 0.1593323 0.1156507 0.1260067 0.1229535 0.1752066 0.1723602 0.1642229 0.1313694 L1B.1 L1B.2 PH1 PH1.1 PH1.2 PH2 PH2.1 PH2.2 1 0.1254317 0.1223464 0.1208623 0.1156293 0.1136827 0.1263651 0.1204644 0.1288344 2 0.1243328 0.1196927 0.1218359 0.1130014 0.1122271 0.1227769 0.1181422 0.1288344 3 0.1240188 0.1175978 0.1204451 0.1110650 0.1112082 0.1209048 0.1162554 0.1276074 4 0.1241758 0.1194134 0.1169680 0.1131397 0.1125182 0.1215289 0.1159652 0.1276074 5 0.1270016 0.1245810 0.1171071 0.1157676 0.1139738 0.1209048 0.1168360 0.1300613 6 0.1313972 0.1297486 0.1189152 0.1179806 0.1176128 0.1215289 0.1198839 0.1312883

4

3 回答 3

0

我也在尝试使用NbClust包。使用相异矩阵,我只能运行这 5 个索引:

indexes <- c('frey', 'dunn', 'cindex', 'silhouette', 'mcclain')
于 2020-12-12T16:35:21.747 回答
0

https://cran.r-project.org/web/packages/NbClust/NbClust.pdf中的 P8 示例

## Data matrix is not available. Only the dissimilarity matrix is given
## In this case, only these indices can be computed : frey, mcclain, cindex, silhouette and dunn
res<-NbClust(diss=diss_matrix, distance = NULL, min.nc=2, max.nc=6,
method = "ward.D2", index = "silhouette")
res$All.index
res$Best.nc
res$All.CriticalValues
res$Best.partition
于 2021-12-11T08:13:40.737 回答
0

一些索引需要数字数据。

因此,此功能不能用于您的数据集,除非禁用这些需要坐标的方法/索引

于 2017-11-06T08:13:35.777 回答