Class: Neuronet::Gaussian

Inherits:
Scale
  • Object
show all
Defined in:
lib/neuronet.rb

Overview

Normal Distribution

Direct Known Subclasses

LogNormal

Instance Attribute Summary

Attributes inherited from Scale

#center, #init, #spread

Instance Method Summary collapse

Methods inherited from Scale

#mapped, #set, #set_init, #unmapped

Constructor Details

#initialize(factor = 1.0, center = nil, spread = nil) ⇒ Gaussian

Returns a new instance of Gaussian.



277
278
279
280
# File 'lib/neuronet.rb', line 277

def initialize(factor=1.0,center=nil,spread=nil)
  super(factor, center, spread)
  self.init = false
end

Instance Method Details

#set_center(inputs) ⇒ Object



282
283
284
# File 'lib/neuronet.rb', line 282

def set_center(inputs)
  self.center = inputs.inject(0.0,:+) / inputs.length
end

#set_spread(inputs) ⇒ Object



286
287
288
289
290
# File 'lib/neuronet.rb', line 286

def set_spread(inputs)
  self.spread = Math.sqrt(inputs.map{|value|
    self.center - value}.inject(0.0){|sum,value|
      value*value + sum} / (inputs.length - 1.0))
end