numo-libsvm 1.0.0 → 1.0.1
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 +5 -5
- data/.github/workflows/build.yml +27 -0
- data/CHANGELOG.md +4 -0
- data/LICENSE.txt +1 -1
- data/README.md +5 -5
- data/ext/numo/libsvm/converter.c +8 -0
- data/ext/numo/libsvm/libsvmext.c +12 -0
- data/ext/numo/libsvm/svm_problem.c +3 -0
- data/lib/numo/libsvm/version.rb +1 -1
- data/numo-libsvm.gemspec +1 -1
- metadata +9 -10
- data/.travis.yml +0 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: '049939ac19f6b660182096f07e08e5191e76f09a91ea639e9d04b79fa85f2f2f'
|
|
4
|
+
data.tar.gz: ee2e9ceaff7c17604505590df3266817a4df7ba0e334e99ce04b909abaf379c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7fca5bc012281d8350260e01037001741dfd23439560a53765c1594f1202edac47e5b3eefa9c0e50659e96d83d1959473f6cd4892c36ac218d96ed69ec8833e3
|
|
7
|
+
data.tar.gz: 4d4681a436044f0cf011a55c051081a45a8789a6b188be359f1569f0a846344dfbd4a24f164282a87172d119185b1d3b878d1274c494265e79220215ffb0399c
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: build
|
|
2
|
+
|
|
3
|
+
on: [push, pull_request]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
strategy:
|
|
9
|
+
matrix:
|
|
10
|
+
ruby: [ '2.5', '2.6', '2.7' ]
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v2
|
|
13
|
+
- name: Checkout submodule
|
|
14
|
+
shell: bash
|
|
15
|
+
run: |
|
|
16
|
+
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
|
17
|
+
git submodule sync --recursive
|
|
18
|
+
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
|
19
|
+
- name: Set up Ruby ${{ matrix.ruby }}
|
|
20
|
+
uses: actions/setup-ruby@v1
|
|
21
|
+
with:
|
|
22
|
+
ruby-version: ${{ matrix.ruby }}
|
|
23
|
+
- name: Build and test with Rake
|
|
24
|
+
run: |
|
|
25
|
+
gem install bundler
|
|
26
|
+
bundle install --jobs 4 --retry 3
|
|
27
|
+
bundle exec rake
|
data/CHANGELOG.md
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Numo::Libsvm
|
|
2
2
|
|
|
3
|
-
[](https://github.com/yoshoku/numo-libsvm/actions?query=workflow%3Abuild)
|
|
4
4
|
[](https://badge.fury.io/rb/numo-libsvm)
|
|
5
|
-
[](https://github.com/yoshoku/numo-libsvm/blob/
|
|
6
|
-
[](https://github.com/yoshoku/numo-libsvm/blob/main/LICENSE.txt)
|
|
6
|
+
[](https://yoshoku.github.io/numo-libsvm/doc/)
|
|
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,
|
|
@@ -158,7 +158,7 @@ Accuracy: 98.3 %
|
|
|
158
158
|
### Note
|
|
159
159
|
The hyperparameter of SVM is given with Ruby Hash on Numo::Libsvm.
|
|
160
160
|
The hash key of hyperparameter and its meaning match the struct svm_parameter of LIBSVM.
|
|
161
|
-
The svm_parameter is detailed in [LIBSVM README](https://github.com/cjlin1/libsvm/blob/
|
|
161
|
+
The svm_parameter is detailed in [LIBSVM README](https://github.com/cjlin1/libsvm/blob/main/README).
|
|
162
162
|
|
|
163
163
|
```ruby
|
|
164
164
|
param = {
|
|
@@ -197,4 +197,4 @@ The gem is available as open source under the terms of the [BSD-3-Clause License
|
|
|
197
197
|
|
|
198
198
|
## Code of Conduct
|
|
199
199
|
|
|
200
|
-
Everyone interacting in the Numo::Libsvm project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/yoshoku/numo-libsvm/blob/
|
|
200
|
+
Everyone interacting in the Numo::Libsvm project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/yoshoku/numo-libsvm/blob/main/CODE_OF_CONDUCT.md).
|
data/ext/numo/libsvm/converter.c
CHANGED
|
@@ -28,6 +28,8 @@ int* nary_to_int_vec(VALUE vec_val)
|
|
|
28
28
|
vec_pt = (int32_t*)na_get_pointer_for_read(vec_val);
|
|
29
29
|
for (i = 0; i < n_elements; i++) { vec[i] = (int)vec_pt[i]; }
|
|
30
30
|
|
|
31
|
+
RB_GC_GUARD(vec_val);
|
|
32
|
+
|
|
31
33
|
return vec;
|
|
32
34
|
}
|
|
33
35
|
|
|
@@ -57,6 +59,8 @@ double* nary_to_dbl_vec(VALUE vec_val)
|
|
|
57
59
|
vec_pt = (double*)na_get_pointer_for_read(vec_val);
|
|
58
60
|
memcpy(vec, vec_pt, n_elements * sizeof(double));
|
|
59
61
|
|
|
62
|
+
RB_GC_GUARD(vec_val);
|
|
63
|
+
|
|
60
64
|
return vec;
|
|
61
65
|
}
|
|
62
66
|
|
|
@@ -99,6 +103,8 @@ double** nary_to_dbl_mat(VALUE mat_val)
|
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
105
|
|
|
106
|
+
RB_GC_GUARD(mat_val);
|
|
107
|
+
|
|
102
108
|
return mat;
|
|
103
109
|
}
|
|
104
110
|
|
|
@@ -167,6 +173,8 @@ struct svm_node** nary_to_svm_nodes(VALUE nary_val)
|
|
|
167
173
|
support_vecs[i][n_nonzero_cols].value = 0.0;
|
|
168
174
|
}
|
|
169
175
|
|
|
176
|
+
RB_GC_GUARD(nary_val);
|
|
177
|
+
|
|
170
178
|
return support_vecs;
|
|
171
179
|
}
|
|
172
180
|
|
data/ext/numo/libsvm/libsvmext.c
CHANGED
|
@@ -114,6 +114,9 @@ VALUE train(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash)
|
|
|
114
114
|
xfree_svm_problem(problem);
|
|
115
115
|
xfree_svm_parameter(param);
|
|
116
116
|
|
|
117
|
+
RB_GC_GUARD(x_val);
|
|
118
|
+
RB_GC_GUARD(y_val);
|
|
119
|
+
|
|
117
120
|
return model_hash;
|
|
118
121
|
}
|
|
119
122
|
|
|
@@ -229,6 +232,9 @@ VALUE cross_validation(VALUE self, VALUE x_val, VALUE y_val, VALUE param_hash, V
|
|
|
229
232
|
xfree_svm_problem(problem);
|
|
230
233
|
xfree_svm_parameter(param);
|
|
231
234
|
|
|
235
|
+
RB_GC_GUARD(x_val);
|
|
236
|
+
RB_GC_GUARD(y_val);
|
|
237
|
+
|
|
232
238
|
return t_val;
|
|
233
239
|
}
|
|
234
240
|
|
|
@@ -295,6 +301,8 @@ VALUE predict(VALUE self, VALUE x_val, VALUE param_hash, VALUE model_hash)
|
|
|
295
301
|
xfree_svm_model(model);
|
|
296
302
|
xfree_svm_parameter(param);
|
|
297
303
|
|
|
304
|
+
RB_GC_GUARD(x_val);
|
|
305
|
+
|
|
298
306
|
return y_val;
|
|
299
307
|
}
|
|
300
308
|
|
|
@@ -385,6 +393,8 @@ VALUE decision_function(VALUE self, VALUE x_val, VALUE param_hash, VALUE model_h
|
|
|
385
393
|
xfree_svm_model(model);
|
|
386
394
|
xfree_svm_parameter(param);
|
|
387
395
|
|
|
396
|
+
RB_GC_GUARD(x_val);
|
|
397
|
+
|
|
388
398
|
return y_val;
|
|
389
399
|
}
|
|
390
400
|
|
|
@@ -460,6 +470,8 @@ VALUE predict_proba(VALUE self, VALUE x_val, VALUE param_hash, VALUE model_hash)
|
|
|
460
470
|
xfree_svm_model(model);
|
|
461
471
|
xfree_svm_parameter(param);
|
|
462
472
|
|
|
473
|
+
RB_GC_GUARD(x_val);
|
|
474
|
+
|
|
463
475
|
return y_val;
|
|
464
476
|
}
|
|
465
477
|
|
data/lib/numo/libsvm/version.rb
CHANGED
data/numo-libsvm.gemspec
CHANGED
|
@@ -49,7 +49,7 @@ Gem::Specification.new do |spec|
|
|
|
49
49
|
spec.add_runtime_dependency 'numo-narray', '~> 0.9.1'
|
|
50
50
|
|
|
51
51
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
|
52
|
-
spec.add_development_dependency 'rake', '~>
|
|
52
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
|
53
53
|
spec.add_development_dependency 'rake-compiler', '~> 1.0'
|
|
54
54
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
55
55
|
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: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- yoshoku
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-01-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: numo-narray
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '12.0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '12.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rake-compiler
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,10 +92,10 @@ extensions:
|
|
|
92
92
|
- ext/numo/libsvm/extconf.rb
|
|
93
93
|
extra_rdoc_files: []
|
|
94
94
|
files:
|
|
95
|
+
- ".github/workflows/build.yml"
|
|
95
96
|
- ".gitignore"
|
|
96
97
|
- ".gitmodules"
|
|
97
98
|
- ".rspec"
|
|
98
|
-
- ".travis.yml"
|
|
99
99
|
- CHANGELOG.md
|
|
100
100
|
- CODE_OF_CONDUCT.md
|
|
101
101
|
- Gemfile
|
|
@@ -129,7 +129,7 @@ metadata:
|
|
|
129
129
|
homepage_uri: https://github.com/yoshoku/numo-libsvm
|
|
130
130
|
source_code_uri: https://github.com/yoshoku/numo-libsvm
|
|
131
131
|
documentation_uri: https://yoshoku.github.io/numo-libsvm/doc/
|
|
132
|
-
post_install_message:
|
|
132
|
+
post_install_message:
|
|
133
133
|
rdoc_options: []
|
|
134
134
|
require_paths:
|
|
135
135
|
- lib
|
|
@@ -144,9 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
145
|
version: '0'
|
|
146
146
|
requirements: []
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
signing_key:
|
|
147
|
+
rubygems_version: 3.1.4
|
|
148
|
+
signing_key:
|
|
150
149
|
specification_version: 4
|
|
151
150
|
summary: Numo::Libsvm is a Ruby gem binding to the LIBSVM library. Numo::Libsvm makes
|
|
152
151
|
to use the LIBSVM functions with dataset represented by Numo::NArray.
|