t_learn 0.1.1.6 → 0.1.1.7

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: 498f21fc8a9db10db42ac7cad564f372eb5e9b0c
4
- data.tar.gz: 9b1c1a70545014cc35dde9191660cdb502948e1c
3
+ metadata.gz: '089047f4bcbd495dbdfa41279fca1ba29f330601'
4
+ data.tar.gz: 031cdacdfb6d0a0113855558f1ffe7552bfcc67a
5
5
  SHA512:
6
- metadata.gz: 6d91f5751e8fda7d1d99e513dab12bd281b572b8beaf6f2eef99c78418a50583ed39a27538925aeaa90062c45adb7361e94b03756aa76002d5f519bd681bf227
7
- data.tar.gz: 947dc97fdd84c07bf3f395f339b16f93a72719a66ed47203f092843871500ebf0dbc11b5ddf1c5569cb999568dead4f6b6422dd9126689f5ca6446f81e6d2ae0
6
+ metadata.gz: 79085f6851b4c8dbc5bc7edec7512d4b23440c6c601def92fe3f711d8e18efea792834a883df2baf64c4bfe85a6a9aedf9b4b4bb2037e5553a3c5facc56795c8
7
+ data.tar.gz: d2f1763f628f74f6b15c4f163b415c9f8ba196b0a2eb5e88551fd797e88d09c86793e14c2fc08c03c4cfffe166b94c33e910bc7ca3449e4b238f59a9a418a9b8
@@ -0,0 +1,6 @@
1
+ require 't_learn'
2
+
3
+ em = TLearn::EM_Gaussian.new()
4
+ data_list = JSON.load(open("./faithful.json"))
5
+ history = em.fit(data_list, 2)
6
+
@@ -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]]
@@ -0,0 +1,5 @@
1
+ require "t_learn"
2
+
3
+ k_means = TLearn::K_Means.new()
4
+ data_list = JSON.load(open("./sample_1dim.json"))
5
+ history = k_means.fit(data_list)
@@ -0,0 +1 @@
1
+ [[15.502247605699552],[10.031162361842734],[12.785893673235108],[9.101787584643649],[8.647216162595063],[-0.18602575596870674],[13.304426208844399],[9.691071183781588],[6.42067013175459],[11.410522422736252],[15.061843518069862],[7.892876730248111],[14.036467319023096],[6.594403929208391],[3.4827705992049784],[6.510911464377955],[1.2338132042668954],[11.274962028428515],[7.385139146369269],[11.840565857891843],[7.145437185273359],[9.5860931304683],[-1.1101193089497627],[6.166011479135468],[-1.0232417412298849],[4.517231764628045],[15.453434948054953],[8.924087576264307],[8.471811880085701],[5.566816799742032],[4.526121591525575],[7.087145103274265],[17.734835501954183],[6.774528498041885],[8.056725084356396],[8.992945694804154],[7.320003093978557],[6.154146419514867],[8.11953365993374],[1.605019852398205],[10.744777918330055],[-3.8150729128173193],[1.856341135400534],[9.37726386224961],[9.521590037302113],[-3.724567455687217],[9.436834483294769],[12.432290857672488],[15.764592737908913],[10.45691608811633],[10.335262467866157],[7.645888069314575],[8.662350038896388],[15.204632711371449],[-1.362131304963583],[8.673790237277027],[14.303132054259702],[9.407310384835348],[15.489471014310393],[11.784177605464693],[13.081321775851572],[0.12813568830203256],[9.454716226746015],[14.461871596975556],[10.59334927222542],[1.14826061938625],[12.313253819226755],[1.4848050716972914],[3.8430735080525724],[8.779307281571308],[13.03521984767956],[9.553188061865956],[0.9593970124980657],[4.5622810423605795],[10.104908182668678],[-2.7163689804225934],[2.7686890003356712],[6.714494861544314],[13.10234877440273],[11.52762307484217],[8.387534638580826],[7.259383208763349],[8.375832159980039],[-2.8626781725826937],[8.431021127905721],[8.629136498526792],[1.4591735611654637],[0.4657154506804408],[10.546625051757905],[14.253441435238162],[9.421198322953561],[12.07421405190815],[8.099434161749084],[-3.1050347782908974],[-1.5578393185663357],[3.593119213632388],[13.943739479258545],[1.8424980867139922],[8.885745797303457],[11.365570868405632],[9.220388707642815],[11.352743860422661],[0.246185155880314],[13.182837074477344],[8.637212485174542],[4.107418483903812],[9.048010450304112],[12.30201263717897],[12.776693211844393],[-1.2126916390721605],[3.9409592101827204],[-3.268898754189706],[3.296789824005917],[0.955980175167626],[1.3394605402972912],[9.4928068769355],[2.1317279463698777],[-0.2087322832067032],[11.2515087067311],[12.785013819155662],[9.418700028504125],[8.378057834354497],[3.3482056866827032],[9.392298240210362],[6.921995878116412],[16.908489763737787],[3.534245230202511],[-2.2365752310826243],[9.119842878360831],[11.297449188818385],[9.612580394444354],[2.371380157340184],[11.160765268939183],[5.603869929933659],[-0.26573363237181163],[14.276634206035144],[13.126602143830695],[15.149085946207833],[11.030701895515875],[7.891717858874601],[4.807939258683021],[8.68274742027678],[6.5655644555652755],[10.11676469149336],[7.269476521328406],[-1.2246736267114038],[0.061196655713479625],[9.015487057987318],[11.972733849002077],[2.494327090011312],[0.3410899276817611],[-2.7185611705972383],[12.89515846065358],[-0.2287557950171077],[13.063768157796964],[2.067665220590409],[12.28857755903164],[2.629145241294504],[-0.7999786706840172],[12.303970045348843],[5.885767241791362],[0.9954931035147419],[0.5674631008972914],[9.675813844097476],[7.57772903364708],[0.9352375647926452],[10.851741546186366],[9.056107988640361],[11.706366635646681],[-3.1056394772569016],[10.49702296210099],[12.386215594617864],[1.0825285279734609],[8.156288458928259],[7.237971175255197],[-0.39319950015284244],[6.7951689976248355],[9.316439057266157],[-1.1862581543868318],[9.8677803172003],[11.567807468288098],[11.712366114761261],[2.8021279792383456],[1.0864390998340236],[10.672799051720531],[12.528497591176869],[11.573219485070453],[11.513867907501144],[8.977297976173382],[0.33309581008515765],[5.254123959131286],[8.457045337591826],[11.221232127880537],[13.057822540210566],[15.870383775463846],[8.653900561775957],[0.2090038838574081],[10.440768172806697],[9.594376008824582],[14.682891446600262],[8.684235973505213],[8.665357977185492],[4.609559789910099],[12.413890859308076],[1.2085488729490927],[12.284558050201383],[0.44880847055899786],[10.461721216078697],[9.275868247708484],[7.6473573978426455],[-3.8613883690119604],[9.927687290530022],[8.6319531488332],[10.546173095121517],[13.979166467914116],[12.30404888652566],[-3.2221373433549485],[10.2719843681249],[12.420493930956022],[0.44313249008706557],[16.29855687012691],[11.536811134446914],[-1.0237670201328983],[0.35637044002024343],[0.504602671744997],[2.6434730691169515],[12.06090401906364],[3.805746224622683],[0.5463643731112694],[10.515423629096826],[2.2234689632136106],[8.142833933578867],[-3.847638123628101],[-2.404379833974876],[9.112330418143985],[13.950787549141399],[10.555136121171866],[5.508604726360282],[10.793864974466372],[-2.9780215034251607],[4.387130979934475],[-0.13496597118199066],[16.437705847171294],[9.071711706499118],[13.153838362459492],[2.0918333259933632],[4.577344474962946],[8.009387982113106],[11.813062417466991],[-0.995094456017056],[7.68977315287397],[6.7655341877021975],[11.38875938863969],[16.17851567075197],[9.924697399796067],[11.73220350062593],[7.490976868415431],[12.264270948635499],[7.747700367450154],[10.07712430140692],[10.291131999929663],[12.349501507500499],[12.853996969527525],[7.860460596888769],[8.596333857844167],[14.105539278113094],[15.791341823719318],[7.884837592006897],[9.43834789749129],[9.566411107753797],[6.966210997658388],[10.237691960544549],[12.644170129605351],[10.229718686681089],[7.383972182951306],[12.296526853133999],[8.200169279516654],[0.8184214582033573],[13.7996120002719],[8.329736792830808],[2.192444856463629],[0.7515006759937947],[11.771915306561114],[-2.2843553799862306],[-1.756184177427617],[13.242810304305195],[11.03632887255782],[-3.666908277837644],[9.069921648824026],[9.71612460013958],[-0.3945217669154956],[6.743623116013861],[2.2987335899762376],[7.625414880838391],[-0.9397412637674939],[7.954814312706203],[6.070314098336373],[11.704466227635201],[1.4766980650579413],[2.2168151294945773],[7.5375286583817065],[16.57328558530112],[11.799675973596432],[10.224269413021169],[9.923952880820396],[7.942254044414861],[10.626440666839484],[14.359518603341147],[6.9696795151871935],[12.507930842967156],[-0.40305246278086565],[10.570663962559587],[17.315445354559227],[8.123521076638607],[9.93215026394885],[12.658251385187352],[3.1026958046024693],[10.861016997313305],[12.069627387079938],[11.76237676199894],[11.382856638305942],[-2.348473015802888],[6.179039669778126],[1.8989130215439645],[6.311756661809932],[11.0821979124593],[11.729466513147036],[12.41327720797426],[9.191663296706482],[1.658409827583641],[14.182772920455829],[0.5736792399317429],[-2.088443843010152],[5.528659693064155],[13.594817468390527],[-3.7057149510589857],[10.030589665509797],[-0.14396643361136202],[8.390579203308498],[13.407028638159662],[-1.547296212112352],[9.216511032616935],[11.719957003072588],[2.0698927242384904],[11.679975361382933],[10.183640971764437],[9.381256394022916],[8.294859663651426],[12.63477024594534],[4.7912905460124255],[1.91908634470975],[0.050252706631403965],[10.591074101026125],[5.403684627151474],[8.05681042491621],[0.7055476904164113],[9.581499878072126],[15.850774069743641],[9.721412676023311],[1.5889715524940167],[-2.0134286508879478],[7.426700049446142],[-1.4705551807780604],[0.10088791315321076],[-2.62923890377994],[8.085396042835088],[11.130784966219872],[-1.5320077306463644],[10.710039474329418],[2.181332519738917],[11.937636798469489],[7.188908608106005],[9.345707295971902],[-2.0407961552057925],[16.054755598913093],[-0.9712890285923469],[-1.5802608489197045],[9.4099325997907],[5.231837206345258],[12.596585236598518],[2.179012130124208],[5.100981099767372],[3.944062315132305],[12.735496140408795],[12.979763965643397],[8.436320043842857],[2.795718769082819],[7.590530353721933],[11.21419949514024],[7.812131212003473],[10.604196826782333],[1.340897198889198],[2.733992796844685],[10.886085218984723],[11.535242220878125],[4.971850988154721],[13.518644505790189],[9.017478875338604],[9.216053709641875],[1.7605808358657622],[0.15613722776168257],[-3.5867107207778424],[8.797926778908332],[10.949188524689433],[0.09157568332540343],[10.27981629865942],[7.937433746588284],[0.27099126512957905],[-1.469112242646236],[9.356526275052753],[10.472635216889525],[7.81877054850128],[-4.44987154642714],[-1.2361777578038993],[11.429183549268433],[-0.08898409073707754],[10.995640852446694],[-0.5288530935205223],[0.7243412299301414],[6.249068686029716],[6.0034253658717125],[1.1239086848538358],[7.1998706759317805],[-1.6547807856206616],[12.219660918009465],[7.738300910859522],[12.815250194725714],[8.946489960475075],[-1.4062946883195333],[11.409940657889473],[6.1318663049810365],[15.978565403413208],[11.065381703870761],[-0.3952702437145058],[4.372777145561995],[14.03637656044724],[-0.895131913959072],[15.835277032238048],[0.777475447360546],[8.226870175342572],[5.201531404753933],[12.254529849570584],[1.1263280159610882],[5.46235324824203],[-4.413913909220167],[5.685095264573909],[10.74830778025776],[12.170126570479916],[-1.9977018177972077],[-0.3161310758930191],[10.519529341952026],[13.03335694681526],[10.191283346622507],[3.5390508142700687],[15.81664860341442],[14.238438288209316],[1.0512724226529755],[15.185551599993442],[6.787423164021456],[10.065131691210965],[-0.021051514774684116],[12.367038286085073],[-2.048307119788346],[6.095082565129533],[-2.0784816436205307],[-0.811286200879647],[8.13762914089264],[2.270626681845356],[8.646665368744696],[-1.806605437014543],[12.916127410761808],[7.221661382446129],[9.473303837689082],[8.218928172934403],[12.96448644401525],[12.456365140583507],[1.1883420324699512],[12.642910923987763],[0.8245151907737727],[1.8971073473734166],[8.348883833345692],[11.00870993281469],[5.165734073406337],[5.208012852701222],[-1.212177622103903],[-1.5394709710819319],[0.8963039171629066],[10.911456501845603],[11.697980198982727],[13.327775867333337],[13.72719580949661],[7.835791977577916],[13.895217811649186],[1.722993213283189],[9.386120841482011],[-2.1740018986815888],[9.955680711320975],[8.984579243361235],[9.890800732256235],[4.2131377905094665],[8.94929917502587],[2.1401873466195167],[10.78859192574119],[-0.5833714242224266],[1.6390489306476577],[8.010863327090256],[12.94204325753381],[3.5977256471138186],[12.597880031017043],[10.189500529743178],[9.928519872727202],[8.907913427635767],[9.238833669214115],[9.002848703200982],[9.953238073901993],[9.278961472988577],[5.9724237725367955],[14.394994210014382],[8.971895366839636],[9.887407634210325],[1.779396534760567],[4.260469344211703],[6.100106463014408],[9.131299696775384],[6.454990286556848],[9.897158805490399],[7.356475004781496],[11.91536147180269],[7.550148404517969],[12.473278246278628],[9.787846975114844],[10.588163880846865],[9.802374728598762],[8.29971880703361],[15.135612831802371],[-0.966562465625433],[7.517189862556036],[-1.4770502733865034],[9.136118114268346],[-1.2103940839026877],[16.990319786340375],[6.8265137582338555],[10.941204990123673],[0.10684157955724193],[2.2005905214276913],[8.121344534753893],[10.530173454617678],[1.3965030810116659],[14.948109079850227],[-1.7652891278432585],[1.9898109349598094],[7.8128072041575],[10.337707324809193],[6.568080948430055],[0.7246305128983277],[11.365215193111561],[5.247262971578076],[10.50770874116011],[0.759004128697865],[0.8429299575132868],[9.869569623241823],[2.195745359022679],[15.124548927221253],[4.6529052072953645],[-0.6899233734952687],[0.9543911097196206],[-0.07949165291552161],[15.087459407091359],[-0.9887882680334682],[-0.363668576467377],[1.4733769508280663],[-0.8623281644380896],[-1.2236254616961673],[9.621710964228297],[8.309570855506161],[11.703481543603848],[-2.2905233081503567],[0.1959128322407891],[0.25768090754266143],[14.030176033355223],[-2.24657826437145],[7.597146897927336],[9.456104935755516],[3.505393339532704],[-2.7532482175667647],[11.549018349827021],[10.786166978409554],[-0.3699488427237593],[0.6761949315328198],[8.481562286496187],[8.333886114056876],[8.617657713909287],[14.330396502925922],[5.76091127857288],[7.374911816726527],[18.147291065409103],[9.042920954738575],[8.947163615459115],[-1.3752367691217444],[9.928013278711289],[11.721337324865743],[9.476993669053837],[10.470062203906467],[12.532121711447953],[2.1184430592909558],[14.373512371323885],[13.954160028070916],[10.6534353674781],[11.815957633962729],[-1.8661399507507657],[11.274001133527182],[12.347049358192159],[-0.7448364365947734],[5.867432651768153],[2.4840855262281223],[8.173221900574575],[9.62777584864659],[9.515803116312371],[-3.5324510578352153],[8.219105293938311],[-1.7478013125543708],[6.937271951484538],[7.2044658840478935],[11.395382263085857],[1.5933903310021351],[1.915042784168672],[0.5198839163458],[19.20668937731098],[11.195369565025388],[9.128450542601234],[10.190899490456621],[9.066060068079064],[9.145252737399803],[8.529033306742804],[14.288689058936136],[5.223923974279991],[17.235939911164035],[5.701872357076631],[8.11427520421839],[15.293061421392252],[9.78963061414035],[13.492101611686149],[10.345215813687178],[-2.4170264107008834],[14.685085172077807],[13.447530758928904],[13.6159111319957],[11.71961184907073],[1.6208514273781338],[5.6845913174227345],[6.06689103839725],[9.537675094575548],[14.283061684062343],[11.847229035677454],[9.748460165202717],[12.08767705230039],[1.6956503579118893],[10.320754761031798],[12.328381379547135],[-3.3198536750494863],[-0.5482734804352287],[4.010243910776242],[8.0201062773544],[7.1281845698434445],[13.37958319049942],[-0.6721640468049742],[7.875563550071588],[4.275598966685068],[11.219087718335185],[-3.712992219439484],[16.44902645493505],[-0.6506926093290356],[0.3633250934453858],[14.952435270059526],[9.958289707155057],[10.518222246138638],[11.043605796286753],[8.827898808100226],[8.290467973868838],[1.412499416831038],[4.743984069390151],[2.467649632044351],[13.50168017979888],[12.171619731784528],[6.838880392383106],[3.5136771511065423],[-2.2081681733583602],[-1.0595626807050285],[13.794393620643529],[4.148910157967242],[2.254048985884531],[11.236436406373667],[11.052866701956653],[9.982622659305164],[11.179716290828445],[13.628978985358486],[11.200247733634981],[7.3259001195986295],[10.762649214437516],[-0.5142096433242179],[0.2455786723866265],[14.155579171958411],[12.0517530302819],[8.980899582439058],[-0.8956454159862468],[9.476228433494827],[-0.024571305539980444],[0.19195698536185243],[2.4504941248338805],[6.420574853838474],[0.26482762548182204],[9.539366612551257],[3.632109301188442],[7.75570081216071],[12.809046786046373],[14.895613824355253],[5.991873055112181],[9.01152128428593],[0.2180522684949],[2.0706599477345238],[10.038211762826894],[2.0646970174688555],[12.45571302197418],[11.502259326586964],[8.781515104313842],[10.883046834210779],[0.546986172389343],[13.426482630404735],[9.685971514604304],[5.1959221080265],[12.3813604757959],[13.543459978333711],[13.840262603153004],[14.162437541888494],[9.905212450157551],[10.633279239415165],[8.02661163038807],[10.106014573953814],[10.549762156941974],[6.230245975470977],[9.213558288558927],[9.244322044647749],[0.5928137763696705],[1.1852006404793392],[11.895915440894148],[15.538445890085322],[-0.07750443443606975],[-0.6587351084651677],[7.965292054292426],[4.204958981186933],[13.917783966696192],[15.566790222237264],[13.670468369928539],[8.251586876085923],[3.1285539367023603],[-0.8710641929211371],[12.001819567832527],[8.415925845235341],[11.728549187942697],[12.465834674331612],[-2.5429055837894787],[11.871116870194665],[1.5646252307254114],[7.750869754552471],[12.738228969596655],[1.6941368243812867],[9.169545346592518],[9.641297333028287],[14.497187206418392],[4.66474191019107],[6.597312046043578],[-1.8513912308752094],[11.499016936757476],[12.380527293992145],[1.2162249011532633],[5.474535765512798],[-0.22752805843098492],[2.4258994908528684],[7.22731295532195],[12.48055970646311],[11.264067295539586],[8.87277401558749],[14.789436054448803],[10.534376913904563],[10.543367762062132],[14.03717190590259],[15.9043606984584],[9.739123944001593],[5.948917676063814],[12.42165752456597],[3.93807933083818],[9.271791495932778],[1.5753628967928195],[10.142625549578723],[0.8087577441763097],[-2.0309810521037712],[10.589010948406122],[4.898505033389448],[3.911550389317146],[8.310687037332034],[5.559148019329627],[5.626544086747856],[-1.8925894714162004],[14.309966385694931],[11.565599226033076],[-1.7478333361640095],[8.623956522235229],[1.2014069244044316],[10.464450758652236],[11.668919397071317],[-2.0960121047699722],[-1.3890019832675595],[8.750279434073443],[14.083921890021672],[2.0224791846666146],[8.689442366267873],[-0.21469236257760396],[11.358613927118466],[10.128813755120802],[-1.9952934660945896],[-2.605266637974046],[9.703862799010892],[10.26280659210915],[-0.2806808584057161],[13.77389147328887],[13.385869556775644],[6.712661489467903],[6.89621411523284],[12.926434358486969],[0.08894655632628302],[-1.018702833572004],[8.147939599209222],[5.877443955649673],[12.49624487599963],[2.0828292696183537],[6.588475167859203],[4.982746107212007],[1.971393504011664],[11.281935858514364],[12.250222867757103],[15.92015990743926],[9.740636635330931],[8.406338823165918],[9.295474793579185],[5.437126113589852],[-2.875515878186959],[6.660803026789807],[1.8694953642865653],[7.182911012163147],[9.528514062468503],[13.948737970938552],[11.923377041790957],[9.90499681908829],[1.33127628404691],[13.384175678691959],[10.94115667482623],[-0.9360994854802568],[12.984351703527578],[7.714902352326556],[11.503142407093105],[7.721445331637765],[-3.2292296232381723],[6.502661960384979],[12.069333143611855],[0.9760605749082268],[9.815920409259324],[9.741126874888307],[12.014966801239868],[1.1071299958533045],[11.030772598329355],[7.887418302817871],[-0.16377989382718205],[-2.820836720988677],[10.512254794832273],[-2.5323651843342336],[11.972926917176531],[8.115442291151851],[10.378947287151888],[5.750119246128844],[1.0669351505106683],[-1.0755498240608472],[10.02522470815749],[6.989802149270142],[9.483778488844619],[9.429737901855237],[8.433397226001226],[8.667258500109439],[12.742851583277329],[-2.942570985261663],[1.8691870918872437],[7.804778306252633],[-0.8722023746684421],[9.677666535567862],[9.390509813229096],[10.638570537243524],[9.550156351457426],[13.371897027433487],[-2.9811723732923903],[2.025792885357035],[4.987954016912232],[-2.1780023163360505],[-2.025324695765787],[-2.5588722094445484],[-0.3356624514885333],[9.85036607021067],[7.384072910512523],[13.278115410768915],[10.383362916167526],[2.0349375800245104],[11.988118089541517],[2.3973449630732047],[-0.6332114953784734],[11.292130825205271],[0.6391966651251385],[-3.5960802863799923],[3.5966510597496866],[13.251991489455785],[12.065683251009828],[-1.2331056091930745],[-3.5365224002331566],[8.216771000760426],[-0.8418401364414764],[11.871614912942485],[9.944699210976495],[12.275637337066572],[6.959826852645902],[10.534974858787324],[7.2142692470872225],[12.22078931844262],[11.384659147151437],[14.16940134920316],[12.030509452977611],[10.186826378143115],[9.704009684609293],[5.761341667021915],[10.175306993016891],[9.880798879744496],[8.50450210284044],[0.04916291139224314],[-1.6904525249140607],[14.223330343530849],[12.058688794410905],[8.950385968969272],[8.35676382245941],[4.307416257592619],[9.352323600244981],[8.705187636632376],[-1.4087353322231884],[4.6901489670330605],[8.212577214365188],[11.887613062399002],[10.59518256246398],[-1.168141932732482],[7.096573676112399],[2.7604194655658976],[9.124303250342246],[12.386437015171193],[12.811082524142401],[8.193955304622454],[9.084413537221801],[13.278005920720972],[-0.09926210842197081],[5.16615021620256],[12.590795166669738],[10.640359396457491],[11.917701548714833],[7.930314343216054],[-1.3995734643269309],[9.656551902401244],[12.273502335178954],[5.680973062888465],[-3.745589525642805],[8.157975255659595],[1.8491977796015737],[11.417329946627436],[13.203833023276324],[10.917415043751337],[10.483920326306768],[6.589350914044032],[-3.0910037235221854],[12.048557885465152],[19.76966315506804],[13.399272691188349],[5.794717587289478],[10.873413036995343],[-0.11962028562985301],[-2.773023040242623],[10.907371318317992],[7.6535777123164355],[4.322701649430708],[8.479512697765625],[3.1542141810234994],[6.4963805236451675],[5.322503490177721],[9.50730475309078],[9.546758225814788],[12.578592122421819],[11.247196713885662],[7.315000408811874],[7.478680462728828]]
@@ -1,71 +1,114 @@
1
1
  #!/usr/bin/ruby
