db_clustering 0.1.0 → 0.1.1

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.
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