t_learn 0.1.1.3 → 0.1.1.4

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: 4997f379b3ef4527598a83ceb94ab6620d61b886
4
- data.tar.gz: cca4c6643f596a70d69b1a79a86ca94189bcce0d
3
+ metadata.gz: b6becf413fe48eb9531615a4f25124b195f2d398
4
+ data.tar.gz: 574db0c50bbb483001f7e4679c1677c1a9f91990
5
5
  SHA512:
6
- metadata.gz: 1951ea181fb690965373c0444af8c3d3682b2bdf17889baf7a4aa6d84f57701a5a4211916a1034f83aef801b6101ba64a1da1a5c2f43fa67f3b605dc8c807dd7
7
- data.tar.gz: fc1ddcaa6a905309de2e8729fd96f44c11ac04dc8c652287d8c5e805957af42af3206c627276767557b4e1f6ddd1889ae4568834fcb0023d87743942033cbbd4
6
+ metadata.gz: ea796e2c06c35b66da56160029464d675164767e97f1b5454b63330304e4f9c799a66758fdca5aec5d5c93b90136e4c8e38e8e8e6764706ba4e8c66f899fa80e
7
+ data.tar.gz: 6978a68150c212043a9c09988a209eca37473040bbe3f534f53ef02dc35874e9a1a795e9f59a93735a58b5a806e983a15c7018558aed1a24c566e81317b5f71f
data/.rake_tasks~ ADDED
@@ -0,0 +1,7 @@
1
+ build
2
+ clean
3
+ clobber
4
+ install
5
+ install:local
6
+ release[remote]
7
+ spec
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in t_learn.gemspec
4
4
  gemspec
5
+
6
+ group :development, :test do
7
+ gem 'pry-rails'
8
+ gem 'matrix'
9
+ end
Binary file
data/lib/t_learn/em.rb CHANGED
@@ -2,117 +2,235 @@
2
2
  # -*- encoding: utf-8 -*-
3
3
 
4
4
  require "yaml"
5
+ require "json"
6
+ require "pry"
5
7
 
6
8
  module TLearn
7
- class EM
8
- attr_accessor :mu_list, :var_list, :pi_list, :datas, :log_likelihood, :burden_ratio, :k_num_
9
- , :n, :r_list
10
-
11
- def initialize
12
- @data = Array.new(10, 0.0) # load_data
13
- @mu_list = Array.new(10, 0.0)
14
- @var_list = Array.new(10, 0.0)
15
- @r_list = Array.new(10, 0.0)
16
- @n_list = Array.new(10, 0.0)
17
- @k_num = 2
9
+
10
+ class EM_Gaussian
11
+ attr_accessor :mu_list, :conv_list, :pi_list, :log_likelihood, :k_num,:data_list, :real_data_list
12
+
13
+ def init(data_list, k_num)
14
+ @k_num = k_num # ガウス分布の数
15
+ @data_list = data_list
16
+ @dim = @data_list[0].size
17
+ @data_list = scale(@data_list)
18
+ @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()}
21
+ @pi_list = @k_num.times.map{rand()}
22
+ @gamma = Array.new(@data_list.size).map{Array.new(@k_num, 0)}
18
23
  end
19
-
20
- #
21
- # === make datas for test
22
- #
23
- def make_data
24
24
 
25
+ def ini_conv
26
+ conv = []
27
+ @dim.times {|i|
28
+ conv.push(make_array(i))
29
+ }
30
+ return conv
25
31
  end
26
32
 
27
- def run
28
- # loop until likelihood is converged
29
- # calc burden_ratio
30
- new_r_list = []
31
- nn = @r_list.inject(:x)
32
- @r_list.each_with_index do |r, i|
33
- new_r_list[i] = calc_burden_ratio(r)
34
- @mu_list[i] = update_mu(r)
35
- @var_list[i] = update_var(r)
36
- @pi_list = update_pi(r, nn)
33
+ def make_array(i)
34
+ array = []
35
+ @dim.times {|x|
36
+ if i == x
37
+ array.push(1.0)
38
+ else
39
+ array.push(0.0)
37
40
  end
38
- @r_list = new_r_list
39
- # calc log_likelihood
41
+ }
42
+ return array
43
+ end
40
44
 
45
+ def create_log(cycle)
46
+ log = {:cycle => cycle,
47
+ :mu => @mu_list.clone,
48
+ :conv => @conv_list.clone,
49
+ :pi_list => @pi_list.clone}
50
+ return log
41
51
  end
