t_learn 0.1.1.4 → 0.1.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b6becf413fe48eb9531615a4f25124b195f2d398
4
- data.tar.gz: 574db0c50bbb483001f7e4679c1677c1a9f91990
3
+ metadata.gz: 8a5ec34f34ed37b9d565989b377f3d73def58395
4
+ data.tar.gz: 96fb03c78080151b6c3dd171cfbdda4218a3c916
5
5
  SHA512:
6
- metadata.gz: ea796e2c06c35b66da56160029464d675164767e97f1b5454b63330304e4f9c799a66758fdca5aec5d5c93b90136e4c8e38e8e8e6764706ba4e8c66f899fa80e
7
- data.tar.gz: 6978a68150c212043a9c09988a209eca37473040bbe3f534f53ef02dc35874e9a1a795e9f59a93735a58b5a806e983a15c7018558aed1a24c566e81317b5f71f
6
+ metadata.gz: 110a637a57bb8ecbe136c5b674fdfe77eb9faf4491373f9afc2c66a8d19ef976da93f3acb1c18527813dfeb12fab701a7ea6af35194eb9500211a17406c3f08a
7
+ data.tar.gz: 0d8ff3858f5e65c3f20f8e54f88a3d4b3bc4a69579212fc1d76f37a00cdde4511861a69c952635dc59aa4e0bbac4f1ae6c3452e5223416b7189a6d608a6ab990
data/lib/t_learn/em.rb CHANGED
@@ -14,27 +14,36 @@ module TLearn
14
14
  @k_num = k_num # ガウス分布の数
15
15
  @data_list = data_list
16
16
  @dim = @data_list[0].size
17
- @data_list = scale(@data_list)
17
+ # @data_list = scale(@data_list)
18
+ data_ave_std =calc_first_ave_std(@data_list)
18
19
  @real_data_list = Marshal.load(Marshal.dump(@data_list))
19
- @mu_list = Array.new(@k_num).map{Array.new(@dim, rand())}
20
- @conv_list = Array.new(@k_num).map{ini_conv()}
20
+ @mu_list = Array.new(@k_num).map{ini_ave(data_ave_std[:ave_list])}
21
+ @conv_list = Array.new(@k_num).map{ini_conv(data_ave_std[:std_list])}
21
22
  @pi_list = @k_num.times.map{rand()}
22
23
  @gamma = Array.new(@data_list.size).map{Array.new(@k_num, 0)}
23
24
  end
24
25
 
25
- def ini_conv
26
+ def ini_ave(ave_list)
27
+ array = []
28
+ @dim.times {|i|
29
+ array.push(ave_list[i]*rand())
30
+ }
31
+ return array
32
+ end
33
+
34
+ def ini_conv(std_list)
26
35
  conv = []
27
36
  @dim.times {|i|
28
- conv.push(make_array(i))
37
+ conv.push(make_array(i, std_list[i]))
29
38
  }
30
39
  return conv
31
40
  end
32
41
 
33
- def make_array(i)
42
+ def make_array(i, std)
34
43
  array = []
35
44
  @dim.times {|x|
36
45
  if i == x
37
- array.push(1.0)
46
+ array.push(std**2)
38
47
  else
39
48
  array.push(0.0)
40
49
  end
@@ -188,6 +197,27 @@ module TLearn
188
197
  return (f1 * f2)
189
198
  end
190
199
 
200
+ def calc_first_ave_std(x)
201
+ sum_each_vec = []
202
+ ave_list = []
203
+ std_list = []
204
+ x.each{|vec|
205
+ vec.each_with_index{|data, i|
206
+ sum_each_vec[i] = (sum_each_vec[i] == nil) ? data : sum_each_vec[i]+data
207
+ }
208
+ }
209
+ x[0].size.times{|i| ave_list.push(sum_each_vec[i]/x.size)}
210
+
211
+ sum_each_vec = []
212
+ x.each{|vec|
213
+ vec.each_with_index{|data, i|
214
+ sum_each_vec[i] = (sum_each_vec[i] == nil) ? (ave_list[i]-data)**2 : (sum_each_vec[i]+(ave_list[i]-data)**2)
215
+ }
216
+ }
217
+ x[0].size.times{|i| std_list.push(Math.sqrt(sum_each_vec[i]/x.size))}
218
+
219
+ return {:ave_list => ave_list, :std_list => std_list}
220
+ end
191
221
 
192
222
  def scale(x)
193
223
  if x[0].instance_of?(Array) # check whether x's factor is 1dim or over 2dim
@@ -1,3 +1,3 @@
1
1
  module TLearn
2
- VERSION = "0.1.1.4"
2
+ VERSION = "0.1.1.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: t_learn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1.4
4
+ version: 0.1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tcom242242
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-31 00:00:00.000000000 Z
11
+ date: 2017-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,7 +71,6 @@ files:
71
71
  - bin/console
72
72
  - bin/setup
73
73
  - lib/t_learn.rb
74
- - lib/t_learn/.em.rb.swp
75
74
  - lib/t_learn/em.rb
76
75
  - lib/t_learn/feedforward_neural_network.rb
77
76
  - lib/t_learn/hop_field_net.rb
Binary file