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.1'
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) ⇒ Object
- #free_double_array(c_array) ⇒ Object
- #free_int_array(c_array) ⇒ Object
- #int_array_c_to_ruby(c_array, size) ⇒ Object
- #new_double_array(ruby_array) ⇒ SWIG::TYPE_p_double
-
#new_int_array(ruby_array) ⇒ SWIG::TYPE_p_int
include Liblinearswig.
Instance Method Details
#convert_to_feature_node_array(example, max_value_index, bias = -1)) ⇒ Liblinearswig::Feature_node
58 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 |
# File 'lib/liblinear.rb', line 58 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, 'data 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) ⇒ Object
50 51 52 |
# File 'lib/liblinear.rb', line 50 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
38 39 40 |
# File 'lib/liblinear.rb', line 38 def free_double_array(c_array) delete_double(c_array) unless c_array.nil? end |
#free_int_array(c_array) ⇒ Object
23 24 25 |
# File 'lib/liblinear.rb', line 23 def free_int_array(c_array) delete_int(c_array) unless c_array.nil? end |
#int_array_c_to_ruby(c_array, size) ⇒ Object
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
29 30 31 32 33 34 35 |
# File 'lib/liblinear.rb', line 29 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
include Liblinearswig
14 15 16 17 18 19 20 |
# File 'lib/liblinear.rb', line 14 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 |