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 +4 -4
- data/.rake_tasks~ +7 -0
- data/Gemfile +5 -0
- data/lib/t_learn/.em.rb.swp +0 -0
- data/lib/t_learn/em.rb +190 -72
- data/lib/t_learn/text.json +272 -0
- data/lib/t_learn/version.rb +1 -1
- data/lib/t_learn.rb +1 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6becf413fe48eb9531615a4f25124b195f2d398
|
4
|
+
data.tar.gz: 574db0c50bbb483001f7e4679c1677c1a9f91990
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea796e2c06c35b66da56160029464d675164767e97f1b5454b63330304e4f9c799a66758fdca5aec5d5c93b90136e4c8e38e8e8e6764706ba4e8c66f899fa80e
|
7
|
+
data.tar.gz: 6978a68150c212043a9c09988a209eca37473040bbe3f534f53ef02dc35874e9a1a795e9f59a93735a58b5a806e983a15c7018558aed1a24c566e81317b5f71f
|
data/.rake_tasks~
ADDED
data/Gemfile
CHANGED
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
|
-
|
8
|
-
|
9
|
-
, :
|
10
|
-
|
11
|
-
def
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
17
|
-
@
|
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
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
39
|
-
|
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
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
57
|
-
|
58
|
-
|
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
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
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
|
69
|
-
|
70
|
-
@
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
-
|
86
|
-
|
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.
|
89
|
-
return
|
150
|
+
if (rand() < 0.15)
|
151
|
+
return [r1_x, r1_y]
|
90
152
|
else
|
91
|
-
return
|
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
|
-
|
101
|
-
|
102
|
-
|
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
|
112
|
-
|
113
|
-
|
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]]
|
data/lib/t_learn/version.rb
CHANGED
data/lib/t_learn.rb
CHANGED
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
|
+
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-
|
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
|