Class: Liblinear::Model
- Inherits:
-
Object
show all
- Includes:
- Liblinear, Liblinearswig
- Defined in:
- lib/liblinear/model.rb
Constant Summary
Constants included
from Liblinear
L1R_L2LOSS_SVC, L1R_LR, L2R_L1LOSS_SVC_DUAL, L2R_L1LOSS_SVR_DUAL, L2R_L2LOSS_SVC, L2R_L2LOSS_SVC_DUAL, L2R_L2LOSS_SVR, L2R_L2LOSS_SVR_DUAL, L2R_LR, L2R_LR_DUAL, MCSVM_CS, VERSION
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Liblinear
#array_to_hash, #convert_to_feature_node_array, #double_array_c_to_ruby, #free_double_array, #free_int_array, #int_array_c_to_ruby, #max_index, #new_double_array, #new_int_array
Constructor Details
#initialize(arg_1, arg_2 = nil) ⇒ Model
Returns a new instance of Model.
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/liblinear/model.rb', line 11
def initialize(arg_1, arg_2 = nil)
if arg_2
unless arg_1.is_a?(Liblinear::Problem) && arg_2.is_a?(Liblinear::Parameter)
raise ArgumentError, 'arguments must be [Liblinear::Problem] and [Liblinear::Parameter]'
end
error_msg = check_parameter(arg_1.prob, arg_2.params)
raise InvalidParameter, error_msg if error_msg
@model = train(arg_1.prob, arg_2.params)
else
raise ArgumentError, 'argument must be [String]' unless arg_1.is_a?(String)
@model = load_model(arg_1)
end
end
|
Instance Attribute Details
#model ⇒ Object
Returns the value of attribute model.
5
6
7
|
# File 'lib/liblinear/model.rb', line 5
def model
@model
end
|
Instance Method Details
#bias(label_index = 0) ⇒ Double
87
88
89
|
# File 'lib/liblinear/model.rb', line 87
def bias(label_index = 0)
get_decfun_bias(@model, label_index)
end
|
#class_size ⇒ Integer
26
27
28
|
# File 'lib/liblinear/model.rb', line 26
def class_size
get_nr_class(@model)
end
|
#coefficient(feature_index = nil, label_index = 0) ⇒ Double, Array <Double>
79
80
81
82
83
|
# File 'lib/liblinear/model.rb', line 79
def coefficient(feature_index = nil, label_index = 0)
return get_decfun_coef(@model, feature_index, label_index) if feature_index
coefficients = []
feature_size.times.map {|feature_index| get_decfun_coef(@model, feature_index + 1, label_index)}
end
|
#feature_size ⇒ Integer
37
38
39
|
# File 'lib/liblinear/model.rb', line 37
def feature_size
get_nr_feature(@model)
end
|
#labels ⇒ Array <Integer>
42
43
44
45
46
47
48
|
# File 'lib/liblinear/model.rb', line 42
def labels
c_int_array = new_int(class_size)
get_labels(@model, c_int_array)
labels = int_array_c_to_ruby(c_int_array, class_size)
delete_int(c_int_array)
labels
end
|
#nr_class ⇒ Integer
31
32
33
34
|
# File 'lib/liblinear/model.rb', line 31
def nr_class
warn "'nr_class' is deprecated. Please use 'class_size' instead."
class_size
end
|
#predict(example) ⇒ Double
52
53
54
55
56
57
|
# File 'lib/liblinear/model.rb', line 52
def predict(example)
feature_nodes = convert_to_feature_node_array(example, @model.nr_feature, @model.bias)
prediction = Liblinearswig.predict(@model, feature_nodes)
feature_node_array_destroy(feature_nodes)
prediction
end
|
#predict_probability(example) ⇒ Hash
61
62
63
|
# File 'lib/liblinear/model.rb', line 61
def predict_probability(example)
predict_prob_val(example, :predict_probability)
end
|
#predict_values(example) ⇒ Hash
67
68
69
|
# File 'lib/liblinear/model.rb', line 67
def predict_values(example)
predict_prob_val(example, :predict_values)
end
|
#regression_model? ⇒ Boolean
92
93
94
|
# File 'lib/liblinear/model.rb', line 92
def regression_model?
check_regression_model(@model) == 1 ? true : false
end
|
#save(filename) ⇒ Object
72
73
74
|
# File 'lib/liblinear/model.rb', line 72
def save(filename)
save_model(filename, @model)
end
|