2
2
  # -*- encoding: utf-8 -*-
3
3
 
4
- require "yaml"
5
4
 
6
5
  module TLearn
7
6
  class K_Means
8
- attr_accessor
9
-
10
- def initialize
11
- end
12
-
13
- #
14
- # === make datas for test
15
- #
16
- def make_data
7
+ attr_accessor :data_list, :k, :c_list
17
8
 
9
+ def init(data_list, k=2)
10
+ @data_list = data_list
11
+ sliced_data_list = @data_list.each_slice(k).to_a
12
+ @dim = data_list[0].size
13
+ @k = k
14
+ @cluster_list = @k.times.map {|n| Cluster.new(n, nil,sliced_data_list[n] , @dim)}
18
15
  end
19
16
 
20
- def run
21
-
22
- end
23
17
 
24
-
25
-
26
- def calc_burden_ratio(k)
27
- end
18
+ def fit(data_list, k)
19
+ init(data_list, k)
20
+ history = []
21
+ loop {
22
+ @cluster_list.each{|c| c.reset_v_list()}
23
+ @data_list.each {|d|
24
+ min_dist = 100000
25
+ min_cluster_id = -1
26
+ @cluster_list.each {|c|
27
+ dist = calc_dist(d, c)
28
+ if dist < min_dist
29
+ min_cluster_id = c.id
30
+ min_dist = dist
31
+ end
32
+ }
33
+ @cluster_list[min_cluster_id].add_v(d)
34
+ }
28
35
 
29
- def log_likelihood
30
-
31
- end
36
+ history.push(format_for_log())
37
+ @cluster_list.each{|c| c.calc_center()}
38
+ break if !change_clusters_center?
39
+ }
32
40
 
