rumale-svm 0.5.1 → 0.7.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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/rumale/svm/one_class_svm.rb +21 -2
- data/lib/rumale/svm/version.rb +2 -2
- data/sig/rumale/svm/one_class_svm.rbs +1 -0
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec0ef314d44123fa222655004b099652d244c7fb9bea73569a4fe701974e43b1
|
4
|
+
data.tar.gz: ccaca04e1b3fe7691467a26a678f8978bc2f77e5a1b2e094b1af08923779588b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44b1ab01d131133ef5d9fb32ae4dfaff5ca1187e45c5a1b4f4ec3b198f515020baf85b5bb4a1bb110ae6e85d74f521af86661b4741a63828bd49288a138c9513
|
7
|
+
data.tar.gz: af83ab927ed5fbd630880b51fa2a0bf25c9aaad066a603d1ce6bf178c873ed669461eb46cdb23003b888799f11a5114fdf5405288d8129783c9495ec74799fd5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# 0.7.0
|
2
|
+
- Support for probabilistic outputs with Rumale::SVM::OneClassSVM.
|
3
|
+
- Update numo-libsvm depedency to v2.1 or higher.
|
4
|
+
|
5
|
+
# 0.6.0
|
6
|
+
- Update numo-libsvm and numo-liblinear depedency to v2.0 or higher.
|
7
|
+
|
1
8
|
# 0.5.1
|
2
9
|
- Refator specs and config files.
|
3
10
|
|
@@ -24,15 +24,16 @@ module Rumale
|
|
24
24
|
# @param gamma [Float] The gamma parameter in rbf/poly/sigmoid kernel function.
|
25
25
|
# @param coef0 [Float] The coefficient in poly/sigmoid kernel function.
|
26
26
|
# @param shrinking [Boolean] The flag indicating whether to use the shrinking heuristics.
|
27
|
+
# @param probability [Boolean] The flag indicating whether to train the parameter for probability estimation.
|
27
28
|
# @param cache_size [Float] The cache memory size in MB.
|
28
29
|
# @param tol [Float] The tolerance of termination criterion.
|
29
30
|
# @param verbose [Boolean] The flag indicating whether to output learning process message
|
30
31
|
# @param random_seed [Integer/Nil] The seed value using to initialize the random generator.
|
31
32
|
def initialize(nu: 1.0, kernel: 'rbf', degree: 3, gamma: 1.0, coef0: 0.0,
|
32
|
-
shrinking: true, cache_size: 200.0, tol: 1e-3, verbose: false, random_seed: nil)
|
33
|
+
shrinking: true, probability: true, cache_size: 200.0, tol: 1e-3, verbose: false, random_seed: nil)
|
33
34
|
check_params_numeric(nu: nu, degree: degree, gamma: gamma, coef0: coef0, cache_size: cache_size, tol: tol)
|
34
35
|
check_params_string(kernel: kernel)
|
35
|
-
check_params_boolean(shrinking: shrinking, verbose: verbose)
|
36
|
+
check_params_boolean(shrinking: shrinking, probability: probability, verbose: verbose)
|
36
37
|
check_params_numeric_or_nil(random_seed: random_seed)
|
37
38
|
@params = {}
|
38
39
|
@params[:nu] = nu.to_f
|
@@ -41,6 +42,7 @@ module Rumale
|
|
41
42
|
@params[:gamma] = gamma.to_f
|
42
43
|
@params[:coef0] = coef0.to_f
|
43
44
|
@params[:shrinking] = shrinking
|
45
|
+
@params[:probability] = probability
|
44
46
|
@params[:cache_size] = cache_size.to_f
|
45
47
|
@params[:tol] = tol.to_f
|
46
48
|
@params[:verbose] = verbose
|
@@ -82,6 +84,19 @@ module Rumale
|
|
82
84
|
Numo::Int32.cast(Numo::Libsvm.predict(x, libsvm_params, @model))
|
83
85
|
end
|
84
86
|
|
87
|
+
# Predict class probability for samples.
|
88
|
+
# This method works correctly only if the probability parameter is true.
|
89
|
+
#
|
90
|
+
# @param x [Numo::DFloat] (shape: [n_samples, n_features]) The samples to predict the probailities.
|
91
|
+
# If the kernel is 'precomputed', the shape of x must be [n_samples, n_training_samples].
|
92
|
+
# @return [Numo::DFloat] (shape: [n_samples, n_classes]) Predicted probability of each class per sample.
|
93
|
+
def predict_proba(x)
|
94
|
+
raise "#{self.class.name}\##{__method__} expects to be called after training the model with the fit method." unless trained?
|
95
|
+
raise "#{self.class.name}\##{__method__} expects to be called after training the probablity parameters." unless trained_probs?
|
96
|
+
x = check_convert_sample_array(x)
|
97
|
+
Numo::Libsvm.predict_proba(x, libsvm_params, @model)
|
98
|
+
end
|
99
|
+
|
85
100
|
# Dump marshal data.
|
86
101
|
# @return [Hash] The marshal data about SVC.
|
87
102
|
def marshal_dump
|
@@ -150,6 +165,10 @@ module Rumale
|
|
150
165
|
def trained?
|
151
166
|
!@model.nil?
|
152
167
|
end
|
168
|
+
|
169
|
+
def trained_probs?
|
170
|
+
@model[:prob_density_marks].is_a?(Numo::NArray)
|
171
|
+
end
|
153
172
|
end
|
154
173
|
end
|
155
174
|
end
|
data/lib/rumale/svm/version.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
module Rumale
|
5
5
|
# This module consists of Rumale interfaces for suppor vector machine algorithms with LIBSVM and LIBLINEAR.
|
6
6
|
module SVM
|
7
|
-
# The version of Rumale
|
8
|
-
VERSION = '0.
|
7
|
+
# The version of Rumale::SVM you are using.
|
8
|
+
VERSION = '0.7.0'
|
9
9
|
end
|
10
10
|
end
|
@@ -10,6 +10,7 @@ module Rumale
|
|
10
10
|
def fit: (Numo::DFloat x, ?untyped? _y) -> OneClassSVM
|
11
11
|
def decision_function: (Numo::DFloat x) -> Numo::DFloat
|
12
12
|
def predict: (Numo::DFloat x) -> Numo::Int32
|
13
|
+
def predict_proba: (Numo::DFloat x) -> Numo::DFloat
|
13
14
|
def marshal_dump: () -> { params: Hash[Symbol, untyped], model: untyped }
|
14
15
|
def marshal_load: (Hash[Symbol, untyped] obj) -> void
|
15
16
|
def support: () -> Numo::Int32
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumale-svm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yoshoku
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-liblinear
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: numo-libsvm
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1
|
33
|
+
version: '2.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1
|
40
|
+
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rumale
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
- - "<"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0.24'
|
61
|
-
description: 'Rumale
|
61
|
+
description: 'Rumale::SVM provides support vector machine algorithms of LIBSVM and
|
62
62
|
LIBLINEAR with Rumale interface.
|
63
63
|
|
64
64
|
'
|
@@ -116,9 +116,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
requirements: []
|
119
|
-
rubygems_version: 3.
|
119
|
+
rubygems_version: 3.3.7
|
120
120
|
signing_key:
|
121
121
|
specification_version: 4
|
122
|
-
summary: Rumale
|
122
|
+
summary: Rumale::SVM provides support vector machine algorithms of LIBSVM and LIBLINEAR
|
123
123
|
with Rumale interface.
|
124
124
|
test_files: []
|