Skip to content

Instantly share code, notes, and snippets.

@sailist
Last active May 7, 2019 04:52
Show Gist options
  • Save sailist/62f43adc42f97695d625978b4de14a38 to your computer and use it in GitHub Desktop.
Save sailist/62f43adc42f97695d625978b4de14a38 to your computer and use it in GitHub Desktop.
DBScan algorithm implement and detail commented
-4.686738272885491 2.5759977387607496
4.480628832133724 0.2939553056908723
-6.137243323703553 2.9503334238773204
-5.266926767483372 -4.242905183262661
2.4157041503284784 -0.3870034495722202
-2.080877633441193 0.4008299558324911
-3.386031635796943 -1.3930963856087197
4.546073889737606 -2.676929843748828
3.594552467695185 0.5169990399448374
-4.374730061522642 1.0911775881950274
4.0177465693300585 0.5844525385304581
3.4294715933464053 -1.0358262848649984
3.1785941760413405 1.4454118310170496
3.43915970386174 0.5616721627576111
3.6402906820798036 -1.1700514166243599
2.849591239674564 -1.6422431802438708
2.1983074516199337 0.059680017687204705
3.104259033760845 -0.5280015225557486
-4.808961909863112 -4.445944900245927
3.648459885549886 -1.5117523057314401
-1.6838790984862948 0.34163489821886
-2.4949130034368054 -1.209062963320274
-3.2118479111368368 -1.7894758392739938
2.1739505544520865 -0.21487184702307083
-3.3594206159188107 0.590993005436417
-6.090014346904605 2.937173143986092
-4.180661772149393 -3.712578413018343
1.915339279258493 -1.50024362474116
-6.657088980582323 2.1724921400714177
-2.189756828236052 -0.40140607773704534
-3.6036433972135304 -1.2452068850246047
4.301127930128554 -1.2758884528545424
-5.342490029341648 1.2153234378324722
-3.0141659773844616 -1.2122476682058347
-2.9656246454143265 -0.2888797903717258
-3.113703078194353 -1.6189214029051704
3.0244176574525476 -0.2690629372654497
-2.753806837594862 -0.5950348264389732
4.383020306770028 -0.4382064629129333
-3.330195866179345 -1.6300925813418647
2.9007618856102804 -1.7032604597203278
4.585555154075284 1.2481825395933113
-4.126948791085075 0.5727480437904104
-2.719231147664098 -0.17399010792045866
-3.5380743985688796 -3.201218539738443
1.874565376831671 -1.7580871552896606
-2.4170809104497644 -0.5108328251537515
-3.978732239552178 0.73641344358864
-6.373694168066204 2.916848406742128
-6.3381273372486415 2.561189452792721
3.6843052207166385 0.9103012332647031
4.120562513713761 0.5338185455308335
-2.9143111210184602 -1.897869861289372
3.996206898592756 1.3054572840747605
2.0168792609588353 -1.638728292591652
2.1720894082873135 0.21535384890952347
-3.8785659374486277 1.1833062342737264
-5.530068326762952 1.537636134982062
-2.5766087151037422 -2.110283758444417
4.402291336435001 -1.650287396461951
1.565946854654605 -0.6028350265952023
3.6321741630367828 1.1665615454454008
-2.77680164652194 -1.980289566331972
-6.127742566971121 3.219079925089188
1.9537982514224874 0.12837646758713595
-3.4889682190887252 -3.2659372999010525
-4.846813945846166 -3.687147445593926
2.2582871240643008 -1.8380378916446938
5.295537075533251 -1.9789627116161923
4.193785248505429 0.4192471670904695
5.40455228514136 -1.4235503931723645
-4.151837371939408 0.9086968686207538
-4.095567886202816 -2.7786762426848575
3.7763640228452844 -1.2306466150610686
-3.2056648000583055 -1.1739908176388436
4.891728591098237 -1.527064518219688
-4.890042615631415 -4.020721365128416
-3.169086954092056 -0.41828907516625924
-3.025677076054606 -0.060248952148048054
3.273843608860943 -0.842444384088165
-2.4441479503424097 -0.2364311673021843
-3.9901423833659613 0.46896731636134403
-5.012580245450384 2.3074485741899498
-5.475399865501823 3.226289234279158
-3.9887175445823937 0.6311220653999357
3.6215086589772927 0.5515111341010747
5.237028169785418 -2.7342153264538274
4.493274169287627 -1.897695134980121
3.257640058149181 -1.0812158644272634
2.6491447887576607 -0.5702213540738406
-5.697396802537052 3.140004880827982
2.1184436581896025 0.5894805075370733
-3.025010818489871 0.02372499671653638
-3.381043024306127 -0.4352118079138597
6.154173620416485 -2.2241958898543803
-1.8639853374955924 0.8658551988398971
-3.1089983413612012 -0.7385231930865132
4.1076686784409935 -0.9084553283510288
-2.5081775921809117 -2.0804275367438425
3.972377455001405 1.1874566458996942
1.613543881663775 -2.0244894277430614
-6.394159349082163 3.1214348275155706
-2.4537240430021683 -1.1497287609547018
-3.5553376193859823 -1.2506222526250506
1.890315156771275 0.10151237768575755
4.488850563372518 1.9769701847295176
4.059962786555908 -0.8660374809027435
4.181950020145327 0.06114768105684724
2.925176641296021 -1.028657397845337
-3.899286474144749 -3.120183650576095
1.701112581880544 0.06733846365522873
-2.280752992074494 0.007102781137493725
-4.51147729613204 0.8580948746228049
-4.049286234255198 -0.15198062858071015
-4.641707953571381 -2.893122535572674
5.517956096255675 -2.1174741477229215
2.08547266913397 -2.6894527370409875
-4.013361706382123 1.7442663120611446
-4.047292618534986 -0.7577943520930844
-3.109023667638341 -0.998507701195724
-5.162491522126261 -3.821545965633537
3.93015076428392 -0.8011449882545307
-6.352689445561199 3.1072127095799433
4.182514241601104 0.7809484891512971
-5.181501371053574 1.8236796699513163
-2.9801149601816372 -0.3970897098652867
-2.330068084038943 -2.8623178189154217
-5.288103317534217 1.9427213153253924
-5.275253063372059 1.5577712426100037
2.6405535011174885 -0.07100974208272137
-3.610243562005969 -3.1332982176046724
-4.886078409794962 -4.397553586191762
-3.5140828376441475 1.4252394670916568
-4.494397249479181 1.163211043370651
-3.1808499130277377 -0.16964203864282135
-5.370022067469049 2.1187237480433287
4.134989393166361 0.807359636425828
-2.9640705721163867 -1.8577374997852891
3.5813172403836644 -0.47298999542925835
-5.554964362900143 2.0798572773137307
-2.7695494993985386 0.4487698012466256
-5.342122961463597 -4.069248200441376
-2.906945274979466 -0.40314467968338263
2.647576800114338 -1.3976200361962843
4.565187092203704 -2.3317532178884375
4.17116537874625 -0.8935046714013095
4.278913995921014 0.20194599020873283
-6.1004834538251975 2.927508258116911
-4.2079013186715 1.4305183511669601
-2.581916450396499 -1.7470984052259688
-2.887512489767347 -1.6532977809985263
-1.4366168790057665 0.12693544554469205
-2.2905106254683134 -0.4955167797784624
3.3505453280997752 -0.1975000486912731
4.344553704987785 -0.9348568310347064
4.33615001912662 1.354420825403452
4.909728687408333 -2.234014568646345
-1.4637659780754513 0.5371792710383341
3.926152701853553 -0.0036482009948867085
-4.33397319663432 -2.3007733743740664
2.858188970510729 -2.087361133580997
2.4482949681823474 -1.1162222571714586
4.746196656984643 -2.0284609632639414
2.1160812553175226 -0.6692182732922051
-1.6203198427669574 0.2669551487831307
-2.819902730571977 -2.482299010070067
-3.1796187880355626 1.5879842640073003
3.81786483599157 -0.8931386685482303
2.185160915752148 -1.9000477463406389
-2.7086645943778027 -0.1494236081368263
-3.1532479316628947 -0.7412770939631811
3.7768015158178705 -1.0605264653888566
5.760359421355977 -2.157428585201342
4.261969987822563 -0.8038314168757732
1.8194130421386685 -2.175417247480177
-5.3174322361290995 1.7947566733209477
2.5658449932474654 -1.233046901058786
4.9228376795548066 -0.39700594756364727
3.938678234755226 1.314386881096106
-1.4012007802305058 0.07179843051140102
-6.98915600504696 2.3991644653875097
-5.626421569110254 2.849409720591478
-2.453636097439938 0.32359810767699015
4.14662177443065 0.7642979817109381
4.04276636877867 1.258725178431203
4.233282756240864 -0.5552148896860601
3.79513165570773 -1.0641858229640435
4.02407461404333 -0.3200345613572564
3.221678745803258 -1.0186853552679656
-3.4775466269867694 -1.7086576624633965
1.9328986099363972 -2.0575177887961487
2.761799680036545 -0.24902039926262776
4.211734166015189 -0.6217927628110075
3.6826266376502907 -0.5582667713528604
-3.908875780540292 2.149123810347781
-3.12841755694479 0.6593622419848818
5.264131849330826 -2.2292104866781304
-2.9787807760754963 -0.17099589558060185
-4.2673342132440375 0.5411732639828747
4.114878809635013 -1.0703408875729408
4.212015367268693 0.5381718934505559
-3.0423733255840273 0.015233702101751095
-3.3845835311880124 -3.7290936736818687
-1.3477523358735204 -0.032415707278439586
-3.2344854077561758 -1.9796753073928106
-2.561035532213965 -1.1180938356779504
3.6294366045288 -1.1413571533231783
-2.4216444537279607 0.190809097832793
4.1601892338729165 -1.1231064805177506
-3.010809809442339 -0.049491165738757906
-2.5059160366659627 0.019896159917990822
-3.5386550708158087 0.642407083488179
2.6347621016160327 -0.6957413543074081
2.1591100725926697 0.32590995343509327
3.3550474859714456 0.328730226871523
2.1396217773292383 0.458160933103438
-2.40706735399127 -0.6521449098252967
5.232752951022564 -2.3570268240602203
-5.369954123830737 -4.1198867246944255
-2.9141386041772686 -2.4744477963210825
3.0159441591474496 -0.4647132777427321
-4.324513003480256 1.2707511243864336
3.628895748371277 -0.9652933118990256
-3.548303607093514 0.884762574862469
3.7869575458015245 0.7055412168349948
-3.2011564302138593 -2.01980639282915
-2.3407114410389043 -0.3907941088458072
4.154250915022157 0.23774232092299857
4.353747329028291 0.520425879233803
-1.602659492700452 -0.4090878528092269
5.306835642122009 -2.3984337065863395
3.9405521280212783 0.9905896333522687
4.075543069491313 0.4618028262070909
-4.964893967280272 1.301947484189301
-5.2057591137192905 -3.8249949691145977
-3.314139804098447 -0.8169634479854437
3.821621212954616 0.9873689765280643
-6.133011543262322 2.862544625640824
-4.230009728111119 0.8902476392424421
-3.1698146020065154 0.03175940726586391
-5.696967158327358 3.6955275398565903
-5.036800039813502 2.444395898403785
-5.629276932108512 -3.7857975791776615
-4.798773894761748 0.8754420548617344
-1.955593326325784 -0.2805751750683875
1.917172421080367 -1.9275033355943414
3.278437499345759 -1.0816035267682111
-3.8886116687712797 -2.9997935006940826
-3.464369121799966 -2.9219396674688434
-5.06400050733588 1.8159824981913912
4.156700259322838 0.36372349400486925
-4.845412621454521 -4.20689665541579
-5.824870471889848 3.269087513060446
-3.655632446953199 -2.3883930774508455
-2.608258872474793 0.34965315494242083
-5.397937762220164 -3.778053140942934
3.797585789421719 0.5058464679235785
-3.212792194185369 -2.369420976950256
-1.9229134608505916 0.1961352481786804
4.8403538752999165 -1.6415090060340298
4.74549141221208 -2.1500349754774764
3.592439038571122 1.481807703752046
3.7470394671960934 -1.3101689769628897
5.508303562194268 -2.212517244975119
-6.125261961838381 2.386718223543191
-5.297546474450403 -4.36260316573866
3.750512995745569 0.8191552104748171
-1.3310737973553455 -0.11454070164816872
-3.044833168220091 -1.7398752622876148
3.8803351566669884 -0.4495767568013245
-2.1530187205078386 -0.5963960938023158
2.1382137828497285 -2.3194294216385205
4.0094699468714285 -1.1879833303655574
-3.4858482161610227 -1.21686384689096
1.948366194759238 -1.9505239291238317
-3.2438528916940186 -1.2368850943985543
-4.300478805423482 -4.16350464197437
1.592088692223267 0.6927157945000104
-6.090540522936283 3.1849867432522188
-6.265970381415338 3.0807105285859158
-4.902465962282726 -4.2124257066717865
1.1264422152418776 -1.9754672478643331
-3.505401036954023 -3.0053464092800772
4.034104992868945 -1.1227643933342766
-2.5372150935176947 -1.5641860450858356
-4.507354786425852 1.911354528986938
-2.6251432948826285 -0.002966730501592046
-5.5482276737759495 -3.627960512607464
2.026885123901957 0.33256314531841263
-3.5490894365174155 1.6299166806343068
3.6743202243220994 -0.8820607407645653
-4.298692273479987 0.6058290376712703
-4.346942115352463 -4.38630736924347
-1.4093628211899962 -0.42959970399830455
3.8071328410250294 -0.31993483574234555
3.713998169556479 -0.5378151769876093
-3.406071409954004 -2.70426740056952
-6.593092333348831 3.601385978827775
-3.8025727735229005 -2.0846133725914426
-5.614539141233422 2.98713417528196
-3.703970614525007 -0.5545793137661302
-5.132356839774225 -3.709581018462923
-2.841138811461167 -0.4140127734039962
-4.817504524385842 -4.119210566747428
-2.4105648553611023 -0.03912203903871689
-2.360812036747475 -2.1084929250241005
4.343519971658724 -1.1195525543571598
-3.779954343870673 0.984620689058859
4.298776357787603 0.2931995985629663
1.5044181164205048 0.5523516144487886
-5.057517497388859 -4.749692768104464
2.01971422134227 -0.4595778208048036
-5.997973763713707 2.496865786918212
-3.6881694584024136 1.3030046596499605
4.939883690932367 -2.0592351049714592
-5.013266862277282 2.569702597730066
4.194539291675374 -2.3636754432525797
-4.808716018114597 0.41352276979054836
-3.4978990057345962 0.4727977978271276
5.690112335477071 -1.5834410682944098
1.4793255356461064 -1.8850324275506316
-3.09330702033644 -0.36853273325814095
4.299932567286317 -1.5939236566860155
-3.1109975687993034 -1.5748192843365858
5.70699013151422 -1.9021682721567805
-4.112609670198212 -3.495945597970621
3.9150372281145587 -0.09430468369734535
-3.512336536995522 -2.877199053355586
-2.8503430641107967 -1.267799806928773
-3.645852564282078 1.6291145942758294
-3.4182209152351626 -1.3993490534455173
1.185157072088213 0.27758109685019877
-4.199125467652867 -3.2941073843043647
1.2463086436546273 -2.23192632167037
5.047240920071047 -2.433635388253946
5.1885910431614075 0.3677419335800292
3.7418131929282064 -1.084769609863236
-3.4836230167048576 -2.9973744447952693
1.230514508409533 -1.9918951355370536
3.2029734516424955 -1.0000366776037821
-2.9644299820617785 -0.3598051704521521
1.5172210610673593 -1.5462938940340243
3.5047337857884218 -1.3302934460015914
-3.590311759384104 -3.089555541831746
-2.428765195387747 0.5464908213376891
3.5239255278613375 1.050067039683797
1.8414584907622598 -0.1888714273138423
-6.022005926750616 2.801659038109569
2.174710258908573 1.0747867557340596
2.696680972086609 -1.3182040669798574
-2.4727361982152973 -0.10075855408224964
3.8349358267642986 -1.3384198428203637
-2.98076719024646 -1.9414305005932533
2.1853464341269033 -0.18857447286222853
-3.155757773113621 0.007863292639672696
2.3851422642356246 0.2405912097580913
2.277027369894488 -1.1268689402699703
1.8513334276273479 -0.10937057963151196
2.239154257223886 -0.13296146108970863
-4.3524856165785035 1.6438389418855377
3.724026137138819 -1.5397438967104282
3.0391685164458813 -1.0822045709793162
2.85594441547733 1.024920826278796
-4.218520900572252 -2.6321003900264683
-3.709460672046455 1.1628716045602814
-2.9588008019829894 0.17978792762551987
-6.090671290340338 3.649463246671889
5.181013244404091 -2.1740658997332396
-4.892713498860042 -4.385294037175726
4.465694629489139 0.26036656467521035
-4.800192407492783 -4.317206963967825
1.82548010970358 -2.850345149459502
-4.028026961406998 0.6620502029127544
-3.767450989570008 -3.689876042875729
-1.355415406152586 -0.07875690320447282
-4.293583351303461 -3.408303431840692
-2.036870897199119 -0.0038953505412383455
1.9850851493545907 -2.227155318822346
2.001084189830888 -0.61629755112316
-3.653788223868221 0.33352609313779746
-2.842653597116704 -0.933330617823974
-3.2960328168093023 -1.6561172571662308
-3.0019399538425633 -2.714814309758079
-4.321197275303044 2.052895741494371
-5.718737587589837 2.8940731439430927
5.395788813171245 -2.059783807946517
4.900013886368936 -1.69358616217823
-4.025670262400127 -2.300838335095594
4.208061955062079 -0.6109915648668778
5.597844080492565 -1.4026734001429235
-4.15153759425523 -3.496401470194947
-4.502933130712039 -3.418323391951069
-4.111704602934554 -3.5671580835028616
-5.845779999765213 3.1939753173522005
3.8047284691787855 0.04317675372325357
4.705677146892183 -1.9851523056261093
-3.2337705727815287 -1.5653357624124267
-1.8417623999765886 0.04007408538628234
-2.502107489518438 -0.4187533452958385
-4.1101565952234065 1.0356976173251466
-5.313754258464817 1.3886255834453833
1.6223991858514952 -0.35665748707711115
-3.012849251455268 -0.6549842225657121
-2.5314371934955355 0.5515979263855287
1.6298180914990137 -2.4440923076561827
-3.292599901577835 -0.6352163157626277
-4.888123474213932 1.902357820974688
-5.914499968829881 2.8619019299614004
-4.595279236017059 2.0221084492666783
-5.218718368948347 1.6968933863254647
1.9002690231011887 -2.2594647099357594
-1.9865711868127578 -0.13034521452291
-6.122037927158562 2.5261520085555067
-2.148145401790232 0.05407184932498239
-5.096563318410394 1.767411020995846
-5.293554812262346 2.4302705581639397
-5.809835782285546 1.7312657043090616
-3.831300181458891 -2.751674478962516
4.879847140346219 -0.5400414258844211
3.6237431159269713 -0.9985620569018181
-4.002152193374973 -3.193873920905619
1.5862816430812947 -0.32627543406460247
-2.2910220367398484 0.19205195924182344
-1.8417998432097276 0.37762912351271916
5.191958500000548 -2.261626943273822
2.2704786417628102 -0.5280100154152466
4.464425816230888 0.43383807215115955
3.2598365586033338 -1.1409765460092156
5.375547013171928 -1.8080580399944524
3.452918521918853 -0.8129587959884126
3.7851417094823914 -0.9022870788720097
-5.292548120524718 2.1477547154558727
-2.322539020577392 -1.5535160488121762
-2.7758016982302833 -2.4878240850988256
3.6978179133490237 -1.333094637645834
2.7180007057167987 -1.0652479689487926
2.3203516889963405 -2.5147882362145197
-5.213824641071941 -3.875560818229323
-3.7613419952547122 -2.4010734473703437
1.6900196438585529 -2.044863809653794
-3.533320030717249 -0.11235397699999145
-4.477223925594171 -3.8322172327632016
-4.961782537745095 -3.672280063836661
-3.3328847245275064 -2.7035734768704947
-5.314840540942018 2.2739256015619715
-3.8515943733204017 1.2357605441797563
3.4648928826117733 1.4148583301062732
1.7764788302050092 0.05980267794433917
2.496648832840292 -1.5787074081433243
-3.8848530265008887 -2.0908766495518853
3.392701105550626 1.261424345703378
1.529556648789895 0.15929098502965677
-5.119910766763482 2.9543138695197464
-2.693089831152521 -1.6570633899164862
4.191582666208943 0.3558206726934863
4.436898873697231 -1.290383209694206
-2.3915304934001065 0.4369034874489388
-6.155440570318293 2.711555226914739
4.896765346906635 -2.487345347638254
-5.751749336521715 -4.403944750881846
-2.638648091430373 0.13614689990511586
2.335808215514831 -2.335708381071464
4.163687866296697 1.0154693508630763
3.2508379225881012 -0.9592740393293151
5.0607111818661465 -1.6600309608164396
-5.508221776306618 2.4253019830643177
2.2120040284245 -1.9421755167968286
-5.1047892637725765 -4.215131794429691
-3.483060432643418 -2.984080311840501
-2.9119478429725767 -1.06569382238291
-2.982542206160158 -1.3681026267412575
-4.684472404733233 -4.217361187977622
4.127328100106232 0.16782585848899056
4.218295704963174 0.8734188551686255
-2.332295318921316 -0.4977263462923544
-5.0645980726179705 2.3235483406297313
-5.628194096414227 2.43794220584149
1.3674305279762504 0.41805237779836163
3.0338774005247457 -0.6345561963184652
2.0249252657552144 -2.090433178760456
1.5968439887145676 -0.044199923508739566
1.3599080115615436 -0.5938777082742471
-1.6492146474593827 -0.1331700219374836
-3.4945805144761035 1.248678204263985
-3.11900592105846 -0.5461816195473292
3.1944872271038003 0.9456749865766442
1.4747205577455857 -2.6550954301337324
2.4804410654499325 -1.9506138801421693
3.89787871317799 -0.08420315414449932
4.639004275258371 0.13349242881642187
-4.006618012386627 -3.2184177117528954
4.139833691236712 0.43375597538773203
-4.579771122864606 -4.296599106520199
1.7785195309440671 -1.8837534147511448
-5.169673272444528 -3.700983458359861
-4.577201453886267 2.0311340990353806
4.063119330760536 -0.09941618277593667
-4.006962313669489 -3.2085351317621083
-5.389916503009044 -3.372567593367891
-2.916991116641643 -1.6437285839403717
20.83429773440957 0.694493682622072
20.098956460307814 0.8854398573641508
3.883861215379355 -0.24161671631885773
1.0693697479361215 1.0629673220942162
22.095424544000917 -0.4639454498625668
26.158939880310292 0.22067870602248807
3.5368994463362666 -0.41113334163474746
21.726392939850108 0.14008079283329145
21.11122600395424 0.203870848013197
-0.013674281101709899 0.05088843607847152
21.888206869466433 0.11986546548801547
2.577602292838498 0.12262723068204773
23.158655484233318 -0.6263869348906874
0.2447480047975067 0.3964231437098681
2.6763312877533396 0.11207645002794969
25.033959663226316 -0.5535919044024724
2.0547883889595644 0.9609356696098383
20.36670559820667 0.423691059766945
19.89329235954142 1.3527890066759356
1.991789961169746 0.6616263942598934
20.814920494531375 0.4419692803143931
23.866091345640946 -1.4785030246317166
24.938994002474473 -0.3172614528198747
23.891569022679672 -0.8023767586772672
6.194757421913639 -0.4685878858447623
20.591111921145917 0.7566531287484183
4.489552420132353 -0.6142658711140216
1.542660816484711 0.8236969260716055
22.6875176956155 -0.8967800651023733
5.943992003814864 -0.03575382858876586
25.088679225862478 -0.26730885369793733
4.540617315545343 -0.9147625265179757
24.186795727688132 -0.7079799704193447
4.321013024862587 -0.6245311983209028
21.238640770626265 0.4055658680689134
24.439670423298004 -1.029946872905146
0.2430179497362011 0.2786981200241138
22.10545534958582 -0.13861658746450395
0.4500767547944271 1.0159913392362334
-0.5964548660209681 0.15062238074988618
5.088215281046005 -1.4986412012386365
1.4804655250801708 1.3585170201868138
20.96779695566681 0.8305264869466734
3.390951906877559 0.3171727538683225
1.7587769491126837 1.0544571259679887
24.80066712235592 -0.13606878729976424
23.85065578241702 -1.1065199678590079
4.444820167851026 -1.0006006815007886
5.162260519676882 -1.4747044172513566
1.965632552128066 0.4505272194076454
3.7525197004748523 -0.4474071063605094
24.424673786426293 -0.8537253658789452
2.8311861619948018 0.10678680126844275
6.034929907730389 -0.24953081733222818
4.782732196292876 -0.9271216648385311
5.386037131431305 -0.2983760525808527
21.04681967682199 0.8957574811413684
0.12485394934103822 0.7101146000011825
4.299496970592775 -0.9472159095710426
5.558917144538523 -0.5219880049171023
24.40709971207831 -1.1368077548684101
23.82801297504117 -0.7748090978488498
22.70296240650992 0.1013050663581141
24.609512072113453 -0.3668950176081826
24.15173358551539 -0.6573498584455049
25.598874169112452 0.5393065841857938
25.275883898804903 -0.1171545862300746
4.125745125653054 -0.049645598386708234
20.96511402286401 0.8129733262462893
21.874147994319554 0.14127533320005223
2.485585991729154 0.9288210827777402
1.0325393985283435 1.1278126812547902
24.367957782823936 -1.21898192291199
25.78259413772266 0.18181411198907022
22.561442908960984 -0.32606776280611743
20.55769632997181 1.0159603416047294
24.673712307197732 -0.4599272571629192
2.4747111607154864 0.17288116285037253
1.1203442916563489 0.975099089038222
5.035049809596015 -0.3258083127300525
0.8689587062749012 0.30295757458495226
22.756059189536572 -0.5055097862081493
0.5648505327251407 0.9741450167384348
-0.5691753126828714 -0.2218870258808221
25.0006708636781 0.12883396025840566
3.1472692008610634 -0.42895940552408074
4.873812376147672 -0.3281239762204131
22.625569930743076 -0.9198309036458429
1.9922909826369497 1.1260394471925619
2.4701069360838366 0.7606943081917362
21.28114098852733 0.2638027087888708
24.43470961668046 -0.9697133109304408
2.4146679589079225 -0.07936324245899196
4.96132438166817 -0.6499552024749493
24.101750780360558 -0.36846679674505356
5.315481957873746 -1.1562844939936174
3.709774263601375 -0.39828302491779904
3.031030783886775 -0.22276938393124346
1.4587491964140813 0.7834700619872867
4.396090636631648 -0.8083523473532551
22.002582765964213 -0.4846490951559588
5.210852939546748 -0.9604975911000664
2.5518655728202497 -0.3796048568916963
5.544511326478496 -0.4337563676071279
3.606546443843551 -0.9012570802966184
2.510079422809254 0.6146349779052247
1.6739755936000575 1.5392310316702176
5.543002007342108 -0.5093001548418805
1.5571486621098212 1.5006263925295484
4.102768405797266 -0.6142568721594605
25.220974214228082 0.25580031646157714
21.43717776156827 -0.0058623070645602154
0.09438562211941229 -0.002195845072312075
22.982258126200616 -0.5809342880202886
5.359193542483935 -0.6493240806803858
2.9833134210744436 0.01809873924090389
21.540600202756274 0.5278441843354785
4.73981722862307 -1.0884225532171659
3.863533589357683 -0.7961630925618591
3.9899988103186166 -0.6183256438911654
21.106615432944228 1.7095144149334778
3.7935117935972364 -0.3239599441038146
2.0898500601257006 0.7722268740683484
1.4769929785910458 1.0322511438076682
25.16050966075489 -0.6380670001295937
3.6612075978004617 -1.0589694750681091
5.658091868339146 -0.33615227233587647
4.116305158335321 -0.14380030003404853
24.4896538123247 -0.3591365076289443
0.9046520217528847 1.408564871333724
20.16227978868541 0.30939539717447617
24.42913816800952 -0.480103867980155
25.81810768991573 0.7197473132165544
21.744215172230415 -0.17088584818373198
20.529490025341143 1.0491787058334232
0.9059503756020557 0.5885659226968674
20.052101605651593 1.253833054701796
3.0814895777525653 -0.8734335948472297
6.083048246435159 -0.23899974818161637
20.861600694052953 0.7950973688310075
3.043845509493246 0.4256915061769915
0.2408265600907863 0.22848938037378463
5.264949849391475 -0.3698122775319037
2.0387963676295078 0.9563736975950439
2.955005500829939 -0.3800061310387969
5.237266103279369 -0.7691287620902019
2.918806871424179 0.49620523205071504
24.538851832990282 -0.18370101140027723
22.72212471598744 -0.7520536305479997
5.444830546931638 -0.7815900948033226
0.5582993030590155 0.4271415333891161
0.6034929750734643 0.6368501661503934
24.01376301270195 -1.1009547470460785
25.6571246977715 0.3702766766126064
24.209532470567627 -0.5932439229791779
25.99665296553646 0.299209674972573
25.641558386137717 0.42929437449909696
24.339113385353254 -0.11588663961675694
24.360101738526087 -0.5714584122506562
4.294847304452963 -0.7140595156716439
25.777412491732886 0.5098900633653731
25.20607860403045 0.004681226363427382
5.341986224523991 -0.7150382932291888
4.300913149045474 -1.5036185053676987
24.170934705571756 -0.6215333270035758
1.9980060284220884 0.7198191777095854
6.185641850725991 0.013032216823289478
25.208103572372806 0.32436485550583
20.44085799365057 1.3172290492018663
23.138919289513904 -0.5038743643412251
0.750270417352064 0.5577003959330462
23.03935266773026 -1.5256715437470887
24.49627258304671 -0.6008510756585344
25.060580041324094 -0.1937314076653275
1.5828633389224094 1.1786110672164447
24.997407855753206 0.3659113482153701
0.5504233388450507 -0.14637764277115428
3.5034432446156956 -0.8850755295561025
23.16126758652893 -0.5871274574735952
1.5003460140934477 0.9585516115837276
22.44841511564462 -0.28596764169719935
2.5116279160256525 0.5653467314570445
2.955028191584515 0.3212959869993182
22.154041644788563 0.1617099010874391
21.453517124773935 -0.3175603475551677
1.4512682400817456 1.0519005000177413
25.932863011745482 0.04935706028648296
22.62214102838304 -0.9126681091258784
22.949001735058424 -1.005032331688731
1.3056340223094984 0.14590086390263513
0.03128731958047266 0.2290682325198294
1.4235490891732283 0.8970360890823705
26.87293845122531 0.766770030534579
20.58988531563066 1.1361677013445486
20.941806095528882 0.7883159718322991
25.301244334018627 -0.3408254506555824
2.3405132862658835 0.9082755555330075
4.076788392288212 -0.33382936333308755
23.278026947566676 -0.9834998884522875
4.7392595620796545 -0.8766710648460636
23.702050670574444 -0.6153370836545995
20.578026822378405 0.8445975872751086
0.7374458640600227 0.44637297041989915
2.953910539111946 0.19841861054502688
20.763587342780312 1.072478092986207
24.656541973236585 -0.5711092823072055
21.33142918432307 1.227261916762308
3.852289805209146 -1.003243528855137
0.3705577120545826 0.4016430216080938
24.491374920508182 -0.2859268997402574
0.9985369114159006 0.48497929441377846
20.09096935203572 1.3387251536810474
25.86403619033109 0.801984860897819
23.08501598018659 -0.7998878647720007
3.6417594930445603 -0.029434416113834516
25.435080294237327 0.653144402123965
5.542010307744784 -0.7176296648910155
20.668634144162866 0.7920454773931047
1.2052965796413797 1.1755661497534562
3.323949477388565 0.22924874575705542
2.3901613173097767 -0.08641696924943237
4.6428583891754585 -0.2657709401043372
0.35630190344383456 -0.17669441545101036
-0.4769518367377148 0.013328785851370546
23.762527716604744 -0.8372907920981674
24.05411342309941 -0.34893379603314756
22.262573832023058 -0.5815080983222402
24.983676758813647 0.22648368667398894
2.5003923193849733 0.37623527253170563
5.5622855931244795 -1.020027656490855
25.234831250729705 -0.6650740437733957
25.958804703478318 0.6217447001627917
21.915096485959953 -0.029591478887084424
1.091357388367248 1.1786984638128386
21.78091036111721 -0.5099030057517371
22.299250206498407 -0.22358161040218905
21.212362053897614 0.7279158141259772
2.077453981540729 1.220499665029929
20.666129086850738 0.9995122287780764
23.769115760316954 -1.273007343751809
4.667403544996742 -1.2318412069350895
4.681873451219125 -1.5972633784766914
0.48512769346641216 0.5299124448250642
24.97821360345991 -0.023845065774323347
4.53599829096763 -0.41869422325451067
23.8324661003776 -0.48438142570901077
2.840818292574893 0.5925036703057923
2.302079775268779 0.6777671287884883
2.2528098115561788 1.2131325077050477
1.5469082181973417 1.409205574316448
0.7724686399521358 0.9349291583024798
23.04890034061636 -1.2956833087112574
26.06832066396212 0.5354967238659922
5.114402517444722 -0.3072534470392103
4.380976003080931 -0.9619191970146922
0.5374855158271457 0.44192620170295743
1.434440348435667 1.035925633980302
2.4787714477814964 1.0205987369430012
21.48132886241951 0.08079435563278281
1.7580037716506196 0.7889451391822846
1.2893621107351931 0.7925088636900814
22.679250303571752 -0.801417112809489
1.3037061927830103 0.8099659514655941
23.706057451301575 -0.8795651901975948
20.784764462692642 0.5585913117146988
25.319153960787183 0.09979167151633764
1.1838070274781727 0.8333732787318291
20.270690084132 1.0933976713454465
2.426826779329945 0.5396290130008239
3.3555483107884947 -0.27077843566902127
24.087635168527655 -0.6455299687681073
21.08203889882346 0.5474969495034799
22.33384312669065 -0.3495151443887259
6.1070911063629545 0.18466097336320897
0.4842048573494834 0.9470098732416683
3.99169069358154 -0.767880301730039
2.418269875971892 0.6313467429276842
2.6308920522091155 0.86086284704787
4.470831071105245 -1.2452385366052883
20.873785614555864 1.1150131557551115
25.46706964419417 0.7194413572125529
0.9102365840014771 -0.11923925766526433
1.475095300348429 1.3224337169386842
3.5699220567762593 -0.8561496780991357
5.734527677136065 -0.58597865659457
23.129516658081645 -0.7719097497536175
0.6615055435397383 0.7067371474637668
1.8304941257667762 0.9641807669897657
2.5476919119858175 0.1603264069953822
20.642486856859126 1.078669772590278
23.150092335724025 -0.7930085020371354
4.816056458239551 -1.5273748717731395
22.62166125843328 -0.6247372841194485
23.250669344876652 -0.8127359732583515
4.437385959922482 -0.768956612443439
21.891055163549783 0.0361588009671927
3.832801688147655 -0.1919469161565821
3.075775837873124 -0.16414982666694006
5.5103010518251665 0.0834970374726634
5.506364218298906 -0.6623392080494825
20.846572500588074 0.6877343051009572
2.188954720746029 0.7453892877983895
23.165431056664982 -1.0582881009286988
19.81133404096862 0.6224981605258431
23.687545688786688 -1.3064779034058929
1.2777038750592449 1.3967355030211293
22.83904606429135 -0.5422917313371476
1.4378920458096642 0.8630958887797342
25.409381989020403 0.2863649885129767
22.79237317072415 -0.903684760694412
22.821032217337258 -0.8270115507007361
5.970225257446046 -0.17334934280082007
2.064925523781169 1.270881902229895
22.746100498241173 -1.0734118392622745
24.686259400262394 -0.2333192594087061
25.567656563358483 0.2443130213077644
23.17695477825519 -1.0455924291156244
5.51332726406909 0.2394727769764442
23.536165830242386 -0.7252748548586674
21.884090229257787 0.22848568093929575
2.758563659045204 -0.15651760814759288
24.660002957438348 -0.5361645268052848
2.939578448484306 0.3812530337697864
5.48433486239444 -0.6757690034076684
4.629785576475181 -1.5058837567775953
2.378567228533078 0.9309532826354379
5.861177808249073 -0.21077915412725845
0.5233328507892334 0.065502262286174
3.569631469429279 -0.5460163923236706
24.272493370043662 -1.0960411059665227
3.650877398920685 -0.7921302818136814
5.772291757220919 -0.6747051593774903
0.3198809049748521 0.6787860177196204
25.03390642950521 0.03140924146109332
5.255578238506273 -1.3096037500096145
22.19301852571177 0.4907554600277357
23.406339536686446 -0.872905813717393
20.09922405648397 1.3054678743421952
2.667031506848553 0.1023480838102874
21.50337010688588 0.9638108250524033
3.6275399852852277 -0.2650502326270928
22.04361266293159 -0.4292405071960489
26.011178069388123 1.1999432581696028
1.986527683907821 0.9848849685319427
25.978565145921262 0.5567116489535419
25.71906670105937 0.447049283779104
-0.13023167010803177 -0.3085608469361781
5.143749972689668 -1.0298152150798379
20.627648783890944 0.5122824889738332
25.659348556616408 0.8046679781792435
3.523475867366672 -0.2592862733347385
5.493245985730363 -0.4094013489768571
5.073917249616134 -1.3465963435096744
24.66990747191409 -0.3145004939253544
22.063237931322814 0.44719750160526245
21.06672829619099 0.5686138321231304
0.48888193725702844 0.6496619334160332
2.1849860484229002 0.6281121742202265
21.99837560217681 -0.15574909498663242
1.4866495932153037 1.1456791498375356
26.083459069018964 1.198833701785797
21.525622955759935 0.09992836526899684
0.4005769816513316 0.40704933991068604
20.946275948554167 1.181334001277507
4.187856491140611 -0.7909100246015206
21.02673767230925 0.9713016660838241
20.532335057146778 1.0838113941128837
2.2416873678475158 1.2726119115143977
4.643500250983914 -1.3567418645329796
2.9473496339053566 0.30549267289698856
2.4819040391311136 0.7458567545143278
1.8805565559011101 1.1868063111428357
21.286272219445625 1.1690217656802844
22.917807765971503 -0.8865272995009364
21.47699714689372 0.005568889002499466
19.95497818306448 1.167548968549173
-0.00639832509505756 -0.38516230865047435
23.956554654120673 -0.8899915666453883
23.65874415650739 -0.9471982628869681
24.937187992227695 0.7759566073712637
21.097655828063672 0.5409524413854769
23.454114881591334 -0.7865586015778742
25.18138838585984 -0.11054474262883965
-0.18792605627842748 -0.0768421838246395
19.928437335799977 1.3685390543368128
22.854451782555326 -0.8059124227335001
22.48929395853194 -0.7189797901062497
5.985594852560307 -0.6014155446651787
22.04402913683179 0.1852233927732318
23.325011999679624 -0.8549153904921081
5.0940474457596805 -0.9819777184233209
2.1491696515107366 0.8560569047249259
5.35504489546051 -1.1616740063819209
20.196125967556817 1.0509708402610665
4.4169547195595324 -0.5038883311667166
3.8917470069087567 0.228764173949779
0.6538730298027136 1.0486575979237063
19.748005925109275 0.7606738942819629
0.2822755728674052 -0.011200458706110472
5.539456788609784 -1.0728112963841228
20.500639785194455 1.175971142322917
22.11615448589374 1.1003372911663347
22.114127024626896 -0.3478189786729358
24.59585014502117 -0.9166109781915295
21.666521201678506 0.00221455117022315
3.172538937820156 0.16122668721518382
23.564119776706857 -0.6037592987140854
23.263375585301382 -0.7582438145263848
4.122685893228632 -0.641452511937427
21.693428087409377 0.3228229906005262
24.202633418781595 -1.0974418322433566
22.2574552070063 -0.5498849790935909
2.143760841574794 0.49592216661179966
2.7070035384886193 0.35992441452886104
4.774672990179053 -0.8009841595167911
25.62378412210664 0.1652212566749188
0.8925589335903927 0.845189412476093
22.026105713612807 -0.13368097470040205
23.278970290438274 -0.7414237293561649
4.243843535295762 -1.0886185848403356
23.687406382416345 -1.4366025242305525
5.250536300813681 -1.0338422812802184
0.4939820448057104 0.5872090273735117
25.20700095812629 1.1989164425054026
19.867557706752784 0.9346225053920808
23.438597911828474 -1.1409130250986577
0.8567581428277072 0.7517246807584119
6.16617447282307 -0.3939286112727012
25.30711261643739 0.7017448644272819
23.541060017825682 -0.6533050023926411
20.863606492529644 0.6594809860166502
4.986759946542963 -0.9060568690184528
4.562196806594363 -1.066852311164104
4.107793673089619 -0.3866654885015245
4.392162011886899 -0.6968025447328619
26.133340145955916 0.7543742996501382
22.737508307852085 -0.7130370954754901
21.114904997756078 0.37427691176650396
26.32219534613641 0.35416328469382474
20.588074873534676 0.547507464672766
23.33070183816124 -1.3037143050424231
5.169019216121725 -1.2021730223817824
20.31121856490113 1.0744979964782344
23.176626681703166 -0.949800120772643
4.619986503700636 -1.2488919573646808
3.907553273668432 -1.0665771829772877
2.0811392198626897 0.8868230488298047
24.29200312944809 -1.1489811640720946
5.309908695218458 -0.614510171214664
25.500278410002856 0.7823605487954468
23.918756993189174 -0.8595950854483919
21.85639838605021 -0.16493602217502437
2.049704358606403 0.42989656373917606
0.8817473959237274 0.6737128497769734
2.9391942556184696 -0.07103695815185573
21.694321746580354 0.8013559374900827
1.7753816534223619 0.5469068475269344
3.370331674994159 0.19903278495095791
22.144090361644047 0.15616080867169813
24.436207779329244 -0.7020911114172681
23.3146346384509 -0.7445792054707601
22.635429150704446 -0.029234072225033325
26.07968477047063 0.9046668637890471
20.7054506810445 0.41640514070238627
5.710644240913976 -0.6562779016190636
20.386759607086372 0.604177658279921
0.7687261120150946 0.46999378458273716
-0.24623100723263244 0.35780324549196757
0.5328843923173187 0.4863483134251766
0.12683100105133424 0.5200116923026871
21.761960674701754 0.3486803293788941
2.3707442044705553 0.5752168165758091
1.422368126116139 0.974040803069967
20.39487194221996 1.1924856512741404
6.067923432951087 -0.223424880898684
20.283243967196483 1.2953733470977313
19.723776211666934 0.31537561362052213
25.934283449964113 0.9487472269439838
-0.20788647189851786 0.17193954535087014
3.9150987744492283 -0.808318995513601
3.79537455236125 -0.6393683984167047
3.1412764284127968 -0.5626377035234728
3.7746532218935878 -0.5596747586054073
21.653497781307426 0.3288135250175631
4.790436080201913 -0.8004016143370871
2.6764865634722046 0.8471810118093854
5.104591663678828 -1.0110445651824511
0.7611117248337504 0.6569332752897616
24.37127558144051 0.10999143835184888
22.67054107311777 -0.6943081528837667
2.9896953397702175 0.5118193004587018
5.2862066229483125 -1.0390282277778393
23.55716980663432 -1.0834371332542505
1.9846031327128364 1.4941183508648517
4.796690335259824 -0.9877306954326239
3.504294612089291 -0.4446894763081094
1.3009430332878724 0.29848026705668085
2.2901103446125983 1.2634033760550083
-0.14622988391571512 0.37192275548897685
20.74205225495806 1.0815556336696415
from sklearn.datasets import make_blobs
from matplotlib import pyplot as plt
import numpy as np
def distance(ix, iy):
return np.linalg.norm(x_map[ix] - x_map[iy])
def is_cluster(ix):
return yy[ix] > 0
def is_noisy(ix):
return yy[ix] == -1
def check_eps(ix, eps):
'''
查找编号为ix的对象在eps范围内的点,方式为线性遍历,可以考虑使用KD树方法优化搜索。
@return 返回 (count,ix_list)
'''
ix_list = []
for iy in x_map.keys():
# if ix == iy:
# continue
if distance(ix, iy) <= eps:
ix_list.append(iy)
return len(ix_list), ix_list
def label_ix(ix, clust_id):
yy[ix] = clust_id
def debug(*arg):
if look:
print(arg)
def run():
for ix, x in x_map.items():
debug(f"{ix},位置{x}")
if is_noisy(ix):
debug("\t是噪音")
continue
elif is_cluster(ix):
debug(f"\t已经被聚类为{yy[ix]}")
continue
else:
count, ix_list = check_eps(ix, eps)
if count < min_pt:
debug(f"\t直接可达只有{count}个,小于{min_pt}")
label_ix(ix, -1)
else:
debug(f"\t直接可达:{ix_list}")
C = len(cluset) + 1
label_ix(ix, C)
cluset.add(C)
while len(ix_list) != 0:
iq = ix_list.pop(0)
if yy[iq] == -1:
label_ix(iq,C)
if yy[iq] != 0:
continue
label_ix(iq, C)
count, iq_list = check_eps(iq, eps)
debug(f"\t{iq},位置{x_map[iq]},间接可达:{iq_list}")
if count >= min_pt:
ix_list += iq_list
plt.scatter(X[:, 0], X[:, 1], c=yy, s=11, marker='o')
plt.show()
#数据一
# X = np.stack([np.array([1,0]),
# np.array([4,0]),
# np.array([0,1]),
# np.array([1,1]),
# np.array([2,1]),
# np.array([3,1]),
# np.array([4,1]),
# np.array([5,1]),
# np.array([0,2]),
# np.array([1,2]),
# np.array([4,2]),
# np.array([1,3])])
# eps = 1
# min_pt =4
## 数据2
# X,_=make_blobs(n_samples=200,n_features=2,centers=[[2,-2],[-2,0],[2,2]],cluster_std=[0.4,0.5,0.5])
# eps = 1
# min_pt = 15
### 数据3
X = np.genfromtxt("a.csv",delimiter=",")
eps = 0.5
min_pt = 5
### 数据4
# X = np.genfromtxt("b.csv",delimiter=",")
# eps = 3
# min_pt = 2
cluset = set() # 已有的簇的编号
x_map = {i: x for i, x in enumerate(X)}
yy = [0] * len(X) # 标签,默认均为未处理,设定-1 为噪声,1以上为建立的族
look = False
run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment