Algorithm-DBSCAN

 view release on metacpan or  search on metacpan

lib/Algorithm/DBSCAN.pm  view on Meta::CPAN

    
If you have huge datasets and want to use multiple CPUs in a optimal way you can build 
the region index with an external tool (will soon be available). En axample of code that 
uses a region index would be as follow.

Given the dataset:

    point_1 56 37
    point_2 34 46
    point_3 23 60
    point_4 10 24
    point_5 10 25
    point_6 9 24
    point_7 10 22
    point_8 11 25
    point_9 9 25
    point_10 10 27
    point_11 11 30
    point_12 10 25
    point_13 47 12
    point_14 47 12

lib/Algorithm/DBSCAN.pm  view on Meta::CPAN

    9 3 4 5 7 8 9 10 11

To use this index you can use the following code:

    use Algorithm::DBSCAN;
    
    my $points_data_file =     
        'point_1 56 37
        point_2 34 46
        point_3 23 60
        point_4 10 24
        point_5 10 25
        point_6 9 24
        point_7 10 22
        point_8 11 25
        point_9 9 25
        point_10 10 27
        point_11 11 30
        point_12 10 25
        point_13 47 12
        point_14 47 12

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

25 1501.5449771017109 869.6690756452238
26 1010.7866433450795 765.0583369667695
27 1795.4905858427278 630.569060433191
28 1942.0880780106054 2120.459301069889
29 1919.0828603575608 591.2851387150977
30 871.3630202610901 2309.4671868890136
31 1958.6236041716484 1059.8521498230523
32 1238.0985338714845 1085.1510558502907
33 449.97446085921183 1836.6049754920111
34 1439.0204236768957 693.4494477356632
35 642.6919129719321 890.7107174570324
36 322.75240788132163 1861.344403608339
37 595.5255024360201 791.1162676771244
38 1150.769017684562 1886.8273121576108
39 1864.3319057340568 1464.9212347762414
40 2127.139776398251 1539.0872778194266
41 734.5298676876199 1733.9827500145316
42 2066.3800466638286 2288.5801045215276
43 2233.5943850720637 1772.923219510367
44 1644.8733462194057 2063.2901207364453
45 1461.4812586637684 996.1332474472958

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

56 556.9699948857967 957.2831017008172
57 1678.6319525657314 1247.4472939866619
58 1522.918609277261 1603.2632568539404
59 1053.5623013184413 84.62750209177204
60 2048.2890427290504 289.2617284757983
61 889.1632132146249 825.196031509018
62 2102.3860173317003 807.7316484800999
63 1750.7168448144066 1981.9304402673501
64 495.29079482777104 932.1227708866729
65 346.2594662376612 446.22398081393953
66 1880.244955216496 2262.218675122222
67 1839.6077568067064 1284.500273095305
68 577.8247999442299 1266.9131050550354
69 1256.0916949873301 2103.087855858439
70 2007.2077618932383 429.4920819352474
71 1560.0486012833621 382.8746591460762
72 1769.1899952968802 1171.3437697243905
73 948.4524760124282 574.9889602802241
74 1379.0717992180987 2016.554988580687
75 1295.7168152905729 2081.509191580393
76 210.05338460781988 465.84943670026286
77 1275.820083292229 210.0868301062241
78 1028.2861456770408 1206.05375769573
79 1399.1241513440398 359.4832611868947
80 2150.6768497586463 1690.4461916817538
81 123.23903117332043 68.22623462326935
82 1817.6454553084075 748.8639108210597
83 1477.1577782371007 1041.5985465490223

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