33
- def update_mu(k, burden_ratio)
34
- end
41
+ return {:result => format_for_log(), :history => history}
42
+ end
35
43
 
36
- def update_var(k, burden_ratio)
37
- end
44
+ def format_for_log()
45
+ result = @cluster_list.map {|c| c.format_hash()}
46
+ end
38
47
 
39
- def update_pi(k)
48
+ def calc_dist(v, cluster)
49
+ dist_sum = 0.0
50
+ v.each_with_index { |v_x, i|
51
+ dist_sum += (cluster.vec[i] - v_x).abs
52
+ }
53
+ return dist_sum/v.size
40
54
  end
41
-
42
- #
43
- # === 混合正規分布を生成する
44
- #
45
- def gaussian_mix()
46
- end
47
55
 
56
+ def change_clusters_center?()
57
+ @cluster_list.each {|c|
58
+ return true if(c.change_center?)
59
+ }
60
+ return false
61
+ end
48
62
 
49
63
  #
50
- # === gauusian distribution
64
+ # cluster
65
+ # cluster has id, vec, and v_list
51
66
  #
52
- def gauusian(x, mu, sigma)
53
- f1 = (1.0/Math.sqrt(2.0*Math::PI))
54
- f2 = Math.exp(-((x-mu)^2 / 2*sigma^2))
55
- return f1 * f2
56
- end
67
+ class Cluster
68
+ attr_accessor :id, :vec, :v_list, :last_vec
57
69
 
58
- #
59
- # ===ボックス―ミューラー法をよる正規分布乱数発生
60
- # @param mu flout 平均
61
- # @param sigma flout 標準偏差
62
- # @return ボックスミューラー法に従う正規分布に従う乱数を生成
63
- #
64
- def normal_rand(mu = 0,sigma = 1.0)
65
- a, b = rand(), rand() ;
66
- return (Math.sqrt(-2*Math.log(rand()))*Math.sin(2*Math::PI*rand()) * sigma) + mu
67
- end
70
+ def initialize(id, vec=nil, v_list=nil, dim=1)
71
+ @id = id
72
+ @v_list= v_list
73
+ @vec = dim.times.map{0.0} if vec == nil
74
+ @dim = dim
75
+ calc_center()
76
+ end
68
77
 
78
+ def calc_center()
79
+ @last_vec = Marshal.load(Marshal.dump(@vec))
80
+ vec_sum = Array.new
81
+ @v_list.each { |v|
82
+ v.each_with_index { |v_x, i|
83
+ vec_sum[i] ||= 0.0
84
+ vec_sum[i] += v_x
85
+ }
86
+ }
87
+ vec_sum.each_with_index { |new_vec, i| @vec[i] = new_vec/@v_list.size.to_f }
88
+ end
69
89
 
