kmeans-clusterer 0.11.3 → 0.11.4

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/kmeans-clusterer.rb +11 -7
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07e426d9d9009e4ea9fc432f08b8390f8bb69bc6
4
- data.tar.gz: 8cd3c31df1d33de334c63db296fe2d40f4c56eac
3
+ metadata.gz: 2f196c59682129e44c96683048f0038bbff969e8
4
+ data.tar.gz: 59c7aead159e0c8ccbf216b10289022876f4d315
5
5
  SHA512:
6
- metadata.gz: ffeb5fd9e2167411314674110cb618d5de43460fd32d01572bd400e7905fd7f94052624fa013c3d1309b08c10d5f1afc92b24e87ff9f4eb302c25639f53f3e32
7
- data.tar.gz: a4e10c472ec5fc84b4a1444da6fadf5c246310a2aef0f701d58af7cd62231a9aac53fff0c3200ed48badfab5b35b117a9ac8be23aa986cfaa3636a37686fcf12
6
+ metadata.gz: 62c9ed6a7109e4034eb0907bd8fc1e862a79d902914a2658ff8959889352edc634b24be63f7fd4372ac144aaa200515f7a12a99de54f0c6dc4fa57008d7e8a91
7
+ data.tar.gz: 95fc7bdd5f57aadf8b64656f5bf6f9affb09a5f7d30f44a5bc3ddfb590ae8229348aca04c11c64ee381066b0ce76d2f415b3df2eb095848f9aa46fead6e7ddd6
@@ -13,6 +13,10 @@ class KMeansClusterer
13
13
  NMatrix.cast(x, typecode)
14
14
  end
15
15
  end
16
+
17
+ def self.ensure_narray x, typecode = nil
18
+ x.is_a?(NArray) ? x : NArray.cast(x, typecode)
19
+ end
16
20
  end
17
21
 
18
22
  module Scaler
@@ -121,12 +125,12 @@ class KMeansClusterer
121
125
  opts = DEFAULT_OPTS.merge(opts)
122
126
 
123
127
  opts[:k] = k
124
- opts[:typecode] = TYPECODE[opts[:float_precision]]
128
+ typecode = TYPECODE[opts[:float_precision]]
125
129
 
126
- data = Utils.ensure_matrix data, opts[:typecode]
130
+ data = Utils.ensure_matrix data, typecode
127
131
 
128
132
  if opts[:scale_data]
129
- data, mean, std = Scaler.scale(data, nil, nil, opts[:typecode])
133
+ data, mean, std = Scaler.scale(data, nil, nil, typecode)
130
134
  opts[:mean] = mean
131
135
  opts[:std] = std
132
136
  end
@@ -162,11 +166,11 @@ class KMeansClusterer
162
166
  @row_norms = opts[:row_norms]
163
167
 
164
168
  @data = opts[:data]
165
- @points_count = @data.shape[1] if @data
166
- @mean = opts[:mean]
167
- @std = opts[:std]
169
+ @points_count = @data ? @data.shape[1] : 0
170
+ @mean = Utils.ensure_narray(opts[:mean]) if opts[:mean]
171
+ @std = Utils.ensure_narray(opts[:std]) if opts[:std]
168
172
  @scale_data = opts[:scale_data]
169
- @typecode = opts[:typecode]
173
+ @typecode = TYPECODE[opts[:float_precision] || :double]
170
174
  @max_iter = opts[:max_iter]
171
175
 
172
176
  init_centroids
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kmeans-clusterer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.3
4
+ version: 0.11.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Buesing
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-06 00:00:00.000000000 Z
11
+ date: 2015-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: narray