dnks_clustering_indexes 0.0.0 → 0.1.0
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 +4 -4
- data/lib/index_calculator.rb +12 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63790bdb10502709ad45c02483a96e6c4b2d42a3cc8a7525cceaf2a27a9581b4
|
4
|
+
data.tar.gz: 57707b033afc285b4c3c4b2ab2aa8131b39c9c84853d5c63b80a94e2d4508925
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1503b4cb16e176e9963ae478c57e69b81a9e41065fcb1588a30b759078cb268fd8a9163dcfa8f75b535ec24b91ade5050f872410b2eafc85c4e22353a710192c
|
7
|
+
data.tar.gz: 72b049d3a066a983ae90796357d1a3abd7175e3d17e39831f8f45309f2e6414eb8e57871f247bf35971aac9bd35918694fac6adbee9b93c82bdc4cafc6673928
|
data/lib/index_calculator.rb
CHANGED
@@ -4,7 +4,7 @@ require "kmeans-clusterer"
|
|
4
4
|
require_relative "constants"
|
5
5
|
require_relative "clustered_data_set"
|
6
6
|
class IndexCalculator
|
7
|
-
attr_reader :data, :labels, :max_k, :k_matrix, :clustered_data_sets
|
7
|
+
attr_reader :data, :labels, :max_k, :k_matrix, :clustered_data_sets, :available_indexes
|
8
8
|
|
9
9
|
def initialize(data, labels, max_k = 2)
|
10
10
|
@data = data
|
@@ -14,6 +14,7 @@ class IndexCalculator
|
|
14
14
|
@k_matrix_header = {}
|
15
15
|
@clustered_data_sets = [0, 0]
|
16
16
|
@optimal_k_indexes = {}
|
17
|
+
set_available_indexes
|
17
18
|
end
|
18
19
|
|
19
20
|
def clear_clustered_datasets
|
@@ -65,7 +66,7 @@ class IndexCalculator
|
|
65
66
|
end
|
66
67
|
|
67
68
|
def calculate_all_indexes
|
68
|
-
|
69
|
+
@available_indexes.each { |index_name| calculate_index_k(index_name) }
|
69
70
|
end
|
70
71
|
|
71
72
|
def optimal_k_indexes(index_name)
|
@@ -74,7 +75,7 @@ class IndexCalculator
|
|
74
75
|
end
|
75
76
|
|
76
77
|
def find_all_optimal_k_indexes
|
77
|
-
|
78
|
+
@available_indexes.each { |index_name| optimal_k_indexes(index_name) }
|
78
79
|
end
|
79
80
|
|
80
81
|
def optimal_k_index
|
@@ -141,6 +142,10 @@ class IndexCalculator
|
|
141
142
|
puts_index_table index_name
|
142
143
|
end
|
143
144
|
|
145
|
+
def show_all_indexes_table
|
146
|
+
@available_indexes.each { |str| show_index_table(str) }
|
147
|
+
end
|
148
|
+
|
144
149
|
def puts_index_table(index_name)
|
145
150
|
(2...@k_matrix[@k_matrix_header[index_name]].length).each { |k|
|
146
151
|
puts "k = #{k}\t score = #{@k_matrix[@k_matrix_header[index_name]][k]}"
|
@@ -152,4 +157,8 @@ class IndexCalculator
|
|
152
157
|
def read_from_file_to_data(filename)
|
153
158
|
File.foreach(filename) { |line| @data.push(line.chomp.split.map(&:to_f)) }
|
154
159
|
end
|
160
|
+
|
161
|
+
def set_available_indexes
|
162
|
+
@available_indexes = Constants::Indexes.constants.map { |ce| Constants::Indexes.const_get(ce) }
|
163
|
+
end
|
155
164
|
end
|