102 621.9975763157654 1501.4508322385752
103 618.1432567581821 1497.7912259578814
104 620.1868372689197 1498.7874678823787
105 622.307847634846 1499.2327975837372
106 620.189083554102 1502.084781725644
107 618.6121594685517 1497.046563522674
108 619.5173120138705 1497.3797178134698
109 623.124479796662 1500.2032978751784
110 616.871823336576 1500.7555471131914
111 622.2676468432682 1498.8373140639765
112 616.4171783277378 1498.3052423787249
113 613.6640930928046 1496.983899869684
114 618.7838333849514 1500.6825037452008
115 620.1846076098252 1497.8236631580035
116 618.9314989064887 1501.0866507056728
117 613.4693268052224 1500.0017040033588
118 615.8505527693899 1499.0858685004334
119 613.764824678879 1496.1961806326506
120 618.3702154376874 1500.7380676939488
121 613.9064497763273 1498.0662992767222
122 617.1849228207454 1499.5729296298337

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

171 621.9249508896029 1498.4649519156712
172 623.2970406570356 1499.1929344918788
173 625.0880372012992 1501.1515447119743
174 624.3426751843557 1499.7386434619068
175 622.9175066678886 1495.5821273603653
176 622.2382343372236 1501.8691639851602
177 621.1069206337584 1499.7516368961099
178 1133.7713429355554 1016.4085684901981
179 1130.7668608597917 1018.6153126726189
180 1135.092539928752 1016.0432198543372
181 1131.602246690439 1014.5234570186283
182 1132.3612723708516 1017.6539714256988
183 1130.7873816063823 1017.2967338168834
184 1131.734578521544 1017.9857430195098
185 1134.0239937175047 1016.8517106113976
186 1135.1378169319705 1019.0621323200377
187 1133.6952321421404 1016.8537429010393
188 1132.595113723853 1016.8962996739715
189 1131.54750327322 1017.7773747015893
190 1135.4878205633154 1017.5563350499589
191 1130.2723919652235 1015.7599575433633

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

218 1131.590256905311 1014.0087764100058
219 1136.400839587369 1013.0344903180686
220 1136.5271733090574 1013.8272309965982
221 1132.7603238616425 1013.6023521013656
222 1137.1088014622692 1014.4650822009764
223 1138.8114585949813 1015.9018975514034
224 1134.5627855661794 1014.1371615295277
225 1135.794304122236 1011.1663290820494
226 1140.6512020066675 1013.7343141636488
227 1136.765007395255 1017.8767081302401
228 1134.4110624630357 1016.701752140224
229 1138.7742357952711 1013.8543172718514
230 1137.3411563998543 1010.6316084053338
231 1135.9702362780838 1011.3673714355317
232 1137.8255101888058 1015.5689303241793
233 1134.769670504323 1014.562112607765
234 1137.9759949179527 1014.9881937839656
235 1133.7330027937298 1011.7129540608046
236 1135.3061047784404 1017.5867695199861
237 1132.1274981234358 1014.4320789457637
238 1135.0516531013438 1016.6928518158556
239 1134.7415893741927 1015.5166729735065
240 1131.0703831272085 1015.6582442221463
241 1134.413176178834 1014.2109321416631
242 1131.465771625716 1012.445514360702
243 1134.7501240558315 1012.8897135251825
244 1132.9907727222599 1017.7280761999666
245 1132.4627169875314 1015.0477349591231
246 1131.0508277646347 1014.9650033218627
247 1134.1926418528074 1016.6847830783643
248 1132.1122564783175 1019.1800870216631
249 1132.3775808918936 1021.3821924427524
250 1136.9023877017898 1017.91406916536
251 1133.4211745997507 1017.005783064894
252 1130.827246862763 1014.6409254286093
253 1132.0496317493541 1018.7724877045982

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

271 188.5893439146773 554.6985846027889
272 189.78741038279625 551.7810614856805
273 191.62981098161032 552.2361407873235
274 187.0607058672598 555.8398414950108
275 186.88830608058922 556.7036303921327
276 191.35438968762475 554.6234509504213
277 192.26971894687563 551.5356463734271
278 192.2192475001792 552.3432483475752
279 190.5704256854331 551.9132718647992
280 188.46651414044692 550.4799826229522
281 189.08501487147345 551.3251032475303
282 195.1336128897422 551.9831015195027
283 190.0614037785384 549.8522310781667
284 189.53460312320288 552.1373019214054
285 191.3754774393642 551.2018644521391
286 194.6848139559469 551.0221112294004
287 194.08026047098488 554.6621793020807
288 193.31256749867657 551.7459184743985
289 195.79094157289384 552.9834214497151
290 192.51141453322893 549.1553618571345
291 190.32586294028116 552.8705566730902

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

