numo-libsvm 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8cf97ac572136b9ee1d0919dc308eded11bc3ce
4
- data.tar.gz: 6df5e37fa325cf802643626c95f88498b75f50a8
3
+ metadata.gz: '098e529149ba06f54fc8c4949afa2051dd62f856'
4
+ data.tar.gz: b86c22820135dff7f95c34dfe6517f89d451156f
5
5
  SHA512:
6
- metadata.gz: ac703a48952bfcf3909c672f6901c8873e4c5e1f2c998da28d3912bc62d254f4cb2e689417c8472fb9e10a9f80c6a9f4cfda4b64850de1cbb4ca1d34527277da
7
- data.tar.gz: 826f1d341a53c733dfc0917615829b66673d18e43cd4efce062634057b84201347a1398da2dbb6b80b8baaebfbea784b8c10d57f2b0e7da73e9ac6e9389d2917
6
+ metadata.gz: 8d3ed02591f622d50203c6552671ebcfa26ead1cf86816e0ae166548981409ef8b6b14bce2a0123e9d3f1abcaf121b52c49e7ee4110ebc3e4a0f4224902c388a
7
+ data.tar.gz: 56595713d0dccca3f953ee7583f90ca6fb63d83eedb0d6f2878caaacf6c8db859628f82c88e95b5062eabb85316bbe034fa716b86aebd07fc5f414a5f1ccda77
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.4.0
2
+ - Add verbose parameter to output learning process messages.
3
+ - Several documentation improvements.
4
+
1
5
  # 0.3.0
2
6
  - Add random_seed parameter for specifying seed to give to srand function.
3
7
  - Several documentation improvements.
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![Build Status](https://travis-ci.org/yoshoku/numo-libsvm.svg?branch=master)](https://travis-ci.org/yoshoku/numo-libsvm)
4
4
  [![Gem Version](https://badge.fury.io/rb/numo-libsvm.svg)](https://badge.fury.io/rb/numo-libsvm)
5
5
  [![BSD 3-Clause License](https://img.shields.io/badge/License-BSD%203--Clause-orange.svg)](https://github.com/yoshoku/numo-libsvm/blob/master/LICENSE.txt)
6
- [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](https://www.rubydoc.info/gems/numo-libsvm/0.3.0)
6
+ [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](https://www.rubydoc.info/gems/numo-libsvm/0.4.0)
7
7
 
8
8
  Numo::Libsvm is a Ruby gem binding to the [LIBSVM](https://github.com/cjlin1/libsvm) library.
9
9
  LIBSVM is one of the famous libraries that implemented Support Vector Machines,
@@ -190,6 +190,7 @@ param = {
190
190
  p: 0.1, # [Float] Parameter epsilon in loss function of epsilon-SVR
191
191
  shrinking: true, # [Boolean] Whether to use the shrinking heuristics
192
192
  probability: false, # [Boolean] Whether to train a SVC or SVR model for probability estimates
193
+ verbose: false, # [Boolean] Whether to output learning process message
193
194
  random_seed: 1 # [Integer/Nil] Random seed
194
195
  }
195
196
  ```
@@ -55,6 +55,7 @@ VALUE train(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash)
55
55
  narray_t* y_nary;
56
56
  char* err_msg;
57
57
  VALUE random_seed;
58
+ VALUE verbose;
58
59
  VALUE model_hash;
59
60
 
60
61
  if (CLASS_OF(x_val) != numo_cDFloat) {
@@ -101,7 +102,11 @@ VALUE train(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash)
101
102
  return Qnil;
102
103
  }
103
104
 
104
- svm_set_print_string_function(print_null);
105
+ verbose = rb_hash_aref(param_hash, ID2SYM(rb_intern("verbose")));
106
+ if (verbose != Qtrue) {
107
+ svm_set_print_string_function(print_null);
108
+ }
109
+
105
110
  model = svm_train(problem, param);
106
111
  model_hash = svm_model_to_rb_hash(model);
107
112
  svm_free_and_destroy_model(&model);
@@ -122,6 +127,30 @@ VALUE train(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash)
122
127
  * @param param [Hash] The parameters of an SVM model.
123
128
  * @param n_folds [Integer] The number of folds.
124
129
  *
130
+ * @example
131
+ * require 'numo/libsvm'
132
+ *
133
+ * # x: samples
134
+ * # y: labels
135
+ *
136
+ * # Define parameters of C-SVC with RBF Kernel.
137
+ * param = {
138
+ * svm_type: Numo::Libsvm::SvmType::C_SVC,
139
+ * kernel_type: Numo::Libsvm::KernelType::RBF,
140
+ * gamma: 1.0,
141
+ * C: 1,
142
+ * random_seed: 1,
143
+ * verbose: true
144
+ * }
145
+ *
146
+ * # Perform 5-cross validation.
147
+ * n_folds = 5
148
+ * res = Numo::Libsvm.cv(x, y, param, n_folds)
149
+ *
150
+ * # Print mean accuracy.
151
+ * mean_accuracy = y.eq(res).count.fdiv(y.size)
152
+ * puts "Accuracy: %.1f %%" % (100 * mean_accuracy)
153
+ *
125
154
  * @raise [ArgumentError] If the sample array is not 2-dimensional, the label array is not 1-dimensional,
126
155
  * the sample array and label array do not have the same number of samples, or
127
156
  * the hyperparameter has an invalid value, this error is raised.
@@ -138,6 +167,7 @@ VALUE cross_validation(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash, V
138
167
  narray_t* y_nary;
139
168
  char* err_msg;
140
169
  VALUE random_seed;
170
+ VALUE verbose;
141
171
  struct svm_problem* problem;
142
172
  struct svm_parameter* param;
143
173
 
@@ -189,7 +219,11 @@ VALUE cross_validation(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash, V
189
219
  t_val = rb_narray_new(numo_cDFloat, 1, t_shape);
190
220
  t_pt = (double*)na_get_pointer_for_write(t_val);
191
221
 
192
- svm_set_print_string_function(print_null);
222
+ verbose = rb_hash_aref(param_hash, ID2SYM(rb_intern("verbose")));
223
+ if (verbose != Qtrue) {
224
+ svm_set_print_string_function(print_null);
225
+ }
226
+
193
227
  svm_cross_validation(problem, param, n_folds, t_pt);
194
228
 
195
229
  xfree_svm_problem(problem);
@@ -3,6 +3,6 @@
3
3
  module Numo
4
4
  module Libsvm
5
5
  # The version of Numo::Libsvm you are using.
6
- VERSION = '0.3.0'
6
+ VERSION = '0.4.0'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-libsvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-22 00:00:00.000000000 Z
11
+ date: 2019-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray