db_clustering 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd346d3f3511320811d7fb97312e590947728903
4
- data.tar.gz: 1f9a47c7dfbdffb8ecba30c0c8b4e7ec30f1a895
3
+ metadata.gz: f9174e0f67fcea91843ba237b2cbb1e214558c8f
4
+ data.tar.gz: 01b85e27ed68fc16581c23324a155064d3b6139f
5
5
  SHA512:
6
- metadata.gz: bb79a9eba3cecb5a72b1156df2d189f03bc91ae73d620bd3a2b289a9d596fc2e56325e1f1b81c3dfdabb062c6186a36df637dc6f3dd30dde715d775d48b37873
7
- data.tar.gz: a5f2065ad7a8c8d1d28cb29d90c33955d6fd6c69397cfd4f456ad3ac20580e0d011cb4958dd56030aa5aaa1f1149b5a9f9f36d8c97e4131234329ffa32c3073c
6
+ metadata.gz: 5fec9b5ba8dcbb1f4f0ad6668ffcb752bbdd5b691b4263608d0854a7b4036f5a223396539d4fbb7a36c4c085067a47fb860c9701ff580e5d2e81b7f964bf276d
7
+ data.tar.gz: 0fae1b29b2f0feece92f5cc9286eb3376d89cbb9bec71ef94e66a897dce7c554449c2dde60152a6d2334e34d0708559eb0777c8b4d85930c68c7330dc421886d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.9
1
+ 0.1.10
@@ -21,25 +21,29 @@ module DbClustering
21
21
 
22
22
  if neighbors.count < min_neighbors
23
23
  point.is_noise = true
24
- else
25
- if point.cluster.nil?
26
- cluster = DbClustering::Models::Cluster.new
27
- @clusters << cluster
28
- else
29
- cluster = point.cluster
30
- end
31
-
32
- neighbors.each do |neighbor|
33
- if neighbor.cluster.nil?
34
- cluster.add(neighbor)
35
- end
36
- end
24
+ elsif point.cluster.nil?
25
+ cluster = DbClustering::Models::Cluster.new
26
+ @clusters << cluster
27
+ cluster.add(point)
28
+
29
+ expand_cluster(point, neighbors, max_distance)
37
30
  end
38
31
 
39
32
  yield(point, current_index, points_count) if block_given?
40
33
  end
41
34
  end
42
35
 
36
+ def expand_cluster(point, neighbors, max_distance)
37
+ neighbors.each do |neighbor|
38
+ if neighbor.cluster.nil?
39
+ point.cluster.add(neighbor)
40
+
41
+ neighbors = @datasource.neighbors(point: point, distance_metric: @distance_metric, max_distance: max_distance)
42
+ expand_cluster(neighbor, neighbors, max_distance)
43
+ end
44
+ end
45
+ end
46
+
43
47
  end
44
48
  end
45
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: db_clustering
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cihat Gündüz