Rev 8272 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
R Under development (unstable) (2023-10-19 r85356) -- "Unsuffered Consequences"Copyright (C) 2023 The R Foundation for Statistical ComputingPlatform: x86_64-pc-linux-gnuR is free software and comes with ABSOLUTELY NO WARRANTY.You are welcome to redistribute it under certain conditions.Type 'license()' or 'licence()' for distribution details.R is a collaborative project with many contributors.Type 'contributors()' for more information and'citation()' on how to cite R or R packages in publications.Type 'demo()' for some demos, 'help()' for on-line help, or'help.start()' for an HTML browser interface to help.Type 'q()' to quit R.> ### Clara with really LARGE data set --- CPU testing> if(!cluster:::doExtras()) q("no")>> library(cluster)>> ## generate 15*N objects, divided into 2 clusters.> N <- 10000> suppressWarnings(RNGversion("3.5.0")) # << as long as we don't have R >= 3.6.0> set.seed(521)> x <- rbind(cbind(rnorm(7*N, 0,8), rnorm(7*N, 0,8)),+ cbind(rnorm(8*N,50,8), rnorm(8*N,10,8)))> .proctime00 <- proc.time()>> for(nn in 1:3)+ print(clara2 <- clara(x[sample(nrow(x)),], 2, sampsize = 128, samples= 500))Call: clara(x = x[sample(nrow(x)), ], k = 2, samples = 500, sampsize = 128)Medoids:[,1] [,2][1,] 49.9788949 9.9439603[2,] 0.1102125 -0.2841381Objective function: 10.02584Clustering vector: int [1:150000] 1 1 2 2 2 2 2 1 1 2 2 2 1 1 1 2 1 1 ...Cluster sizes: 79981 70019Best sample:[1] 1477 1701 4107 4356 4759 4821 5038 9625 10218 11557[11] 14191 14335 18496 18597 19282 21021 21428 21756 24235 24999[21] 29625 30005 30028 31534 34102 34793 35798 37583 37880 39309[31] 39464 40016 40606 40888 43390 43593 44463 45022 45495 46132[41] 46333 46541 48075 49398 51433 52254 53476 54893 55111 56022[51] 57404 58564 59643 61785 62494 63611 64067 64479 67136 69370[61] 70595 70796 71588 73394 74023 74108 74415 75653 77717 79862[71] 80162 82613 83030 84101 85264 85470 88326 89514 89949 90716[81] 91182 91968 94286 98923 100015 101164 101970 102180 102784 103274[91] 104222 106634 106824 107181 107760 108751 108900 111452 113052 113750[101] 113798 114279 114412 114604 114817 115128 115737 116311 117165 117627[111] 120797 121450 127247 127808 128644 128930 129490 131072 133363 133532[121] 135986 137348 137616 138968 142001 142585 146915 148520Available components:[1] "sample" "medoids" "i.med" "clustering" "objective"[6] "clusinfo" "diss" "call" "silinfo" "data"Call: clara(x = x[sample(nrow(x)), ], k = 2, samples = 500, sampsize = 128)Medoids:[,1] [,2][1,] 49.9175264 10.1438794[2,] 0.1102125 -0.2841381Objective function: 10.02635Clustering vector: int [1:150000] 1 1 2 2 2 2 2 2 2 1 2 1 2 1 2 1 1 1 ...Cluster sizes: 79983 70017Best sample:[1] 2967 6883 7036 7750 8490 8725 10957 13147 13770 14908[11] 16871 17121 17878 18167 19217 19897 22653 23189 23951 24358[21] 24619 27164 27929 27945 29094 29171 30110 30499 31204 31749[31] 32152 35388 35690 38727 40513 41728 42209 42341 42394 44475[41] 46523 47393 47951 51005 52236 53664 54172 54573 55177 55184[51] 56360 56406 56894 57017 57420 58040 60334 60897 61293 62572[61] 63412 63753 63916 64715 65424 65545 67164 69931 70066 76449[71] 78324 78825 79406 79640 81940 82286 82689 85756 85959 86271[81] 86648 87031 87555 87749 88463 91256 91459 94112 96426 96527[91] 96969 97216 99685 99825 101853 105071 107554 108637 109463 109754[101] 110111 116680 118058 118536 118667 120095 120557 123107 123425 124061[111] 124379 125808 125879 127508 128557 129362 130243 134379 136494 141191[121] 141369 141997 142408 143285 145427 148524 148726 149518Available components:[1] "sample" "medoids" "i.med" "clustering" "objective"[6] "clusinfo" "diss" "call" "silinfo" "data"Call: clara(x = x[sample(nrow(x)), ], k = 2, samples = 500, sampsize = 128)Medoids:[,1] [,2][1,] 0.1392328 -0.1579963[2,] 49.9788949 9.9439603Objective function: 10.02523Clustering vector: int [1:150000] 1 2 2 2 1 1 2 2 2 2 2 2 1 1 2 2 1 1 ...Cluster sizes: 70020 79980Best sample:[1] 1770 2921 3843 4223 4246 4992 5420 5752 6386 7256[11] 7815 8320 9012 12099 13527 13683 14235 15047 15107 17904[21] 18789 18890 19714 20350 20552 20760 22049 22294 22435 23617[31] 24578 26457 27473 27695 29112 29515 30240 32783 36713 37830[41] 38286 39091 39705 40899 43589 47612 48242 48327 48633 49872[51] 51936 53975 54081 54381 54783 56832 58656 59482 59688 62027[61] 62545 63733 64168 64934 68505 71881 73142 73591 75376 76188[71] 77003 77493 79649 80853 82970 83119 84243 85671 87271 87969[81] 88498 88823 89036 89956 90530 91224 91384 92260 95016 95197[91] 100308 101466 101535 102027 102862 103148 104929 105291 107751 108053[101] 111306 111834 113187 116803 116900 117614 120823 121134 121894 125920[111] 126726 128978 129257 133844 134437 135775 136279 137792 138410 138554[121] 139772 142294 143500 144617 144974 145647 145887 146089Available components:[1] "sample" "medoids" "i.med" "clustering" "objective"[6] "clusinfo" "diss" "call" "silinfo" "data"> cat('Time elapsed: ', proc.time() - .proctime00,'\n')Time elapsed: 4.313 0.009 4.328 0 0> ## nb-mm, with cluster 1.6-4 : 85.2 (elapsed 91.7)>> ###-- Larger example: 20*N objects, divided into 5 clusters.> N <- 20000 # 100'000 would give swapping like crazy for 256 MB RAM> x5 <- rbind(cbind(rnorm(4*N, 0,4), rnorm(4*N, 0,4)),+ cbind(rnorm(4*N,10,8), rnorm(4*N,40,6)),+ cbind(rnorm(4*N,30,4), rnorm(4*N, 0,4)),+ cbind(rnorm(4*N,40,4), rnorm(4*N,20,2)),+ cbind(rnorm(4*N,50,4), rnorm(4*N,50,4)))> ## plus 1 random dimension> x5 <- cbind(x5, rnorm(nrow(x5)))>> .proctime00 <- proc.time()> for(nn in 1:3)+ print(clara(x5[sample(nrow(x5)),], 5, samples= 100))Call: clara(x = x5[sample(nrow(x5)), ], k = 5, samples = 100)Medoids:[,1] [,2] [,3][1,] 51.1002305 50.1460959 0.1331874[2,] 9.1252025 39.6689092 -0.4555514[3,] 29.5625766 1.1976994 -0.9082990[4,] 39.8055168 20.2326953 0.5889404[5,] 0.2465901 0.8764563 -0.6630726Objective function: 5.769338Clustering vector: int [1:400000] 1 2 3 3 1 4 4 3 2 3 1 2 4 1 3 3 1 1 ...Cluster sizes: 80240 79099 79851 80781 80029Best sample:[1] 13178 26722 33924 43964 45752 50483 67536 75464 80530 106348[11] 108637 110810 127118 129499 142328 144721 149683 164087 224817 234113[21] 237732 238459 242896 248731 260828 274946 275422 277540 285279 294501[31] 307300 316791 316944 327656 328492 332435 334339 338190 346882 350599[41] 353437 357020 358844 360273 364637 376227 378626 379767 388135 392804Available components:[1] "sample" "medoids" "i.med" "clustering" "objective"[6] "clusinfo" "diss" "call" "silinfo" "data"Call: clara(x = x5[sample(nrow(x5)), ], k = 5, samples = 100)Medoids:[,1] [,2] [,3][1,] 30.0804463 -0.9518318 -0.3667627[2,] 40.4359809 19.4916731 0.5483652[3,] -0.8077057 0.4248833 0.1078008[4,] 10.5285200 41.9423158 0.7195955[5,] 49.6862611 49.7783134 0.1508043Objective function: 5.760039Clustering vector: int [1:400000] 1 2 2 3 1 2 1 1 1 3 3 3 2 1 4 2 5 2 ...Cluster sizes: 79697 80784 80058 79206 80255Best sample:[1] 43488 47107 47834 50916 52271 70203 84321 84797 86915 116675[11] 126166 126319 130451 137031 137867 141810 143714 147565 152802 156257[21] 166395 168219 169648 174012 188001 189142 192475 197510 202179 214356[31] 236097 243299 253339 255127 259858 275190 276911 282416 289905 294117[41] 314289 315723 318012 320185 331080 336493 338874 351703 359058 373462Available components:[1] "sample" "medoids" "i.med" "clustering" "objective"[6] "clusinfo" "diss" "call" "silinfo" "data"Call: clara(x = x5[sample(nrow(x5)), ], k = 5, samples = 100)Medoids:[,1] [,2] [,3][1,] 10.6835651 40.49264498 0.37786959[2,] 0.7370939 -0.09727728 -0.52975660[3,] 30.9806583 -0.03202827 -0.12876557[4,] 39.1749167 20.45583496 -0.08582161[5,] 49.4757529 49.73885441 0.25604496Objective function: 5.725015Clustering vector: int [1:400000] 1 2 3 2 4 5 2 2 5 4 4 3 5 3 2 2 1 2 ...Cluster sizes: 79138 80053 79818 80737 80254Best sample:[1] 3217 11579 28962 51465 59754 61371 67371 80274 80390 86847[11] 91193 95063 110010 113007 119678 120270 128156 136658 152417 166822[21] 173810 182233 190870 196698 227680 232502 235169 237073 245539 245630[31] 248487 253705 259870 263544 269526 277717 279853 281360 309083 310035[41] 329456 331226 335834 340467 344275 346692 363563 383265 390925 399616Available components:[1] "sample" "medoids" "i.med" "clustering" "objective"[6] "clusinfo" "diss" "call" "silinfo" "data"> ## Last Line:> cat("Time elapsed: ", proc.time() - .proctime00,"\n")Time elapsed: 4.214 0.022 4.242 0 0> ## nb-mm, with cluster 1.6-4 : 74.4 (elapsed 88.2)> ## ~~~~~ 1.7-* quite faster : 67.6 (elapsed 68.7)>> proc.time()user system elapsed8.860 0.141 9.197