42
52
 
43
-
44
-
45
- def calc_burden_ratio(k)
46
- denominator = 0.0
47
- @pi_list.each_with_index do |pi, i|
48
- denominator += normal_rand(@mu_list[i], @var_list[i])
53
+
54
+ def fit(data_list, k_num)
55
+ init(data_list, k_num)
56
+ result = []
57
+ cycle = 0
58
+ last_likelihood = calc_log_likelihood()
59
+ loop do
60
+ e_step()
61
+ m_step()
62
+ likelihood = calc_log_likelihood()
63
+ diff = (likelihood - last_likelihood).abs
64
+ last_likelihood = likelihood
65
+ puts "likelihood: #{likelihood}"
66
+ result.push(create_log(cycle))
67
+ cycle += 1
68
+ break if diff < 0.000001
49
69
  end
70
+ puts "===================================="
71
+ puts "pi : #{ @pi_list }"
72
+ puts "mu : #{ @mu_list}"
73
+ puts "conv : #{ @conv_list}"
74
+ return result
75
+ end
50
76
 
51
- molecule = @pi_list[k] * gauusian(x, @mu_list[k], @var_list[k])
52
-
53
- return molecule/denominator
54
- end
55
77
 
56
- def log_likelihood
57
-
58
- end
78
+ def e_step()
79
+ @data_list.each_with_index{|data, n|
80
+ denominator = 0.0
81
+ @k_num.times{|k|
82
+ denominator += @pi_list[k] * gauusian(data, @mu_list[k], @conv_list[k])
83
+ }
84
+ @k_num.times { |k|
85
+ @gamma[n][k] = @pi_list[k] * gauusian(data, @mu_list[k], @conv_list[k]) / denominator
86
+ }
87
+ }
88
+ end
59
89
 
60
- def update_mu(k, burden_ratio)
61
- sum = 0.0
62
- @datas.each_with_index do |data, i|
63
- sum += burden_ratio[i] * data
64
- end
65
- return sum/@n_list[k]
90
+ def m_step()
91
+ @k_num.times {|k|
92
+ nk = 0.0
93
+ @data_list.each_with_index{|data, n|
94
+ nk += @gamma[n][k]
95
+ }
96
+
97
+ @mu_list[k] = calc_ave(k, nk)
98
+ @conv_list[k] = calc_conv(k, nk)
99
+ @pi_list[k] = nk/@data_list.size
100
+ }
66
101
  end
67
102
 
68
- def update_var(k, burden_ratio)
69
- sum = 0.0
70
- @datas.each_with_index do |data, i|
71
- sum += burden_ratio[i] * ( data - @mu_list[k]) * ( data - @mu_list[k])
72
- end
73
- return sum/@n_list[k]
103
+ def calc_ave(k, nk)
104
+ mu = Array.new(@dim)
105
+ @dim.times{|i|
106
+ mu[i] = @data_list.each_with_index.inject(0.0){|sum,(data, n)|
107
+ sum += @gamma[n][k] * data[i]
108
+ } / nk
74
109
 
110
+ }
111
+ return mu
75
112
  end
76
113
 
77
- def update_pi(k)
78
- return @n_list[k]/@k_num
79
- end
80
114
 
115
+ def calc_conv(k, nk)
116
+ conv = Array.new(@dim).map{Array.new(@dim, 0)}
117
+ @dim.times{|i|
118
+ @dim.times{|j|
119
+ @data_list.each_with_index{|data, n|
120
+ conv[i][j] += @gamma[n][k] * (data[i]-@mu_list[k][i]) * (data[j]-@mu_list[k][j])
121
+ }
122
+ }
123
+ }
124
+ conv = conv.map{|arr| arr.map{|v| v/nk}}
125
+ return conv
126
+ end
127
+
128
+ def calc_log_likelihood
129
+ log_likelihood = 0.0
130
+ @data_list.each_with_index{|data, i|
131
+ sum = 0.0
132
+ @k_num.times{|k|
133
+ sum += @pi_list[k] * gauusian(data, @mu_list[k], @conv_list[k])
134
+ }
135
+ log_likelihood += Math.log(sum)
136
+ }
137
+ return log_likelihood
138
+ end
139
+
140
+
81
141
  #
82
142
  # === 混合正規分布を生成する
83
143
  #