301 192.78573243125376 558.7464357847479
302 193.30975944772794 558.6101949440614
303 193.62398469394168 557.3311618305571
304 189.9368467070171 555.1416612801689
305 185.89328777110384 557.8294197806124
306 189.73323531557514 555.3238385371227
307 189.3704569370996 557.1028935735256
308 192.22038502342357 559.4434176517065
309 187.3623201314662 560.1416179323742
310 192.25444250769016 556.1077101847627
311 193.4552259789337 553.5092447461994
312 190.82080358527168 555.4024484475402
313 188.51476518705562 555.3361381309545
314 192.91394105139992 558.1328074215146
315 190.26004602482422 552.9803544427258
316 192.56517799593567 557.8090701154517
317 192.5085397134869 558.1509102032743
318 188.80076487706668 557.9203647554027
319 194.38673790113796 554.119593771979
320 190.16311833775998 556.5908860427071
321 191.59718744729932 558.5750371212591

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

335 751.9513477735225 1374.8756468996198
336 752.6094291593633 1372.3213675725929
337 754.4822301461043 1375.4065826830767
338 753.6722666001191 1372.0497769521883
339 748.004137284635 1373.667678798065
340 755.7862957316078 1372.8448444900398
341 751.7762512069295 1371.7750404927797
342 752.0321576116665 1373.3502825812598
343 751.64460462229 1369.8030096882374
344 750.0749353031654 1368.6348364982314
345 754.506554000824 1370.2147829120854
346 752.2241978701138 1370.1723183299434
347 752.0486942252008 1366.2522235732663
348 755.1671574263471 1371.632922127774
349 749.9623354971772 1371.6113261561632
350 752.877988211844 1369.6363554846791
351 752.9018581928443 1370.3346952936345
352 748.7451398241359 1372.040872601656
353 753.4869911900149 1372.6120155595972
354 751.4561249407263 1371.2323155722904
355 750.8770841409209 1370.2386460300256

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

362 753.8056357933558 1371.2315625868046
363 748.5580358162316 1368.7200718098836
364 748.7290506761736 1372.936705120153
365 751.4617641211105 1376.0630620227487
366 748.3202066440301 1373.695763641569
367 752.653358126706 1372.2584446502929
368 752.7482068700183 1377.1479064146329
369 751.4936035682664 1374.7722364148874
370 749.1967453136642 1378.0454533832287
371 754.4683871129113 1375.5238053803482
372 751.092429453668 1375.5890038804569
373 753.8014389738005 1373.9183869678018
374 753.726710766446 1374.1966482895393
375 753.0859318406003 1378.5902010616333
376 754.7933509409634 1372.8418453510083
377 758.1487689831771 1374.3113526960324
378 756.3743775027817 1373.996534625974
379 755.851017932097 1374.5177610567898
380 751.5020887066546 1372.1606668908962
381 758.1786898641025 1371.4899297434004
382 757.9036124107644 1371.0302649645964
383 752.598003561322 1371.5512765761066
384 753.4151454935103 1373.8328410319386
385 756.8624295773479 1375.651386133953
386 755.8892639118794 1372.7205940121512
387 749.1916617178522 1372.1796107441378

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

