jubatus 0.4.1 → 0.5.0
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.
- data/.gitignore +4 -1
- data/README.rst +1 -1
- data/Rakefile +8 -0
- data/VERSION +1 -1
- data/{test → integration_test}/jubatus_test/anomaly/test.rb +22 -23
- data/{test → integration_test}/jubatus_test/classifier/test.rb +10 -15
- data/integration_test/jubatus_test/clustering/test.rb +133 -0
- data/integration_test/jubatus_test/error/test.rb +51 -0
- data/{test → integration_test}/jubatus_test/graph/test.rb +15 -30
- data/integration_test/jubatus_test/nearest_neighbor/test.rb +86 -0
- data/integration_test/jubatus_test/recommender/test.rb +111 -0
- data/{test → integration_test}/jubatus_test/regression/test.rb +10 -15
- data/integration_test/jubatus_test/stat/test.rb +108 -0
- data/{test → integration_test}/jubatus_test/test_util.rb +1 -0
- data/jubatus.gemspec +1 -1
- data/lib/jubatus/anomaly/client.rb +34 -33
- data/lib/jubatus/anomaly/types.rb +30 -18
- data/lib/jubatus/classifier/client.rb +22 -28
- data/lib/jubatus/classifier/types.rb +56 -33
- data/lib/jubatus/clustering/client.rb +51 -0
- data/lib/jubatus/clustering/types.rb +44 -0
- data/lib/jubatus/common/client.rb +83 -0
- data/lib/jubatus/common/datum.rb +85 -0
- data/lib/jubatus/common/message_string_generator.rb +41 -0
- data/lib/jubatus/common/types.rb +247 -0
- data/lib/jubatus/common.rb +4 -0
- data/lib/jubatus/graph/client.rb +83 -60
- data/lib/jubatus/graph/types.rb +146 -85
- data/lib/jubatus/nearest_neighbor/client.rb +53 -0
- data/lib/jubatus/nearest_neighbor/types.rb +44 -0
- data/lib/jubatus/recommender/client.rb +50 -44
- data/lib/jubatus/recommender/types.rb +29 -26
- data/lib/jubatus/regression/client.rb +22 -28
- data/lib/jubatus/regression/types.rb +30 -18
- data/lib/jubatus/stat/client.rb +37 -38
- data/lib/jubatus/stat/types.rb +5 -4
- data/test/jubatus_test/common/client_test.rb +104 -0
- data/test/jubatus_test/common/datum_test.rb +43 -0
- data/test/jubatus_test/common/message_string_generator_test.rb +50 -0
- data/test/jubatus_test/common/types_test.rb +73 -0
- metadata +29 -16
- data/test/jubatus_test/recommender/test.rb +0 -122
- data/test/jubatus_test/stat/test.rb +0 -109
data/lib/jubatus/graph/types.rb
CHANGED
@@ -1,123 +1,184 @@
|
|
1
|
-
# This file is auto-generated from graph.idl
|
1
|
+
# This file is auto-generated from graph.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
2
|
# *** DO NOT EDIT ***
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'msgpack/rpc'
|
6
|
-
|
7
|
-
class String
|
8
|
-
def to_tuple
|
9
|
-
self
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class Hash
|
14
|
-
def to_tuple
|
15
|
-
self
|
16
|
-
end
|
17
|
-
end
|
6
|
+
require 'jubatus/common'
|
18
7
|
|
19
8
|
module Jubatus
|
20
9
|
module Graph
|
21
10
|
|
22
11
|
class Node
|
12
|
+
include Jubatus::Common
|
13
|
+
TYPE = TTuple.new(TMap.new(TString.new, TString.new), TList.new(TInt.new(
|
14
|
+
false, 8)), TList.new(TInt.new(false, 8)))
|
15
|
+
|
23
16
|
def initialize(property, in_edges, out_edges)
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
@property = property
|
18
|
+
@in_edges = in_edges
|
19
|
+
@out_edges = out_edges
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_msgpack(out = '')
|
23
|
+
t = [@property, @in_edges, @out_edges]
|
24
|
+
return TYPE.to_msgpack(t)
|
25
|
+
end
|
26
|
+
|
27
|
+
def Node.from_msgpack(m)
|
28
|
+
val = TYPE.from_msgpack(m)
|
29
|
+
Node.new(*val)
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_s
|
33
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
34
|
+
gen.open("node")
|
35
|
+
gen.add("property", @property)
|
36
|
+
gen.add("in_edges", @in_edges)
|
37
|
+
gen.add("out_edges", @out_edges)
|
38
|
+
gen.close()
|
39
|
+
return gen.to_s
|
27
40
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
41
|
+
|
42
|
+
attr_reader :property, :in_edges, :out_edges
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
class Query
|
47
|
+
include Jubatus::Common
|
48
|
+
TYPE = TTuple.new(TString.new, TString.new)
|
49
|
+
|
50
|
+
def initialize(from_id, to_id)
|
51
|
+
@from_id = from_id
|
52
|
+
@to_id = to_id
|
32
53
|
end
|
54
|
+
|
33
55
|
def to_msgpack(out = '')
|
34
|
-
|
56
|
+
t = [@from_id, @to_id]
|
57
|
+
return TYPE.to_msgpack(t)
|
35
58
|
end
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
59
|
+
|
60
|
+
def Query.from_msgpack(m)
|
61
|
+
val = TYPE.from_msgpack(m)
|
62
|
+
Query.new(*val)
|
63
|
+
end
|
64
|
+
|
65
|
+
def to_s
|
66
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
67
|
+
gen.open("query")
|
68
|
+
gen.add("from_id", @from_id)
|
69
|
+
gen.add("to_id", @to_id)
|
70
|
+
gen.close()
|
71
|
+
return gen.to_s
|
42
72
|
end
|
43
|
-
|
44
|
-
|
73
|
+
|
74
|
+
attr_reader :from_id, :to_id
|
75
|
+
|
45
76
|
end
|
46
77
|
|
47
|
-
class
|
78
|
+
class PresetQuery
|
79
|
+
include Jubatus::Common
|
80
|
+
TYPE = TTuple.new(TList.new(TUserDef.new(Query)), TList.new(TUserDef.new(
|
81
|
+
Query)))
|
82
|
+
|
48
83
|
def initialize(edge_query, node_query)
|
49
|
-
|
50
|
-
|
51
|
-
end
|
52
|
-
def to_tuple
|
53
|
-
[@edge_query.map {|x| [x[0], x[1], ] },
|
54
|
-
@node_query.map {|x| [x[0], x[1], ] }]
|
84
|
+
@edge_query = edge_query
|
85
|
+
@node_query = node_query
|
55
86
|
end
|
87
|
+
|
56
88
|
def to_msgpack(out = '')
|
57
|
-
|
89
|
+
t = [@edge_query, @node_query]
|
90
|
+
return TYPE.to_msgpack(t)
|
58
91
|
end
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
)
|
92
|
+
|
93
|
+
def PresetQuery.from_msgpack(m)
|
94
|
+
val = TYPE.from_msgpack(m)
|
95
|
+
PresetQuery.new(*val)
|
64
96
|
end
|
65
|
-
|
97
|
+
|
98
|
+
def to_s
|
99
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
100
|
+
gen.open("preset_query")
|
101
|
+
gen.add("edge_query", @edge_query)
|
102
|
+
gen.add("node_query", @node_query)
|
103
|
+
gen.close()
|
104
|
+
return gen.to_s
|
105
|
+
end
|
106
|
+
|
107
|
+
attr_reader :edge_query, :node_query
|
108
|
+
|
66
109
|
end
|
67
110
|
|
68
111
|
class Edge
|
112
|
+
include Jubatus::Common
|
113
|
+
TYPE = TTuple.new(TMap.new(TString.new, TString.new), TString.new,
|
114
|
+
TString.new)
|
115
|
+
|
69
116
|
def initialize(property, source, target)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
end
|
74
|
-
def to_tuple
|
75
|
-
[@property.each_with_object({}) {|(k,v),h| h[k] = v},
|
76
|
-
@source,
|
77
|
-
@target]
|
117
|
+
@property = property
|
118
|
+
@source = source
|
119
|
+
@target = target
|
78
120
|
end
|
121
|
+
|
79
122
|
def to_msgpack(out = '')
|
80
|
-
|
123
|
+
t = [@property, @source, @target]
|
124
|
+
return TYPE.to_msgpack(t)
|
81
125
|
end
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
126
|
+
|
127
|
+
def Edge.from_msgpack(m)
|
128
|
+
val = TYPE.from_msgpack(m)
|
129
|
+
Edge.new(*val)
|
130
|
+
end
|
131
|
+
|
132
|
+
def to_s
|
133
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
134
|
+
gen.open("edge")
|
135
|
+
gen.add("property", @property)
|
136
|
+
gen.add("source", @source)
|
137
|
+
gen.add("target", @target)
|
138
|
+
gen.close()
|
139
|
+
return gen.to_s
|
88
140
|
end
|
89
|
-
|
90
|
-
|
141
|
+
|
142
|
+
attr_reader :property, :source, :target
|
143
|
+
|
91
144
|
end
|
92
145
|
|
93
|
-
class
|
146
|
+
class ShortestPathQuery
|
147
|
+
include Jubatus::Common
|
148
|
+
TYPE = TTuple.new(TString.new, TString.new, TInt.new(false, 4), TUserDef.new(
|
149
|
+
PresetQuery))
|
150
|
+
|
94
151
|
def initialize(source, target, max_hop, query)
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
end
|
100
|
-
def to_tuple
|
101
|
-
[@source,
|
102
|
-
@target,
|
103
|
-
@max_hop,
|
104
|
-
@query.to_tuple]
|
152
|
+
@source = source
|
153
|
+
@target = target
|
154
|
+
@max_hop = max_hop
|
155
|
+
@query = query
|
105
156
|
end
|
157
|
+
|
106
158
|
def to_msgpack(out = '')
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
159
|
+
t = [@source, @target, @max_hop, @query]
|
160
|
+
return TYPE.to_msgpack(t)
|
161
|
+
end
|
162
|
+
|
163
|
+
def ShortestPathQuery.from_msgpack(m)
|
164
|
+
val = TYPE.from_msgpack(m)
|
165
|
+
ShortestPathQuery.new(*val)
|
166
|
+
end
|
167
|
+
|
168
|
+
def to_s
|
169
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
170
|
+
gen.open("shortest_path_query")
|
171
|
+
gen.add("source", @source)
|
172
|
+
gen.add("target", @target)
|
173
|
+
gen.add("max_hop", @max_hop)
|
174
|
+
gen.add("query", @query)
|
175
|
+
gen.close()
|
176
|
+
return gen.to_s
|
177
|
+
end
|
178
|
+
|
179
|
+
attr_reader :source, :target, :max_hop, :query
|
120
180
|
|
121
|
-
end
|
122
181
|
end
|
123
182
|
|
183
|
+
end # Graph
|
184
|
+
end # Jubatus
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# This file is auto-generated from nearest_neighbor.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
|
+
# *** DO NOT EDIT ***
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'msgpack/rpc'
|
6
|
+
require 'jubatus/common'
|
7
|
+
require File.join(File.dirname(__FILE__), 'types')
|
8
|
+
|
9
|
+
module Jubatus
|
10
|
+
|
11
|
+
module NearestNeighbor
|
12
|
+
module Client
|
13
|
+
|
14
|
+
class NearestNeighbor < Jubatus::Common::ClientBase
|
15
|
+
include Jubatus::Common
|
16
|
+
def initialize(host, port, name, timeout_sec=10)
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
def clear
|
21
|
+
@jubatus_client.call("clear", [], TBool.new, [])
|
22
|
+
end
|
23
|
+
|
24
|
+
def set_row(id, d)
|
25
|
+
@jubatus_client.call("set_row", [id, d], TBool.new, [TString.new,
|
26
|
+
TDatum.new])
|
27
|
+
end
|
28
|
+
|
29
|
+
def neighbor_row_from_id(id, size)
|
30
|
+
@jubatus_client.call("neighbor_row_from_id", [id, size], TList.new(
|
31
|
+
TUserDef.new(IdWithScore)), [TString.new, TInt.new(false, 4)])
|
32
|
+
end
|
33
|
+
|
34
|
+
def neighbor_row_from_data(query, size)
|
35
|
+
@jubatus_client.call("neighbor_row_from_data", [query, size], TList.new(
|
36
|
+
TUserDef.new(IdWithScore)), [TDatum.new, TInt.new(false, 4)])
|
37
|
+
end
|
38
|
+
|
39
|
+
def similar_row_from_id(id, ret_num)
|
40
|
+
@jubatus_client.call("similar_row_from_id", [id, ret_num], TList.new(
|
41
|
+
TUserDef.new(IdWithScore)), [TString.new, TInt.new(true, 4)])
|
42
|
+
end
|
43
|
+
|
44
|
+
def similar_row_from_data(query, ret_num)
|
45
|
+
@jubatus_client.call("similar_row_from_data", [query, ret_num], TList.new(
|
46
|
+
TUserDef.new(IdWithScore)), [TDatum.new, TInt.new(true, 4)])
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end # Client
|
51
|
+
end # NearestNeighbor
|
52
|
+
|
53
|
+
end # Jubatus
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# This file is auto-generated from nearest_neighbor.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
|
+
# *** DO NOT EDIT ***
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'msgpack/rpc'
|
6
|
+
require 'jubatus/common'
|
7
|
+
|
8
|
+
module Jubatus
|
9
|
+
module NearestNeighbor
|
10
|
+
|
11
|
+
class IdWithScore
|
12
|
+
include Jubatus::Common
|
13
|
+
TYPE = TTuple.new(TString.new, TFloat.new)
|
14
|
+
|
15
|
+
def initialize(id, score)
|
16
|
+
@id = id
|
17
|
+
@score = score
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_msgpack(out = '')
|
21
|
+
t = [@id, @score]
|
22
|
+
return TYPE.to_msgpack(t)
|
23
|
+
end
|
24
|
+
|
25
|
+
def IdWithScore.from_msgpack(m)
|
26
|
+
val = TYPE.from_msgpack(m)
|
27
|
+
IdWithScore.new(*val)
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
32
|
+
gen.open("id_with_score")
|
33
|
+
gen.add("id", @id)
|
34
|
+
gen.add("score", @score)
|
35
|
+
gen.close()
|
36
|
+
return gen.to_s
|
37
|
+
end
|
38
|
+
|
39
|
+
attr_reader :id, :score
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end # NearestNeighbor
|
44
|
+
end # Jubatus
|
@@ -1,68 +1,74 @@
|
|
1
|
-
# This file is auto-generated from recommender.idl
|
1
|
+
# This file is auto-generated from recommender.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
2
|
# *** DO NOT EDIT ***
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'msgpack/rpc'
|
6
|
+
require 'jubatus/common'
|
6
7
|
require File.join(File.dirname(__FILE__), 'types')
|
7
8
|
|
8
9
|
module Jubatus
|
10
|
+
|
9
11
|
module Recommender
|
10
12
|
module Client
|
11
13
|
|
12
|
-
class Recommender
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def get_client
|
17
|
-
@cli
|
18
|
-
end
|
19
|
-
def get_config(name)
|
20
|
-
@cli.call(:get_config, name)
|
21
|
-
end
|
22
|
-
def clear_row(name, id)
|
23
|
-
@cli.call(:clear_row, name, id)
|
24
|
-
end
|
25
|
-
def update_row(name, id, row)
|
26
|
-
@cli.call(:update_row, name, id, row)
|
27
|
-
end
|
28
|
-
def clear(name)
|
29
|
-
@cli.call(:clear, name)
|
14
|
+
class Recommender < Jubatus::Common::ClientBase
|
15
|
+
include Jubatus::Common
|
16
|
+
def initialize(host, port, name, timeout_sec=10)
|
17
|
+
super
|
30
18
|
end
|
31
|
-
|
32
|
-
|
19
|
+
|
20
|
+
def clear_row(id)
|
21
|
+
@jubatus_client.call("clear_row", [id], TBool.new, [TString.new])
|
33
22
|
end
|
34
|
-
|
35
|
-
|
23
|
+
|
24
|
+
def update_row(id, row)
|
25
|
+
@jubatus_client.call("update_row", [id, row], TBool.new, [TString.new,
|
26
|
+
TDatum.new])
|
36
27
|
end
|
37
|
-
|
38
|
-
|
28
|
+
|
29
|
+
def clear
|
30
|
+
@jubatus_client.call("clear", [], TBool.new, [])
|
39
31
|
end
|
40
|
-
|
41
|
-
|
32
|
+
|
33
|
+
def complete_row_from_id(id)
|
34
|
+
@jubatus_client.call("complete_row_from_id", [id], TDatum.new,
|
35
|
+
[TString.new])
|
42
36
|
end
|
43
|
-
|
44
|
-
|
37
|
+
|
38
|
+
def complete_row_from_datum(row)
|
39
|
+
@jubatus_client.call("complete_row_from_datum", [row], TDatum.new,
|
40
|
+
[TDatum.new])
|
45
41
|
end
|
46
|
-
|
47
|
-
|
42
|
+
|
43
|
+
def similar_row_from_id(id, size)
|
44
|
+
@jubatus_client.call("similar_row_from_id", [id, size], TList.new(
|
45
|
+
TUserDef.new(IdWithScore)), [TString.new, TInt.new(false, 4)])
|
48
46
|
end
|
49
|
-
|
50
|
-
|
47
|
+
|
48
|
+
def similar_row_from_datum(row, size)
|
49
|
+
@jubatus_client.call("similar_row_from_datum", [row, size], TList.new(
|
50
|
+
TUserDef.new(IdWithScore)), [TDatum.new, TInt.new(false, 4)])
|
51
51
|
end
|
52
|
-
|
53
|
-
|
52
|
+
|
53
|
+
def decode_row(id)
|
54
|
+
@jubatus_client.call("decode_row", [id], TDatum.new, [TString.new])
|
54
55
|
end
|
55
|
-
|
56
|
-
|
56
|
+
|
57
|
+
def get_all_rows
|
58
|
+
@jubatus_client.call("get_all_rows", [], TList.new(TString.new), [])
|
57
59
|
end
|
58
|
-
|
59
|
-
|
60
|
+
|
61
|
+
def calc_similarity(lhs, rhs)
|
62
|
+
@jubatus_client.call("calc_similarity", [lhs, rhs], TFloat.new, [TDatum.new,
|
63
|
+
TDatum.new])
|
60
64
|
end
|
61
|
-
|
62
|
-
|
65
|
+
|
66
|
+
def calc_l2norm(row)
|
67
|
+
@jubatus_client.call("calc_l2norm", [row], TFloat.new, [TDatum.new])
|
63
68
|
end
|
64
69
|
end
|
65
70
|
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
71
|
+
end # Client
|
72
|
+
end # Recommender
|
73
|
+
|
74
|
+
end # Jubatus
|
@@ -1,41 +1,44 @@
|
|
1
|
-
# This file is auto-generated from recommender.idl
|
1
|
+
# This file is auto-generated from recommender.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
2
|
# *** DO NOT EDIT ***
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'msgpack/rpc'
|
6
|
+
require 'jubatus/common'
|
7
|
+
|
6
8
|
module Jubatus
|
7
9
|
module Recommender
|
8
10
|
|
9
|
-
class
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
def to_tuple(o)
|
14
|
-
o
|
15
|
-
end
|
16
|
-
end
|
11
|
+
class IdWithScore
|
12
|
+
include Jubatus::Common
|
13
|
+
TYPE = TTuple.new(TString.new, TFloat.new)
|
17
14
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
@num_values = num_values
|
22
|
-
end
|
23
|
-
def to_tuple
|
24
|
-
[@string_values.map {|x| [x[0], x[1], ] },
|
25
|
-
@num_values.map {|x| [x[0], x[1], ] }]
|
15
|
+
def initialize(id, score)
|
16
|
+
@id = id
|
17
|
+
@score = score
|
26
18
|
end
|
19
|
+
|
27
20
|
def to_msgpack(out = '')
|
28
|
-
|
21
|
+
t = [@id, @score]
|
22
|
+
return TYPE.to_msgpack(t)
|
29
23
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
)
|
24
|
+
|
25
|
+
def IdWithScore.from_msgpack(m)
|
26
|
+
val = TYPE.from_msgpack(m)
|
27
|
+
IdWithScore.new(*val)
|
35
28
|
end
|
36
|
-
attr_accessor :string_values, :num_values
|
37
|
-
end
|
38
29
|
|
39
|
-
|
30
|
+
def to_s
|
31
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
32
|
+
gen.open("id_with_score")
|
33
|
+
gen.add("id", @id)
|
34
|
+
gen.add("score", @score)
|
35
|
+
gen.close()
|
36
|
+
return gen.to_s
|
37
|
+
end
|
38
|
+
|
39
|
+
attr_reader :id, :score
|
40
|
+
|
40
41
|
end
|
41
42
|
|
43
|
+
end # Recommender
|
44
|
+
end # Jubatus
|
@@ -1,44 +1,38 @@
|
|
1
|
-
# This file is auto-generated from regression.idl
|
1
|
+
# This file is auto-generated from regression.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
2
|
# *** DO NOT EDIT ***
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'msgpack/rpc'
|
6
|
+
require 'jubatus/common'
|
6
7
|
require File.join(File.dirname(__FILE__), 'types')
|
7
8
|
|
8
9
|
module Jubatus
|
10
|
+
|
9
11
|
module Regression
|
10
12
|
module Client
|
11
13
|
|
12
|
-
class Regression
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def get_client
|
17
|
-
@cli
|
18
|
-
end
|
19
|
-
def get_config(name)
|
20
|
-
@cli.call(:get_config, name)
|
21
|
-
end
|
22
|
-
def train(name, train_data)
|
23
|
-
@cli.call(:train, name, train_data)
|
14
|
+
class Regression < Jubatus::Common::ClientBase
|
15
|
+
include Jubatus::Common
|
16
|
+
def initialize(host, port, name, timeout_sec=10)
|
17
|
+
super
|
24
18
|
end
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
@cli.call(:clear, name)
|
30
|
-
end
|
31
|
-
def save(name, id)
|
32
|
-
@cli.call(:save, name, id)
|
19
|
+
|
20
|
+
def train(train_data)
|
21
|
+
@jubatus_client.call("train", [train_data], TInt.new(true, 4), [TList.new(
|
22
|
+
TUserDef.new(ScoredDatum))])
|
33
23
|
end
|
34
|
-
|
35
|
-
|
24
|
+
|
25
|
+
def estimate(estimate_data)
|
26
|
+
@jubatus_client.call("estimate", [estimate_data], TList.new(TFloat.new),
|
27
|
+
[TList.new(TDatum.new)])
|
36
28
|
end
|
37
|
-
|
38
|
-
|
29
|
+
|
30
|
+
def clear
|
31
|
+
@jubatus_client.call("clear", [], TBool.new, [])
|
39
32
|
end
|
40
33
|
end
|
41
34
|
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
35
|
+
end # Client
|
36
|
+
end # Regression
|
37
|
+
|
38
|
+
end # Jubatus
|
@@ -1,32 +1,44 @@
|
|
1
|
-
# This file is auto-generated from regression.idl
|
1
|
+
# This file is auto-generated from regression.idl(0.4.5-347-g86989a6) with jenerator version 0.4.5-418-gd2d5f04/develop
|
2
2
|
# *** DO NOT EDIT ***
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'msgpack/rpc'
|
6
|
+
require 'jubatus/common'
|
7
|
+
|
6
8
|
module Jubatus
|
7
9
|
module Regression
|
8
10
|
|
9
|
-
class
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
@num_values.map {|x| [x[0], x[1], ] }]
|
11
|
+
class ScoredDatum
|
12
|
+
include Jubatus::Common
|
13
|
+
TYPE = TTuple.new(TFloat.new, TDatum.new)
|
14
|
+
|
15
|
+
def initialize(score, data)
|
16
|
+
@score = score
|
17
|
+
@data = data
|
17
18
|
end
|
19
|
+
|
18
20
|
def to_msgpack(out = '')
|
19
|
-
|
21
|
+
t = [@score, @data]
|
22
|
+
return TYPE.to_msgpack(t)
|
23
|
+
end
|
24
|
+
|
25
|
+
def ScoredDatum.from_msgpack(m)
|
26
|
+
val = TYPE.from_msgpack(m)
|
27
|
+
ScoredDatum.new(*val)
|
20
28
|
end
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
)
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
gen = Jubatus::Common::MessageStringGenerator.new
|
32
|
+
gen.open("scored_datum")
|
33
|
+
gen.add("score", @score)
|
34
|
+
gen.add("data", @data)
|
35
|
+
gen.close()
|
36
|
+
return gen.to_s
|
26
37
|
end
|
27
|
-
attr_accessor :string_values, :num_values
|
28
|
-
end
|
29
38
|
|
30
|
-
|
39
|
+
attr_reader :score, :data
|
40
|
+
|
31
41
|
end
|
32
42
|
|
43
|
+
end # Regression
|
44
|
+
end # Jubatus
|