db_clustering 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +15 -11
  5. data/Gemfile.lock +149 -0
  6. data/LICENSE.txt +1 -1
  7. data/README.md +90 -0
  8. data/Rakefile +6 -6
  9. data/VERSION +1 -0
  10. data/lib/algorithms/density_based/dbscan.rb +48 -0
  11. data/lib/datasource_adapters/active_record.rb +32 -0
  12. data/lib/datasource_adapters/in_memory.rb +29 -0
  13. data/lib/db_clustering.rb +34 -0
  14. data/lib/distance_metrics/average_difference.rb +28 -0
  15. data/lib/distance_metrics/cosine_similarity.rb +43 -0
  16. data/lib/distance_metrics/euclidean_distance.rb +32 -0
  17. data/lib/distance_metrics/pearson_correlation.rb +44 -0
  18. data/lib/generators/datasource/active_record.rb +0 -0
  19. data/lib/models/cluster.rb +18 -0
  20. data/lib/models/point.rb +41 -0
  21. data/lib/models/vector.rb +30 -0
  22. data/spec/algorithms/density_based/dbscan_spec.rb +57 -0
  23. data/spec/datasource_adapters/active_record_spec.rb +0 -0
  24. data/spec/datasource_adapters/in_memory_spec.rb +82 -0
  25. data/spec/distance_metrics/average_difference_spec.rb +44 -0
  26. data/spec/distance_metrics/cosine_similarity_spec.rb +172 -0
  27. data/spec/distance_metrics/euclidean_distance_spec.rb +137 -0
  28. data/spec/distance_metrics/pearson_correlation_spec.rb +174 -0
  29. data/spec/generators/datasource/active_record_spec.rb +0 -0
  30. data/spec/models/cluster_spec.rb +0 -0
  31. data/spec/models/point_spec.rb +0 -0
  32. data/spec/models/vector_spec.rb +0 -0
  33. data/spec/spec_helper.rb +7 -2
  34. data/spec/support/dataset_helper.rb +19 -0
  35. data/spec/support/test_model.rb +9 -0
  36. metadata +31 -1
File without changes
File without changes
File without changes
File without changes
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'simplecov'
2
+ require 'support/dataset_helper'
2
3
 
3
4
  module SimpleCov::Configuration
4
5
  def clean_filters
@@ -18,12 +19,16 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
18
19
  $LOAD_PATH.unshift(File.dirname(__FILE__))
19
20
 
20
21
  require 'rspec'
21
- require 'clustering'
22
+ require 'db_clustering'
23
+ require 'byebug'
22
24
 
23
25
  # Requires supporting files with custom matchers and macros, etc,
24
26
  # in ./support/ and its subdirectories.
25
27
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
26
28
 
27
29
  RSpec.configure do |config|
28
-
30
+ config.expect_with :rspec do |c|
31
+ # only allow new expect syntax for specs
32
+ c.syntax = :expect
33
+ end
29
34
  end
@@ -0,0 +1,19 @@
1
+ require 'support/test_model'
2
+
3
+ class DatasetHelper
4
+ def self.normal_distribution(vector_size: 3, clusters: 8, datapoints: 80)
5
+ dataset = []
6
+ sr = SimpleRandom.new
7
+
8
+ (1..datapoints).each do |i|
9
+ mean = -90 + (i % clusters) * (180.0 / clusters)
10
+ standard_deviation = 5
11
+
12
+ vector = []
13
+ vector_size.times{ |k| vector << sr.normal(mean, standard_deviation) }
14
+ dataset << TestModel.new(vector)
15
+ end
16
+
17
+ dataset
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ class TestModel
2
+ def initialize(vector = [rand(0..100), rand(0..100), rand(0..100)])
3
+ @vector = vector
4
+ end
5
+
6
+ def clustering_vector
7
+ @vector
8
+ end
9
+ 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.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cihat Gündüz
@@ -225,13 +225,43 @@ executables: []
225
225
  extensions: []
226
226
  extra_rdoc_files:
227
227
  - LICENSE.txt
228
+ - README.md
228
229
  files:
229
230
  - ".document"
230
231
  - ".rspec"
232
+ - ".travis.yml"
231
233
  - Gemfile
234
+ - Gemfile.lock
232
235
  - LICENSE.txt
236
+ - README.md
233
237
  - Rakefile
238
+ - VERSION
239
+ - lib/algorithms/density_based/dbscan.rb
240
+ - lib/datasource_adapters/active_record.rb
241
+ - lib/datasource_adapters/in_memory.rb
242
+ - lib/db_clustering.rb
243
+ - lib/distance_metrics/average_difference.rb
244
+ - lib/distance_metrics/cosine_similarity.rb
245
+ - lib/distance_metrics/euclidean_distance.rb
246
+ - lib/distance_metrics/pearson_correlation.rb
247
+ - lib/generators/datasource/active_record.rb
248
+ - lib/models/cluster.rb
249
+ - lib/models/point.rb
250
+ - lib/models/vector.rb
251
+ - spec/algorithms/density_based/dbscan_spec.rb
252
+ - spec/datasource_adapters/active_record_spec.rb
253
+ - spec/datasource_adapters/in_memory_spec.rb
254
+ - spec/distance_metrics/average_difference_spec.rb
255
+ - spec/distance_metrics/cosine_similarity_spec.rb
256
+ - spec/distance_metrics/euclidean_distance_spec.rb
257
+ - spec/distance_metrics/pearson_correlation_spec.rb
258
+ - spec/generators/datasource/active_record_spec.rb
259
+ - spec/models/cluster_spec.rb
260
+ - spec/models/point_spec.rb
261
+ - spec/models/vector_spec.rb
234
262
  - spec/spec_helper.rb
263
+ - spec/support/dataset_helper.rb
264
+ - spec/support/test_model.rb
235
265
  homepage: http://github.com/Dschee/db_clustering
236
266
  licenses:
237
267
  - MIT