84
144
  def gaussian_mix()
85
- r1 = normal_rand()
86
- r2 = normal_rand(5.0, 2.0)
145
+ r1_x = normal_rand()
146
+ r1_y = normal_rand()
147
+ r2_x = normal_rand(10.0, 50.0)
148
+ r2_y = normal_rand(10.0, 50.0)
87
149
 
88
- if (rand() < 0.5)
89
- return r1
150
+ if (rand() < 0.15)
151
+ return [r1_x, r1_y]
90
152
  else
91
- return r2
153
+ return [r2_x, r2_y]
92
154
  end
93
155
  end
94
156
 
95
-
96
157
  #
97
158
  # === gauusian distribution
98
159
  #
99
160
  def gauusian(x, mu, sigma)
100
- f1 = (1.0/Math.sqrt(2.0*Math::PI))
101
- f2 = Math.exp(-((x-mu)^2 / 2*sigma^2))
102
- return f1 * f2
161
+ if @dim <= 1
162
+ x = x[0]
163
+ mu = mu[0]
164
+ sigma = sigma[0][0]
165
+ f1 = 1.0/(Math.sqrt(2.0*Math::PI)*Math.sqrt(sigma))
166
+ f2 = Math.exp(-(((x-mu)**2)/((2.0*sigma))))
167
+ return f1 * f2
168
+ else
169
+ return gauusian2dim(x, mu, sigma)
170
+ end
103
171
  end
104
172
 
173
+
105
174
  #
106
- # ===ボックス―ミューラー法をよる正規分布乱数発生
107
- # @param mu flout 平均
108
- # @param sigma flout 標準偏差
109
- # @return ボックスミューラー法に従う正規分布に従う乱数を生成
175
+ # === gauusian distribution .2 dim version
110
176
  #
111
- def normal_rand(mu = 0,sigma = 1.0)
112
- a, b = rand(), rand() ;
113
- return (Math.sqrt(-2*Math.log(rand()))*Math.sin(2*Math::PI*rand()) * sigma) + mu
177
+ def gauusian2dim(x, mu, conv)
178
+ x = Matrix[x]
179
+ mu = Matrix[mu]
180
+ conv = Matrix[*conv]
181
+ begin
182
+ f1 = 1.0/(2.0 * Math::PI * ( conv.det**(0.5) ))
183
+ f2 = Math.exp((-1.0/2.0)*((x-mu) * conv.inverse * (x-mu).transpose)[0, 0])
184
+ rescue
185
+ binding.pry ;
186
+ end
187
+
188
+ return (f1 * f2)
114
189
  end
115
190
 
116
191
 
192
+ def scale(x)
193
+ if x[0].instance_of?(Array) # check whether x's factor is 1dim or over 2dim
194
+ sum_each_vec = []
195
+ ave_list = []
196
+ std_list = []
197
+ x.each{|vec|
198
+ vec.each_with_index{|data, i|
199
+ sum_each_vec[i] = (sum_each_vec[i] == nil) ? data : sum_each_vec[i]+data
200
+ }
201
+ }
202
+ x[0].size.times{|i|
203
+ ave_list.push(sum_each_vec[i]/x.size)
204
+ }
205
+
206
+ sum_each_vec = []
207
+ x.each{|vec|
208
+ vec.each_with_index{|data, i|
209
+ sum_each_vec[i] = (sum_each_vec[i] == nil) ? (ave_list[i]-data)**2 : (sum_each_vec[i]+(ave_list[i]-data)**2)
210
+ }
211
+ }
212
+ x[0].size.times{|i|
213
+ std_list.push(Math.sqrt(sum_each_vec[i]/x.size))
214
+ }
215
+
216
+ scaled_x = []
217
+ x.each_with_index{|vec, i|
218
+ scaled_x[i] ||= []
219
+ vec.each_with_index{|data, j|
220
+ scaled_x[i][j] ||= (data-ave_list[j])/std_list[j]
221
+ }
222
+ }
223
+ return scaled_x
224
+ else # if 1dim
225
+ mu = x.each.inject(0.0){|sum, data| sum+=data}/x.size
226
+ var = (x.each.inject(0.0){|sum, data| sum+=(data-mu)**2}/x.size)
227
+ std = Math.sqrt(var)
228
+ scaled_x = []
229
+ x.each{|sum,data|
230
+ scaled_x.push((mu-data)/std)
231
+ }
232
+ return scaled_x
233
+ end
234
+ end
117
235
  end