90
+ def add_v(v)
91
+ @v_list.push(v)
92
+ end
93
+
94
+ def reset_v_list()
95
+ @v_list = []
96
+ end
97
+
98
+ def change_center?
99
+ @dim.times { |i|
100
+ return true if @vec[i] != @last_vec[i]
101
+ }
102
+ return false
103
+ end
104
+
105
+ def format_hash()
106
+ cluster_hash = {}
107
+ cluster_hash[:id] = @id
108
+ cluster_hash[:vec] = @vec
109
+ cluster_hash[:v_list] = @v_list
110
+ return cluster_hash
111
+ end
112
+ end
70
113
  end
71
114
  end
@@ -1,3 +1,3 @@
1
1
  module TLearn
2
- VERSION = "0.1.1.6"
2
+ VERSION = "0.1.1.7"
3
3
  end
data/lib/t_learn.rb CHANGED
@@ -2,6 +2,7 @@ require "t_learn/version"
2
2
  require "t_learn/hop_field_net"
3
3
  require "t_learn/feedforward_neural_network"
4
4
  require "t_learn/em"
5
+ require "t_learn/k_means"
5
6
 
6
7
  module TLearn
7
8
  # 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.6
4
+ version: 0.1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tcom242242
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-23 00:00:00.000000000 Z
11
+ date: 2017-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -69,6 +69,10 @@ files:
69
69
  - Rakefile
70
70
  - bin/console
71
71
  - bin/setup
72
+ - examples/em_gaussian.rb
73
+ - examples/faithful.json
74
+ - examples/k_means.rb
75
+ - examples/sample_1dim.json
72
76
  - lib/t_learn.rb
73
77
  - lib/t_learn/em.rb
74
78
  - lib/t_learn/feedforward_neural_network.rb