399 748.5180852515426 1370.6822215180675
400 751.4314803255792 1371.114488036629
401 752.952111584095 1375.4765405075054
402 751.9865778001143 1376.4398759829637
403 748.893686197563 1372.49152263969
404 747.7733579599349 1375.6521108094782
405 749.768179415783 1373.2093993635538
406 752.0989701674279 1375.706895795608
407 748.2445293353144 1370.750053174737
408 749.5630563645263 1374.1584897739237
409 752.7822684148547 1374.9343042408632
410 753.7505099660318 1375.6762901288328
411 755.8973829754954 1374.7348069925154
412 750.8685793191516 1372.8221602651117
413 753.658431111307 1372.8908403399098
414 756.3982576242208 1374.2220616049667
415 754.870851854065 1372.657346805554
416 754.8998947417258 1374.2190982864895
417 751.2062265099248 1375.0814802992218
418 753.9145921496702 1376.2903393579147
419 755.1689119044524 1377.7293882525412

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

457 2177.7005132751688 2041.2015717648144
458 2177.2667275723716 2044.5865790584692
459 2174.052548001169 2044.0068622317258
460 2175.9668481933604 2039.468474510065
461 2179.1289246969004 2042.5303562562974
462 2173.8019339569732 2042.1683834553687
463 2175.698055451937 2040.1902425645224
464 2175.205160981443 2038.5952057471509
465 2176.3079044062256 2035.4240193534356
466 2173.19874055399 2038.4829200335878
467 2175.9535478874996 2038.2434002420669
468 2172.254851099662 2039.4784991971662
469 2175.6426297990297 2041.1125071077313
470 2176.687971615912 2037.2137066414289
471 2171.7930665134063 2039.634147185225
472 2173.539970222496 2037.4560054620847
473 2175.3018741824367 2034.753208288086
474 2175.9286706432545 2036.8139305173036
475 2175.5228710221504 2042.1951643258224
476 2173.7823513088665 2040.5120481725166
477 2176.2985311121065 2039.6417571545242

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

484 2172.3586717221765 2043.9346252006858
485 2174.2477278814663 2040.2829281155434
486 2175.610839169795 2040.7243000227877
487 2178.5308375424975 2043.4490590840765
488 2178.9762288485485 2039.2444502411672
489 2173.160210105251 2042.3380977787524
490 2176.359614872937 2040.3631624491666
491 2177.8629668690846 2043.1600693039775
492 2174.1492824000734 2038.8887052553257
493 2177.726784413647 2041.3822079987171
494 2176.948022461181 2040.3735224919824
495 2178.1757086707985 2042.6576786111723
496 2175.2587531665185 2038.8513574055485
497 2176.5210481509584 2036.9855221658393
498 2177.2778826823437 2033.067248005087
499 2174.56455071095 2040.0342543882648
500 2172.771199345244 2037.9207834252013
501 2175.326827744855 2035.6868788797105
502 2174.530555574602 2037.783489666685
503 2177.533021216295 2036.6635803585402
504 2176.0497385471713 2040.501097013692

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

521 789.1143132040062 2209.2229308479955
522 787.3824904912734 2208.5051362450677
523 789.2817602899371 2211.93022744452
524 791.2900969223293 2208.286132396362
525 786.5573080313462 2207.8561767759393
526 792.2877228861107 2211.3411363308705
527 792.4261813687241 2207.446211163577
528 791.012821975562 2207.775217250098
529 791.3886832839414 2210.4936327114633
530 789.5729752389542 2211.429260443393
531 788.7200246150168 2215.090864538056
532 789.525113377729 2211.8939630736168
533 788.3077014735711 2214.342647230019
534 791.7319235308287 2212.423411220515
535 787.889541028786 2211.735590777711
536 787.2930339536052 2211.732358653115
537 787.1844900993652 2209.858930595354
538 785.8302955376711 2211.334526455157
539 793.2896612869143 2212.250533532823
540 789.4681189895995 2211.801183716251
541 790.8549643690505 2211.1755102515704

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