118
236
  end
@@ -0,0 +1,272 @@
1
+ [[3.600000, 79.000000],
2
+ [1.800000, 54.000000],
3
+ [3.333000, 74.000000],
4
+ [2.283000, 62.000000],
5
+ [4.533000, 85.000000],
6
+ [2.883000, 55.000000],
7
+ [4.700000, 88.000000],
8
+ [3.600000, 85.000000],
9
+ [1.950000, 51.000000],
10
+ [4.350000, 85.000000],
11
+ [1.833000, 54.000000],
12
+ [3.917000, 84.000000],
13
+ [4.200000, 78.000000],
14
+ [1.750000, 47.000000],
15
+ [4.700000, 83.000000],
16
+ [2.167000, 52.000000],
17
+ [1.750000, 62.000000],
18
+ [4.800000, 84.000000],
19
+ [1.600000, 52.000000],
20
+ [4.250000, 79.000000],
21
+ [1.800000, 51.000000],
22
+ [1.750000, 47.000000],
23
+ [3.450000, 78.000000],
24
+ [3.067000, 69.000000],
25
+ [4.533000, 74.000000],
26
+ [3.600000, 83.000000],
27
+ [1.967000, 55.000000],
28
+ [4.083000, 76.000000],
29
+ [3.850000, 78.000000],
30
+ [4.433000, 79.000000],
31
+ [4.300000, 73.000000],
32
+ [4.467000, 77.000000],
33
+ [3.367000, 66.000000],
34
+ [4.033000, 80.000000],
35
+ [3.833000, 74.000000],
36
+ [2.017000, 52.000000],
37
+ [1.867000, 48.000000],
38
+ [4.833000, 80.000000],
39
+ [1.833000, 59.000000],
40
+ [4.783000, 90.000000],
41
+ [4.350000, 80.000000],
42
+ [1.883000, 58.000000],
43
+ [4.567000, 84.000000],
44
+ [1.750000, 58.000000],
45
+ [4.533000, 73.000000],
46
+ [3.317000, 83.000000],
47
+ [3.833000, 64.000000],
48
+ [2.100000, 53.000000],
49
+ [4.633000, 82.000000],
50
+ [2.000000, 59.000000],
51
+ [4.800000, 75.000000],
52
+ [4.716000, 90.000000],
53
+ [1.833000, 54.000000],
54
+ [4.833000, 80.000000],
55
+ [1.733000, 54.000000],
56
+ [4.883000, 83.000000],
57
+ [3.717000, 71.000000],
58
+ [1.667000, 64.000000],
59
+ [4.567000, 77.000000],
60
+ [4.317000, 81.000000],
61
+ [2.233000, 59.000000],
62
+ [4.500000, 84.000000],
63
+ [1.750000, 48.000000],
64
+ [4.800000, 82.000000],
65
+ [1.817000, 60.000000],
66
+ [4.400000, 92.000000],
67
+ [4.167000, 78.000000],
68
+ [4.700000, 78.000000],
69
+ [2.067000, 65.000000],
70
+ [4.700000, 73.000000],
71
+ [4.033000, 82.000000],
72
+ [1.967000, 56.000000],
73
+ [4.500000, 79.000000],
74
+ [4.000000, 71.000000],
75
+ [1.983000, 62.000000],
76
+ [5.067000, 76.000000],
77
+ [2.017000, 60.000000],
78
+ [4.567000, 78.000000],
79
+ [3.883000, 76.000000],
80
+ [3.600000, 83.000000],
81
+ [4.133000, 75.000000],
82
+ [4.333000, 82.000000],
83
+ [4.100000, 70.000000],
84
+ [2.633000, 65.000000],
85
+ [4.067000, 73.000000],
86
+ [4.933000, 88.000000],
87
+ [3.950000, 76.000000],
88
+ [4.517000, 80.000000],
89
+ [2.167000, 48.000000],
90
+ [4.000000, 86.000000],
91
+ [2.200000, 60.000000],
92
+ [4.333000, 90.000000],
93
+ [1.867000, 50.000000],
94
+ [4.817000, 78.000000],
95
+ [1.833000, 63.000000],
96
+ [4.300000, 72.000000],
97
+ [4.667000, 84.000000],
98
+ [3.750000, 75.000000],
99
+ [1.867000, 51.000000],
100
+ [4.900000, 82.000000],
101
+ [2.483000, 62.000000],
102
+ [4.367000, 88.000000],
103
+ [2.100000, 49.000000],
104
+ [4.500000, 83.000000],
105
+ [4.050000, 81.000000],
106
+ [1.867000, 47.000000],
107
+ [4.700000, 84.000000],
108
+ [1.783000, 52.000000],
109
+ [4.850000, 86.000000],
110
+ [3.683000, 81.000000],
111
+ [4.733000, 75.000000],
112
+ [2.300000, 59.000000],
113
+ [4.900000, 89.000000],
114
+ [4.417000, 79.000000],
115
+ [1.700000, 59.000000],
116
+ [4.633000, 81.000000],
117
+ [2.317000, 50.000000],
118
+ [4.600000, 85.000000],
119
+ [1.817000, 59.000000],
120
+ [4.417000, 87.000000],
121
+ [2.617000, 53.000000],
122
+ [4.067000, 69.000000],
123
+ [4.250000, 77.000000],
124
+ [1.967000, 56.000000],
125
+ [4.600000, 88.000000],
126
+ [3.767000, 81.000000],
127
+ [1.917000, 45.000000],
128
+ [4.500000, 82.000000],
129
+ [2.267000, 55.000000],
130
+ [4.650000, 90.000000],
131
+ [1.867000, 45.000000],
132
+ [4.167000, 83.000000],
133
+ [2.800000, 56.000000],
134
+ [4.333000, 89.000000],
135
+ [1.833000, 46.000000],
136
+ [4.383000, 82.000000],
137
+ [1.883000, 51.000000],
138
+ [4.933000, 86.000000],
139
+ [2.033000, 53.000000],
140
+ [3.733000, 79.000000],
141
+ [4.233000, 81.000000],
142
+ [2.233000, 60.000000],
143
+ [4.533000, 82.000000],
144
+ [4.817000, 77.000000],
145
+ [4.333000, 76.000000],
146
+ [1.983000, 59.000000],
147
+ [4.633000, 80.000000],
148
+ [2.017000, 49.000000],
149
+ [5.100000, 96.000000],
150
+ [1.800000, 53.000000],
151
+ [5.033000, 77.000000],
152
+ [4.000000, 77.000000],
153
+ [2.400000, 65.000000],
154
+ [4.600000, 81.000000],
155
+ [3.567000, 71.000000],
156
+ [4.000000, 70.000000],
157
+ [4.500000, 81.000000],
158
+ [4.083000, 93.000000],
159
+ [1.800000, 53.000000],
160
+ [3.967000, 89.000000],
161
+ [2.200000, 45.000000],
162
+ [4.150000, 86.000000],
163
+ [2.000000, 58.000000],
164
+ [3.833000, 78.000000],
165
+ [3.500000, 66.000000],
166
+ [4.583000, 76.000000],
167
+ [2.367000, 63.000000],
168
+ [5.000000, 88.000000],
169
+ [1.933000, 52.000000],
170
+ [4.617000, 93.000000],
171
+ [1.917000, 49.000000],
172
+ [2.083000, 57.000000],
173
+ [4.583000, 77.000000],
174
+ [3.333000, 68.000000],
175
+ [4.167000, 81.000000],
176
+ [4.333000, 81.000000],
177
+ [4.500000, 73.000000],
178
+ [2.417000, 50.000000],
179
+ [4.000000, 85.000000],
180
+ [4.167000, 74.000000],
181
+ [1.883000, 55.000000],
182
+ [4.583000, 77.000000],
183
+ [4.250000, 83.000000],
184
+ [3.767000, 83.000000],
185
+ [2.033000, 51.000000],
186
+ [4.433000, 78.000000],
187
+ [4.083000, 84.000000],
188
+ [1.833000, 46.000000],
189
+ [4.417000, 83.000000],
190
+ [2.183000, 55.000000],
191
+ [4.800000, 81.000000],
192
+ [1.833000, 57.000000],
193
+ [4.800000, 76.000000],
194
+ [4.100000, 84.000000],
195
+ [3.966000, 77.000000],
196
+ [4.233000, 81.000000],
197
+ [3.500000, 87.000000],
198
+ [4.366000, 77.000000],
199
+ [2.250000, 51.000000],
200
+ [4.667000, 78.000000],
201
+ [2.100000, 60.000000],
202
+ [4.350000, 82.000000],
203
+ [4.133000, 91.000000],
204
+ [1.867000, 53.000000],
205
+ [4.600000, 78.000000],
206
+ [1.783000, 46.000000],
207
+ [4.367000, 77.000000],
208
+ [3.850000, 84.000000],
209
+ [1.933000, 49.000000],
210
+ [4.500000, 83.000000],
211
+ [2.383000, 71.000000],
212
+ [4.700000, 80.000000],
213
+ [1.867000, 49.000000],
214
+ [3.833000, 75.000000],
215
+ [3.417000, 64.000000],
216
+ [4.233000, 76.000000],
217
+ [2.400000, 53.000000],
218
+ [4.800000, 94.000000],
219
+ [2.000000, 55.000000],
220
+ [4.150000, 76.000000],
221
+ [1.867000, 50.000000],
222
+ [4.267000, 82.000000],
223
+ [1.750000, 54.000000],
224
+ [4.483000, 75.000000],
225
+ [4.000000, 78.000000],
226
+ [4.117000, 79.000000],
227
+ [4.083000, 78.000000],
228
+ [4.267000, 78.000000],
229
+ [3.917000, 70.000000],
230
+ [4.550000, 79.000000],
231
+ [4.083000, 70.000000],
232
+ [2.417000, 54.000000],
233
+ [4.183000, 86.000000],
234
+ [2.217000, 50.000000],
235
+ [4.450000, 90.000000],
236
+ [1.883000, 54.000000],
237
+ [1.850000, 54.000000],
238
+ [4.283000, 77.000000],
239
+ [3.950000, 79.000000],
240
+ [2.333000, 64.000000],
241
+ [4.150000, 75.000000],
242
+ [2.350000, 47.000000],
243
+ [4.933000, 86.000000],
244
+ [2.900000, 63.000000],
245
+ [4.583000, 85.000000],
246
+ [3.833000, 82.000000],
247
+ [2.083000, 57.000000],
248
+ [4.367000, 82.000000],
249
+ [2.133000, 67.000000],
250
+ [4.350000, 74.000000],
251
+ [2.200000, 54.000000],
252
+ [4.450000, 83.000000],
253
+ [3.567000, 73.000000],
254
+ [4.500000, 73.000000],
255
+ [4.150000, 88.000000],
256
+ [3.817000, 80.000000],
257
+ [3.917000, 71.000000],
258
+ [4.450000, 83.000000],
259
+ [2.000000, 56.000000],
260
+ [4.283000, 79.000000],
261
+ [4.767000, 78.000000],
262
+ [4.533000, 84.000000],
263
+ [1.850000, 58.000000],
264
+ [4.250000, 83.000000],
265
+ [1.983000, 43.000000],
266
+ [2.250000, 60.000000],
267
+ [4.750000, 75.000000],
268
+ [4.117000, 81.000000],
269
+ [2.150000, 46.000000],
270
+ [4.417000, 90.000000],
271
+ [1.817000, 46.000000],
272
+ [4.467000, 74.000000]]
@@ -1,3 +1,3 @@
1
1
  module TLearn
