Module: KMeansClusterer::Scaler

Defined in:
lib/kmeans-clusterer.rb

Class Method Summary collapse

Class Method Details

.mean(data) ⇒ Object



19
20
21
# File 'lib/kmeans-clusterer.rb', line 19

def self.mean data
  data.mean(1)
end

.row_norms(data) ⇒ Object



37
38
39
40
# File 'lib/kmeans-clusterer.rb', line 37

def self.row_norms data
  squared_data = NArray.ref(data)**2
  NMatrix.ref(squared_data).sum(0)
end

.scale(data, mean = nil, std = nil, typecode = nil) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/kmeans-clusterer.rb', line 29

def self.scale data, mean = nil, std = nil, typecode = nil
  data = NArray.ref(data)
  mean ||= self.mean(data)
  std ||= self.std(data)
  data = (data - mean) / std
  [NMatrix.ref(data), mean, std]
end

.std(data) ⇒ Object



23
24
25
26
27
# File 'lib/kmeans-clusterer.rb', line 23

def self.std data
  std = data.stddev(1)
  std[std.eq(0)] = 1.0 # so we don't divide by 0
  std
end