552 792.7357987402141 2208.4228673481425
553 793.5275271713596 2205.051745044518
554 790.8946227631279 2210.910939067017
555 791.45724719484 2204.656123186097
556 792.260979285842 2206.711697526555
557 791.3846349835845 2207.6105055256885
558 789.6738622140115 2208.318716146112
559 793.9094462064918 2206.6330584207917
560 793.5909424252117 2205.0553447140755
561 795.2229734842272 2206.3764347832002
562 789.6464290012436 2207.326851472639
563 793.3351523079536 2207.9573622146104
564 794.6221954685725 2209.4285321100824
565 793.5009924207139 2209.7505961781485
566 790.4190458480142 2205.9045018093957
567 791.2967416223036 2210.9983503079343
568 789.6225553599417 2209.324329570936
569 789.6744911375986 2208.986123395903
570 792.3849821082697 2207.17537599732
571 790.2149474534883 2206.60599431721
572 790.0912344432304 2207.1085371547933
573 795.6832287466099 2207.2582737474713
574 792.6572740382616 2206.165994787411

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

639 985.9543107746134 534.752132004644
640 990.9501666425891 534.7949711504638
641 988.0515558258145 536.3677782247968
642 987.4440163229947 534.3568728495976
643 988.925229194782 537.3441561723533
644 993.8733980848563 532.2936409096584
645 991.1918486607813 531.5490022831106
646 991.4586069429135 534.1418317464497
647 994.0275069636436 537.33041607337
648 993.0079110482017 537.3503460149568
649 990.2441134585044 536.3231208678824
650 990.3120571399098 534.9897914823154
651 990.174448769602 530.9711518667225
652 990.0435656176608 528.6299934990682
653 990.1344614709411 530.8862229416777
654 990.4158417533899 532.5906127783704
655 987.924597136974 528.5445128212375
656 991.7993051474571 531.5907751558574
657 988.6773894000607 528.2338055515617
658 987.4755980888839 530.6726534338084
659 986.8809645297782 530.1111258585646
660 989.2416311542322 527.1165843200828
661 988.8913508900977 533.6742062571329
662 1188.2225792198133 1641.0777729992908
663 1186.5495980486182 1642.6443141839018
664 1190.1853709305724 1641.4298187344582
665 1187.4160003249688 1642.5484194770286
666 1186.19544014352 1641.506284344758
667 1186.97740950763 1641.1448902538596
668 1189.6996957765746 1644.209196427146
669 1188.8200066921222 1638.6126477095295
670 1185.5109532829604 1639.1150269785185
671 1190.844648094928 1641.4841356864056
672 1185.6156044267645 1641.5760116289357
673 1189.6971662083927 1644.5889624722154
674 1189.1303133413376 1641.6915275176655
675 1185.9569827442117 1645.9220631237397

t/test_datasets/dbscan_test_dataset_1.txt  view on Meta::CPAN

763 100.09474207770295 709.4963967793838
764 103.69892936082326 711.6658728545478
765 103.77460908321358 711.0199374727973
766 98.91127723908376 709.6539828347726
767 102.75769312407695 710.4606640486885
768 99.48049919917915 709.7797487233754
769 102.5263341005637 707.2003450662221
770 99.56532417885954 707.5818496792576
771 104.09996518609836 711.4324716644282
772 97.24065441807433 708.8640788964078
773 100.24534046670374 707.8228425663723
774 99.30640848218522 708.3876835224803
775 97.32127701145957 709.1211803701686
776 96.75504577333054 707.7372868098931
777 95.52124962677706 708.161323535293
778 95.5330452031423 708.6321693343385
779 96.09398813236379 708.6273333445132
780 99.23080269421412 712.0587509842863
781 96.49839192862441 711.3036306655857
782 99.93788541919888 708.4309438597048
783 99.08297974391604 710.4932172953695

t/test_datasets/dbscan_test_dataset_2.txt  view on Meta::CPAN

point_1 56 37
point_2 34 46
point_3 23 60
point_4 10 24
point_5 10 25
point_6 9 24
point_7 10 22
point_8 11 25
point_9 9 25
point_10 10 27
point_11 11 30
point_12 10 25
point_13 47 12
point_14 47 12



( run in 0.713 second using v1.01-cache-2.11-cpan-7add2cbd662 )