2
- VERSION = "0.1.1.3"
2
+ VERSION = "0.1.1.4"
3
3
  end
data/lib/t_learn.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "t_learn/version"
2
2
  require "t_learn/hop_field_net"
3
3
  require "t_learn/feedforward_neural_network"
4
+ require "t_learn/em"
4
5
 
5
6
  module TLearn
6
7
  # Your code goes here...
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.3
4
+ version: 0.1.1.4
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-03 00:00:00.000000000 Z
11
+ date: 2017-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,6 +60,7 @@ extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
62
  - ".gitignore"
63
+ - ".rake_tasks~"
63
64
  - ".rspec"
64
65
  - ".travis.yml"
65
66
  - CODE_OF_CONDUCT.md
@@ -70,10 +71,12 @@ files:
70
71
  - bin/console
71
72
  - bin/setup
72
73
  - lib/t_learn.rb
74
+ - lib/t_learn/.em.rb.swp
73
75
  - lib/t_learn/em.rb
74
76
  - lib/t_learn/feedforward_neural_network.rb
75
77
  - lib/t_learn/hop_field_net.rb
76
78
  - lib/t_learn/k_means.rb
79
+ - lib/t_learn/text.json
77
80
  - lib/t_learn/version.rb
78
81
  - t_learn.gemspec
79
82
  homepage: https://github.com/Tcom242242/t_learn