Class: Liblinear
- Inherits:
-
Object
show all
- Defined in:
- lib/liblinear.rb,
lib/liblinear/array.rb,
lib/liblinear/error.rb,
lib/liblinear/model.rb,
lib/liblinear/example.rb,
lib/liblinear/problem.rb,
lib/liblinear/version.rb,
lib/liblinear/parameter.rb,
lib/liblinear/array/double.rb,
lib/liblinear/feature_node.rb,
lib/liblinear/array/integer.rb,
lib/liblinear/feature_node_matrix.rb
Defined Under Namespace
Classes: Array, Example, FeatureNode, FeatureNodeMatrix, 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
- LIBLINEAR_VERSION =
sprintf("%.2f", Liblinearswig::LIBLINEAR_VERSION / 100.0)
- VERSION =
'1.0.3'
Class Method Summary
collapse
-
.check_parameter(problem, parameter) ⇒ String
-
.cross_validation(fold, parameter, labels, examples, bias = -1)) ⇒ Array <Float>
-
.decision_function_bias(model, label_index) ⇒ Float
-
.decision_function_coefficient(model, feature_id, label_index) ⇒ Float
-
.labels(model) ⇒ Array <Integer>
-
.predict(model, example) ⇒ Integer
-
.predict_probabilities(model, example) ⇒ Array <Float>
-
.predict_values(model, example) ⇒ Array <Float>
-
.quiet_mode ⇒ Object
-
.train(parameter, labels, examples, bias = -1)) ⇒ Liblinear::Model
-
.verbose_mode ⇒ Object
Class Method Details
.check_parameter(problem, parameter) ⇒ String
35
36
37
|
# File 'lib/liblinear.rb', line 35
def check_parameter(problem, parameter)
Liblinearswig.check_parameter(problem.swig, parameter.swig)
end
|
.cross_validation(fold, parameter, labels, examples, bias = -1)) ⇒ Array <Float>
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/liblinear.rb', line 45
def cross_validation(fold, parameter, labels, examples, bias = -1)
parameter = Liblinear::Parameter.new(parameter)
problem = Liblinear::Problem.new(labels, examples, bias)
error_message = self.check_parameter(problem, parameter)
raise Liblinear::InvalidParameter, error_message if error_message
prediction_swig = Liblinearswig.new_double(labels.size)
Liblinearswig.cross_validation(problem.swig, parameter.swig, fold, prediction_swig)
prediction = Liblinear::Array::Double.decode(prediction_swig, labels.size)
Liblinear::Array::Double.delete(prediction_swig)
prediction
end
|
.decision_function_bias(model, label_index) ⇒ Float
117
118
119
|
# File 'lib/liblinear.rb', line 117
def decision_function_bias(model, label_index)
Liblinearswig.get_decfun_bias(model.swig, label_index)
end
|
.decision_function_coefficient(model, feature_id, label_index) ⇒ Float
110
111
112
|
# File 'lib/liblinear.rb', line 110
def decision_function_coefficient(model, feature_id, label_index)
Liblinearswig.get_decfun_coef(model.swig, feature_id, label_index)
end
|
.labels(model) ⇒ Array <Integer>
123
124
125
126
127
128
129
|
# File 'lib/liblinear.rb', line 123
def labels(model)
labels_swig = Liblinearswig.new_int(model.class_size)
Liblinearswig.get_labels(model.swig, labels_swig)
labels = Liblinear::Array::Integer.decode(labels_swig, model.class_size)
Liblinear::Array::Integer.delete(labels_swig)
labels
end
|
.predict(model, example) ⇒ Integer
73
74
75
76
77
78
|
# File 'lib/liblinear.rb', line 73
def predict(model, example)
feature_node = Liblinear::FeatureNode.new(example, model.feature_size, model.bias)
prediction = Liblinearswig.predict(model.swig, feature_node.swig)
feature_node.delete
prediction
end
|
.predict_probabilities(model, example) ⇒ Array <Float>
83
84
85
86
87
88
89
90
91
|
# File 'lib/liblinear.rb', line 83
def predict_probabilities(model, example)
feature_node = Liblinear::FeatureNode.new(example, model.feature_size, model.bias)
probability_swig = Liblinearswig.new_double(model.class_size)
Liblinearswig.predict_probability(model.swig, feature_node.swig, probability_swig)
probability = Liblinear::Array::Double.decode(probability_swig, model.class_size)
Liblinear::Array::Double.delete(probability_swig)
feature_node.delete
probability
end
|
.predict_values(model, example) ⇒ Array <Float>
96
97
98
99
100
101
102
103
104
|
# File 'lib/liblinear.rb', line 96
def predict_values(model, example)
feature_node = Liblinear::FeatureNode.new(example, model.feature_size, model.bias)
values_swig = Liblinearswig.new_double(model.class_size)
Liblinearswig.predict_values(model.swig, feature_node.swig, values_swig)
values = Liblinear::Array::Double.decode(values_swig, model.class_size)
Liblinear::Array::Double.delete(values_swig)
feature_node.delete
values
end
|
.quiet_mode ⇒ Object
131
132
133
|
# File 'lib/liblinear.rb', line 131
def quiet_mode
Liblinearswig.disable_stdout
end
|
.verbose_mode ⇒ Object
135
136
137
|
# File 'lib/liblinear.rb', line 135
def verbose_mode
Liblinearswig.enable_stdout
end
|