Я попытался поместить те же данные, чтобы сделать статистику разрыва и хочу получить оптимальное количество кластеров.Чтобы проверить достоверность результатов, я попытался использовать разные программы, R
и Matlab
, чтобы выполнить один и тот же тест.Однако результаты в R
и Matlab
отличаются друг от друга.Оптимальное количество кластеров в R
равно 40, а в Matlab
- 6. Я попытался проверить все параметры и настроить их так, чтобы все параметры были одинаковыми, но все же получить разные результаты.
Есть ли еще какие-то детали, которые я пропустил?или разные результаты в разных программах есть причина?Я был обеспокоен этим вопросом в течение длительного времени.Если вы можете мне помочь, я очень вам благодарен.
Это входные данные gaptest
, а кластерный метод - pam
X1 X2
1 0.6351928 -0.7824029
2 0.6401326 -0.7919060
3 0.6427007 -0.7968948
4 0.6558318 -0.8229245
5 0.6566169 -0.8245088
6 0.6680986 -0.8480393
7 0.6782454 -0.8693981
8 0.6796789 -0.8724580
9 0.7115760 -0.9431477
10 0.7133614 -0.9472431
11 0.7296727 -0.9852485
12 0.8195850 -1.2030732
13 0.8470816 -1.2677628
14 0.8491237 -1.2724711
15 0.9787868 -1.5406940
16 1.0200572 -1.6149679
17 1.0680393 -1.6964657
18 1.0776983 -1.7123423
19 1.0944731 -1.7395482
20 1.0968986 -1.7434456
21 1.1069733 -1.7595397
22 1.1134140 -1.7697527
23 1.1464978 -1.8213617
24 1.2733486 -2.0097707
25 1.3603164 -2.1343635
26 1.5108690 -2.3507509
27 1.7984058 -2.8258020
28 1.8317105 -2.8951666
29 1.9689162 -3.3205491
30 1.9830438 -3.6912299
31 1.8931125 -4.0746001
32 7.0844451 -12.5712374
33 7.0636832 -12.5987628
34 6.9238601 -12.7901880
35 6.8664584 -12.8743234
36 6.8151738 -12.9560336
37 7.1884836 -12.8093261
38 7.4338566 -12.6135888
39 7.6658285 -8.5133002
40 7.6070872 -8.4042949
41 7.6053719 -8.4004027
42 8.3855195 -8.0055749
43 8.5990981 -8.0174662
44 10.3757387 -8.3280635
45 10.4124935 -8.3389941
46 10.4836669 -8.3608685
47 10.8223695 -8.4792392
48 10.9421194 -8.5275618
код в matlab
myfunc=@(x,k) kmedoids(x,k,'Algorithm','pam','Start','sample');
gap1=evalclusters(gaptest,myfunc,'gap','KList',[1:length(gaptest)],'B',200,'SearchMethod','firstMaxSE','ReferenceDistribution','PCA');
результат построения в Matlab
введите описание изображения здесь
код в R
clusGap(gaptest,pam,K.max=47,B=200,verbose=TRUE)
результат в R
clusGap(x = gaptest, FUNcluster = pam, K.max = 47, B = 200, verbose = TRUE)
B=200 simulated reference sets, k = 1..47; spaceH0="scaledPCA"
--> Number of clusters (method 'firstSEmax', SE.factor=1): 40
результат построения в R
введите описание изображения здесь
Я попытался изменить метод кластера в Matlab
, и оптимальное число все еще равно 6. Играфики результата в R
и Matlab
выглядят очень похожими.Но оптимальное количество кластеров все же отличается.