Class: SvmToolkit::Svm
- Inherits:
-
Object
- Object
- SvmToolkit::Svm
- Defined in:
- lib/svm_toolkit/svm.rb
Overview
Extends the Java SVM class.
Defined Under Namespace
Classes: ContourDisplay, CrossValidationSearch, SvmTrainer
Class Method Summary collapse
-
.cross_validation(problem, parameters, n_folds, target) ⇒ Object
Using given Problem and Parameter instances, builds and trains SVM models using n-fold cross-validation.
-
.cross_validation_search(training_set, cross_valn_set, costs = [-2,-1,0,1,2,3].collect {|i| 2**i}, gammas = [-2,-1,0,1,2,3].collect {|i| 2**i}, params = {}) ⇒ Object
Perform cross validation search on given gamma/cost values, using an RBF kernel, returning the best performing model and optionally displaying a contour map of performance.
-
.train(problem, parameters) ⇒ Object
Using given Problem and Parameter instances, builds and trains an SVM model.
Class Method Details
.cross_validation(problem, parameters, n_folds, target) ⇒ Object
Using given Problem and Parameter instances, builds and trains SVM models using n-fold cross-validation.
14 15 16 |
# File 'lib/svm_toolkit/svm.rb', line 14 def self.cross_validation(problem, parameters, n_folds, target) Svm.svm_cross_validation(problem, parameters, n_folds, target) end |
.cross_validation_search(training_set, cross_valn_set, costs = [-2,-1,0,1,2,3].collect {|i| 2**i}, gammas = [-2,-1,0,1,2,3].collect {|i| 2**i}, params = {}) ⇒ Object
Perform cross validation search on given gamma/cost values, using an RBF kernel, returning the best performing model and optionally displaying a contour map of performance.
-
training_set - instance of Problem, used for training
-
cross_valn_set - instance of Problem, used for evaluating models
-
costs - array of cost values to search across
-
gammas - array of gamma values to search across
-
params - Optional parameters include:
-
:evaluator => Evaluator::OverallAccuracy, the name of the class to use for computing performance
-
:show_plot => false, whether to display contour plot
-
Returns an instance of Model, the best performing model.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/svm_toolkit/svm.rb', line 34 def Svm.cross_validation_search(training_set, cross_valn_set, costs = [-2,-1,0,1,2,3].collect {|i| 2**i}, gammas = [-2,-1,0,1,2,3].collect {|i| 2**i}, params = {}) evaluator = params.fetch :evaluator, Evaluator::OverallAccuracy show_plot = params.fetch :show_plot, false fjp = ForkJoinPool.new task = CrossValidationSearch.new gammas, costs, training_set, cross_valn_set, evaluator results, best_model = fjp.invoke task if show_plot ContourDisplay.new(costs.collect {|n| Math.log2(n)}, gammas.collect {|n| Math.log2(n)}, results) end return best_model end |
.train(problem, parameters) ⇒ Object
Using given Problem and Parameter instances, builds and trains an SVM model.
8 9 10 |
# File 'lib/svm_toolkit/svm.rb', line 8 def self.train(problem, parameters) Svm.svm_train(problem, parameters) end |