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
- L2R_LR =
Liblinearswig::L2R_LR
- L2R_L2LOSS_SVC_DUAL =
Liblinearswig::L2R_L2LOSS_SVC_DUAL
- L2R_L2LOSS_SVC =
Liblinearswig::L2R_L2LOSS_SVC
- L2R_L1LOSS_SVC_DUAL =
Liblinearswig::L2R_L1LOSS_SVC_DUAL
- MCSVM_CS =
Liblinearswig::MCSVM_CS
- L1R_L2LOSS_SVC =
Liblinearswig::L1R_L2LOSS_SVC
- L1R_LR =
Liblinearswig::L1R_LR
- L2R_LR_DUAL =
Liblinearswig::L2R_LR_DUAL
- L2R_L2LOSS_SVR =
Liblinearswig::L2R_L2LOSS_SVR
- L2R_L2LOSS_SVR_DUAL =
Liblinearswig::L2R_L2LOSS_SVR_DUAL
- L2R_L1LOSS_SVR_DUAL =
Liblinearswig::L2R_L1LOSS_SVR_DUAL
- VERSION =
'0.0.5'
Instance Method Summary collapse
- #array_to_hash(array) ⇒ Hash
- #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>
- #max_index(examples) ⇒ Integer
- #new_double_array(ruby_array) ⇒ SWIG::TYPE_p_double
- #new_int_array(ruby_array) ⇒ SWIG::TYPE_p_int
Instance Method Details
#array_to_hash(array) ⇒ Hash
83 84 85 86 87 88 89 90 91 92 |
# File 'lib/liblinear.rb', line 83 def array_to_hash(array) raise ArgumentError unless array.is_a?(Array) hash = {} key = 1 array.each do |value| hash[key] = value key += 1 end hash end |
#convert_to_feature_node_array(example, max_value_index, bias = -1)) ⇒ Liblinearswig::Feature_node
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/liblinear.rb', line 98 def convert_to_feature_node_array(example, max_value_index, bias = -1) example = array_to_hash(example) if example.is_a?(Array) example_indexes = [] example.each_key do |key| example_indexes << key 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>
63 64 65 |
# File 'lib/liblinear.rb', line 63 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
49 50 51 |
# File 'lib/liblinear.rb', line 49 def free_double_array(c_array) delete_double(c_array) unless c_array.nil? end |
#free_int_array(c_array) ⇒ Object
34 35 36 |
# File 'lib/liblinear.rb', line 34 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>
56 57 58 |
# File 'lib/liblinear.rb', line 56 def int_array_c_to_ruby(c_array, size) size.times.map {|index| int_getitem(c_array, index)} end |
#max_index(examples) ⇒ Integer
69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/liblinear.rb', line 69 def max_index(examples) max_index = 0 examples.each do |example| if example.is_a?(Hash) max_index = [max_index, example.keys.max].max if example.size > 0 else max_index = [max_index, example.size].max end end max_index end |
#new_double_array(ruby_array) ⇒ SWIG::TYPE_p_double
40 41 42 43 44 45 46 |
# File 'lib/liblinear.rb', line 40 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
25 26 27 28 29 30 31 |
# File 'lib/liblinear.rb', line 25 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 |