dbscan 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dbscan.rb +18 -4
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 34c666c340e0836c87ec540d6134017dd1194f92
4
- data.tar.gz: 0df92c8c2794eaf3b1486a12d7c73830929179b4
3
+ metadata.gz: 960f9f6d9750a347f7c2ece2c3b1ece730658141
4
+ data.tar.gz: 36d01814a661998941336443575657599db1777a
5
5
  SHA512:
6
- metadata.gz: 067ebff05da42bd0341817dffa4d55430d390636f1fc2a7e4010679335d63443822f8cadc59572034e06e8b91a6c72d19d3079a7eaabc2a1a43d7bf3fd10552b
7
- data.tar.gz: a8a864c43506836469c89d0034cc6fab70a1f959eb79e4defab911fa5f5459b6d871c1ccc899d584078dcab7ca281b5ab01c03b9b104543d072e916627c63d5c
6
+ metadata.gz: 1f652bea308235f5c6c0cb2bfa5abd5f56a755d4bf335af9ba98a517852949177302696b259b98b349a20c63d7fa7ca6a1596879899b17b816a614bbb27a8bc3
7
+ data.tar.gz: f7ba98fda5c62aa16e5ba7c1052969ca553d8a13aa653cd7a824353ca6a032e6f53937fe98360ad7f8dbe1f30ea113888f3b67f794a998fc6375829478fe0fea
@@ -17,7 +17,10 @@ module DBSCAN
17
17
 
18
18
  def initialize( points, options = {} )
19
19
  options[:distance] = :euclidean_distance if !options[:distance]
20
- @points, @options, @clusters = points.map { |e| Point.new(e) }, options, {-1 => []}
20
+ options[:labels] = [] if !options[:labels]
21
+
22
+ c = 0
23
+ @points, @options, @clusters = points.map { |e| po = Point.new(e, options[:labels][c] ); c +=1; po }, options, {-1 => []}
21
24
 
22
25
  clusterize!
23
26
  end
@@ -47,6 +50,17 @@ module DBSCAN
47
50
  hash
48
51
  end
49
52
 
53
+ def labeled_results
54
+ hash = {}
55
+ @clusters.each do |cluster_index, elements|
56
+ hash.store( cluster_index, [] )
57
+ elements.each do |e|
58
+ hash[cluster_index].push( e.label )
59
+ end
60
+ end
61
+ hash
62
+ end
63
+
50
64
  def inmediate_neighbors( point )
51
65
  neighbors = []
52
66
  @points.each do |p|
@@ -85,11 +99,11 @@ module DBSCAN
85
99
  end
86
100
 
87
101
  class Point
88
- attr_accessor :items, :cluster, :visited
102
+ attr_accessor :items, :cluster, :visited, :label
89
103
  define_method(:visited?) { @visited }
90
104
  define_method(:visit!) { @visited = true }
91
- def initialize( point )
92
- @items, @cluster, @visited = point, nil, false
105
+ def initialize( point, label )
106
+ @items, @cluster, @visited, @label = point, nil, false, label
93
107
  end
94
108
  end
95
109
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dbscan
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matias Insaurralde
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-08 00:00:00.000000000 Z
12
+ date: 2013-09-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: distance_measures