Module: Liblinear
- Defined in:
- lib/liblinear.rb,
lib/liblinear/error.rb,
lib/liblinear/model.rb,
lib/liblinear/problem.rb,
lib/liblinear/version.rb,
lib/liblinear/parameter.rb
Defined Under Namespace
Classes: InvalidParameter, Model, Parameter, Problem
Constant Summary collapse
- VERSION =
'0.0.2'
Instance Method Summary collapse
- #convert_to_feature_node_array(example, max_value_index, bias = -1)) ⇒ Liblinearswig::Feature_node
- #double_array_c_to_ruby(c_array, size) ⇒ Array<Double>
- #free_double_array(c_array) ⇒ Object
- #free_int_array(c_array) ⇒ Object
- #int_array_c_to_ruby(c_array, size) ⇒ Array<Integer>
- #new_double_array(ruby_array) ⇒ SWIG::TYPE_p_double
- #new_int_array(ruby_array) ⇒ SWIG::TYPE_p_int
Instance Method Details
#convert_to_feature_node_array(example, max_value_index, bias = -1)) ⇒ Liblinearswig::Feature_node
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/liblinear.rb', line 59 def convert_to_feature_node_array(example, max_value_index, bias = -1) example_indexes = [] if example.is_a?(Hash) example.each_key do |key| example_indexes << key end elsif example.is_a?(Array) example.each_index do |index| example_indexes << index end else raise TypeError, 'example must be a Hash or an Array' end example_indexes.sort! if bias >= 0 feature_nodes = Liblinearswig.feature_node_array(example_indexes.size + 2) Liblinearswig.feature_node_array_set(feature_nodes, example_indexes.size, max_value_index + 1, bias) Liblinearswig.feature_node_array_set(feature_nodes, example_indexes.size + 1, -1, 0) else feature_nodes = Liblinearswig.feature_node_array(example_indexes.size + 1) Liblinearswig.feature_node_array_set(feature_nodes, example_indexes.size, -1, 0) end f_index = 0 example_indexes.each do |e_index| Liblinearswig.feature_node_array_set(feature_nodes, f_index, e_index, example[e_index]) f_index += 1 end feature_nodes end |
#double_array_c_to_ruby(c_array, size) ⇒ Array<Double>
51 52 53 |
# File 'lib/liblinear.rb', line 51 def double_array_c_to_ruby(c_array, size) size.times.map {|index| double_getitem(c_array, index)} end |
#free_double_array(c_array) ⇒ Object
37 38 39 |
# File 'lib/liblinear.rb', line 37 def free_double_array(c_array) delete_double(c_array) unless c_array.nil? end |
#free_int_array(c_array) ⇒ Object
22 23 24 |
# File 'lib/liblinear.rb', line 22 def free_int_array(c_array) delete_int(c_array) unless c_array.nil? end |
#int_array_c_to_ruby(c_array, size) ⇒ Array<Integer>
44 45 46 |
# File 'lib/liblinear.rb', line 44 def int_array_c_to_ruby(c_array, size) size.times.map {|index| int_getitem(c_array, index)} end |
#new_double_array(ruby_array) ⇒ SWIG::TYPE_p_double
28 29 30 31 32 33 34 |
# File 'lib/liblinear.rb', line 28 def new_double_array(ruby_array) c_double_array = Liblinearswig.new_double(ruby_array.size) ruby_array.size.times do |index| Liblinearswig.double_setitem(c_double_array, index, ruby_array[index]) end c_double_array end |
#new_int_array(ruby_array) ⇒ SWIG::TYPE_p_int
13 14 15 16 17 18 19 |
# File 'lib/liblinear.rb', line 13 def new_int_array(ruby_array) c_int_array = Liblinearswig.new_int(ruby_array.size) ruby_array.size.times do |index| Liblinearswig.int_setitem(c_int_array, index, ruby_array[index]) end c_int_array end |