rumale 0.23.1 → 0.23.2
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/LICENSE.txt +1 -1
- data/README.md +33 -1
- data/ext/rumale/rumaleext.c +539 -3
- data/ext/rumale/rumaleext.h +7 -3
- data/lib/rumale/clustering/hdbscan.rb +28 -8
- data/lib/rumale/clustering/single_linkage.rb +23 -5
- data/lib/rumale/evaluation_measure/roc_auc.rb +1 -2
- data/lib/rumale/nearest_neighbors/vp_tree.rb +2 -0
- data/lib/rumale/version.rb +1 -1
- data/lib/rumale.rb +132 -133
- metadata +7 -18
- data/.clang-format +0 -149
- data/.coveralls.yml +0 -1
- data/.github/workflows/build.yml +0 -26
- data/.github/workflows/coverage.yml +0 -30
- data/.gitignore +0 -23
- data/.rspec +0 -3
- data/.rubocop.yml +0 -93
- data/Gemfile +0 -17
- data/Rakefile +0 -15
- data/ext/rumale/tree.c +0 -547
- data/ext/rumale/tree.h +0 -14
- data/rumale.gemspec +0 -49
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ostruct'
|
4
3
|
require 'rumale/base/base_estimator'
|
5
4
|
require 'rumale/base/cluster_analyzer'
|
6
5
|
require 'rumale/pairwise_metric'
|
@@ -108,7 +107,28 @@ module Rumale
|
|
108
107
|
end
|
109
108
|
end
|
110
109
|
|
111
|
-
|
110
|
+
# @!visibility private
|
111
|
+
class Node
|
112
|
+
# @!visibility private
|
113
|
+
attr_reader :x, :y, :weight, :n_elements
|
114
|
+
|
115
|
+
# @!visibility private
|
116
|
+
def initialize(x:, y:, weight:, n_elements: 0)
|
117
|
+
@x = x
|
118
|
+
@y = y
|
119
|
+
@weight = weight
|
120
|
+
@n_elements = n_elements
|
121
|
+
end
|
122
|
+
|
123
|
+
# @!visibility private
|
124
|
+
def ==(other)
|
125
|
+
# :nocov:
|
126
|
+
x == other.x && y == other.y && weight == other.weight && n_elements == other.n_elements
|
127
|
+
# :nocov:
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
private_constant :UnionFind, :Node
|
112
132
|
|
113
133
|
def partial_fit(distance_mat)
|
114
134
|
mr_distance_mat = mutual_reachability_distances(distance_mat, @params[:min_samples])
|
@@ -161,30 +181,30 @@ module Rumale
|
|
161
181
|
|
162
182
|
if n_x_elements >= min_cluster_size && n_y_elements >= min_cluster_size
|
163
183
|
relabel[edge.x] = next_label
|
164
|
-
res.push(
|
184
|
+
res.push(Node.new(x: relabel[n_id], y: relabel[edge.x], weight: density, n_elements: n_x_elements))
|
165
185
|
next_label += 1
|
166
186
|
relabel[edge.y] = next_label
|
167
|
-
res.push(
|
187
|
+
res.push(Node.new(x: relabel[n_id], y: relabel[edge.y], weight: density, n_elements: n_y_elements))
|
168
188
|
next_label += 1
|
169
189
|
elsif n_x_elements < min_cluster_size && n_y_elements < min_cluster_size
|
170
190
|
breadth_first_search_hierarchy(hierarchy, edge.x).each do |sn_id|
|
171
|
-
res.push(
|
191
|
+
res.push(Node.new(x: relabel[n_id], y: sn_id, weight: density, n_elements: 1)) if sn_id < n_points
|
172
192
|
visited[sn_id] = true
|
173
193
|
end
|
174
194
|
breadth_first_search_hierarchy(hierarchy, edge.y).each do |sn_id|
|
175
|
-
res.push(
|
195
|
+
res.push(Node.new(x: relabel[n_id], y: sn_id, weight: density, n_elements: 1)) if sn_id < n_points
|
176
196
|
visited[sn_id] = true
|
177
197
|
end
|
178
198
|
elsif n_x_elements < min_cluster_size
|
179
199
|
relabel[edge.y] = relabel[n_id]
|
180
200
|
breadth_first_search_hierarchy(hierarchy, edge.x).each do |sn_id|
|
181
|
-
res.push(
|
201
|
+
res.push(Node.new(x: relabel[n_id], y: sn_id, weight: density, n_elements: 1)) if sn_id < n_points
|
182
202
|
visited[sn_id] = true
|
183
203
|
end
|
184
204
|
elsif n_y_elements < min_cluster_size
|
185
205
|
relabel[edge.x] = relabel[n_id]
|
186
206
|
breadth_first_search_hierarchy(hierarchy, edge.y).each do |sn_id|
|
187
|
-
res.push(
|
207
|
+
res.push(Node.new(x: relabel[n_id], y: sn_id, weight: density, n_elements: 1)) if sn_id < n_points
|
188
208
|
visited[sn_id] = true
|
189
209
|
end
|
190
210
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'ostruct'
|
4
3
|
require 'rumale/base/base_estimator'
|
5
4
|
require 'rumale/base/cluster_analyzer'
|
6
5
|
require 'rumale/pairwise_metric'
|
@@ -25,7 +24,7 @@ module Rumale
|
|
25
24
|
attr_reader :labels
|
26
25
|
|
27
26
|
# Return the hierarchical structure.
|
28
|
-
# @return [Array<
|
27
|
+
# @return [Array<SingleLinkage::Node>] (shape: [n_samples - 1])
|
29
28
|
attr_reader :hierarchy
|
30
29
|
|
31
30
|
# Create a new cluster analyzer with single linkage algorithm.
|
@@ -104,7 +103,26 @@ module Rumale
|
|
104
103
|
end
|
105
104
|
end
|
106
105
|
|
107
|
-
|
106
|
+
# @!visibility private
|
107
|
+
class Node
|
108
|
+
# @!visibility private
|
109
|
+
attr_reader :x, :y, :weight, :n_elements
|
110
|
+
|
111
|
+
# @!visibility private
|
112
|
+
def initialize(x:, y:, weight:, n_elements: 0)
|
113
|
+
@x = x
|
114
|
+
@y = y
|
115
|
+
@weight = weight
|
116
|
+
@n_elements = n_elements
|
117
|
+
end
|
118
|
+
|
119
|
+
# @!visibility private
|
120
|
+
def ==(other)
|
121
|
+
x == other.x && y == other.y && weight == other.weight && n_elements == other.n_elements
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
private_constant :UnionFind, :Node
|
108
126
|
|
109
127
|
def partial_fit(distance_mat)
|
110
128
|
mst = minimum_spanning_tree(distance_mat)
|
@@ -125,7 +143,7 @@ module Rumale
|
|
125
143
|
curr_weights = Numo::DFloat.minimum(curr_weights[target], complete_graph[curr_node, curr_labels])
|
126
144
|
next_node = curr_labels[curr_weights.min_index]
|
127
145
|
weight = curr_weights.min
|
128
|
-
|
146
|
+
Node.new(x: curr_node, y: next_node, weight: weight)
|
129
147
|
end
|
130
148
|
mst.sort! { |a, b| a.weight <=> b.weight }
|
131
149
|
end
|
@@ -140,7 +158,7 @@ module Rumale
|
|
140
158
|
x_root, y_root = [y_root, x_root] unless x_root < y_root
|
141
159
|
weight = mst[n].weight
|
142
160
|
n_samples = uf.union(x_root, y_root)
|
143
|
-
|
161
|
+
Node.new(x: x_root, y: y_root, weight: weight, n_elements: n_samples)
|
144
162
|
end
|
145
163
|
end
|
146
164
|
|
@@ -118,8 +118,7 @@ module Rumale
|
|
118
118
|
desc_y_true = Numo::Int32.cast(bin_y_true[desc_pred_ids])
|
119
119
|
desc_y_score = y_score[desc_pred_ids]
|
120
120
|
|
121
|
-
|
122
|
-
threshold_ids = dist_value_ids.append(desc_y_true.size - 1)
|
121
|
+
threshold_ids = Numo::Int32.cast(desc_y_score.diff.ne(0).where.to_a.append(desc_y_true.size - 1))
|
123
122
|
|
124
123
|
true_pos = desc_y_true.cumsum[threshold_ids]
|
125
124
|
false_pos = 1 + threshold_ids - true_pos
|
@@ -10,6 +10,8 @@ module Rumale
|
|
10
10
|
# This implementation, unlike the paper, does not perform random sampling with vantage point selection.
|
11
11
|
# This class is used internally for k-nearest neighbor estimators.
|
12
12
|
#
|
13
|
+
# @deprecated This class will be removed in ver. 0.24.0. The author recommends to use the annoy-rb gem instead.
|
14
|
+
#
|
13
15
|
# *Reference*
|
14
16
|
# - Yianilos, P N., "Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces," Proc. SODA'93, pp. 311--321, 1993.
|
15
17
|
class VPTree
|
data/lib/rumale/version.rb
CHANGED
data/lib/rumale.rb
CHANGED
@@ -2,136 +2,135 @@
|
|
2
2
|
|
3
3
|
require 'numo/narray'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
require 'rumale/evaluation_measure/function'
|
5
|
+
require_relative 'rumale/version'
|
6
|
+
require_relative 'rumale/rumaleext'
|
7
|
+
require_relative 'rumale/validation'
|
8
|
+
require_relative 'rumale/values'
|
9
|
+
require_relative 'rumale/utils'
|
10
|
+
require_relative 'rumale/pairwise_metric'
|
11
|
+
require_relative 'rumale/dataset'
|
12
|
+
require_relative 'rumale/probabilistic_output'
|
13
|
+
require_relative 'rumale/base/base_estimator'
|
14
|
+
require_relative 'rumale/base/classifier'
|
15
|
+
require_relative 'rumale/base/regressor'
|
16
|
+
require_relative 'rumale/base/cluster_analyzer'
|
17
|
+
require_relative 'rumale/base/transformer'
|
18
|
+
require_relative 'rumale/base/splitter'
|
19
|
+
require_relative 'rumale/base/evaluator'
|
20
|
+
require_relative 'rumale/pipeline/pipeline'
|
21
|
+
require_relative 'rumale/pipeline/feature_union'
|
22
|
+
require_relative 'rumale/kernel_approximation/rbf'
|
23
|
+
require_relative 'rumale/kernel_approximation/nystroem'
|
24
|
+
require_relative 'rumale/linear_model/base_sgd'
|
25
|
+
require_relative 'rumale/linear_model/svc'
|
26
|
+
require_relative 'rumale/linear_model/svr'
|
27
|
+
require_relative 'rumale/linear_model/logistic_regression'
|
28
|
+
require_relative 'rumale/linear_model/linear_regression'
|
29
|
+
require_relative 'rumale/linear_model/ridge'
|
30
|
+
require_relative 'rumale/linear_model/lasso'
|
31
|
+
require_relative 'rumale/linear_model/elastic_net'
|
32
|
+
require_relative 'rumale/linear_model/nnls'
|
33
|
+
require_relative 'rumale/kernel_machine/kernel_svc'
|
34
|
+
require_relative 'rumale/kernel_machine/kernel_pca'
|
35
|
+
require_relative 'rumale/kernel_machine/kernel_fda'
|
36
|
+
require_relative 'rumale/kernel_machine/kernel_ridge'
|
37
|
+
require_relative 'rumale/kernel_machine/kernel_ridge_classifier'
|
38
|
+
require_relative 'rumale/multiclass/one_vs_rest_classifier'
|
39
|
+
require_relative 'rumale/nearest_neighbors/vp_tree'
|
40
|
+
require_relative 'rumale/nearest_neighbors/k_neighbors_classifier'
|
41
|
+
require_relative 'rumale/nearest_neighbors/k_neighbors_regressor'
|
42
|
+
require_relative 'rumale/naive_bayes/base_naive_bayes'
|
43
|
+
require_relative 'rumale/naive_bayes/bernoulli_nb'
|
44
|
+
require_relative 'rumale/naive_bayes/complement_nb'
|
45
|
+
require_relative 'rumale/naive_bayes/gaussian_nb'
|
46
|
+
require_relative 'rumale/naive_bayes/multinomial_nb'
|
47
|
+
require_relative 'rumale/naive_bayes/negation_nb'
|
48
|
+
require_relative 'rumale/tree/node'
|
49
|
+
require_relative 'rumale/tree/base_decision_tree'
|
50
|
+
require_relative 'rumale/tree/decision_tree_classifier'
|
51
|
+
require_relative 'rumale/tree/decision_tree_regressor'
|
52
|
+
require_relative 'rumale/tree/extra_tree_classifier'
|
53
|
+
require_relative 'rumale/tree/extra_tree_regressor'
|
54
|
+
require_relative 'rumale/tree/gradient_tree_regressor'
|
55
|
+
require_relative 'rumale/ensemble/ada_boost_classifier'
|
56
|
+
require_relative 'rumale/ensemble/ada_boost_regressor'
|
57
|
+
require_relative 'rumale/ensemble/gradient_boosting_classifier'
|
58
|
+
require_relative 'rumale/ensemble/gradient_boosting_regressor'
|
59
|
+
require_relative 'rumale/ensemble/random_forest_classifier'
|
60
|
+
require_relative 'rumale/ensemble/random_forest_regressor'
|
61
|
+
require_relative 'rumale/ensemble/extra_trees_classifier'
|
62
|
+
require_relative 'rumale/ensemble/extra_trees_regressor'
|
63
|
+
require_relative 'rumale/ensemble/stacking_classifier'
|
64
|
+
require_relative 'rumale/ensemble/stacking_regressor'
|
65
|
+
require_relative 'rumale/ensemble/voting_classifier'
|
66
|
+
require_relative 'rumale/ensemble/voting_regressor'
|
67
|
+
require_relative 'rumale/clustering/k_means'
|
68
|
+
require_relative 'rumale/clustering/mini_batch_k_means'
|
69
|
+
require_relative 'rumale/clustering/k_medoids'
|
70
|
+
require_relative 'rumale/clustering/gaussian_mixture'
|
71
|
+
require_relative 'rumale/clustering/dbscan'
|
72
|
+
require_relative 'rumale/clustering/hdbscan'
|
73
|
+
require_relative 'rumale/clustering/snn'
|
74
|
+
require_relative 'rumale/clustering/power_iteration'
|
75
|
+
require_relative 'rumale/clustering/spectral_clustering'
|
76
|
+
require_relative 'rumale/clustering/single_linkage'
|
77
|
+
require_relative 'rumale/decomposition/pca'
|
78
|
+
require_relative 'rumale/decomposition/nmf'
|
79
|
+
require_relative 'rumale/decomposition/factor_analysis'
|
80
|
+
require_relative 'rumale/decomposition/fast_ica'
|
81
|
+
require_relative 'rumale/manifold/tsne'
|
82
|
+
require_relative 'rumale/manifold/mds'
|
83
|
+
require_relative 'rumale/metric_learning/fisher_discriminant_analysis'
|
84
|
+
require_relative 'rumale/metric_learning/neighbourhood_component_analysis'
|
85
|
+
require_relative 'rumale/metric_learning/mlkr'
|
86
|
+
require_relative 'rumale/neural_network/adam'
|
87
|
+
require_relative 'rumale/neural_network/base_mlp'
|
88
|
+
require_relative 'rumale/neural_network/mlp_regressor'
|
89
|
+
require_relative 'rumale/neural_network/mlp_classifier'
|
90
|
+
require_relative 'rumale/feature_extraction/hash_vectorizer'
|
91
|
+
require_relative 'rumale/feature_extraction/feature_hasher'
|
92
|
+
require_relative 'rumale/feature_extraction/tfidf_transformer'
|
93
|
+
require_relative 'rumale/preprocessing/l2_normalizer'
|
94
|
+
require_relative 'rumale/preprocessing/l1_normalizer'
|
95
|
+
require_relative 'rumale/preprocessing/max_normalizer'
|
96
|
+
require_relative 'rumale/preprocessing/min_max_scaler'
|
97
|
+
require_relative 'rumale/preprocessing/max_abs_scaler'
|
98
|
+
require_relative 'rumale/preprocessing/standard_scaler'
|
99
|
+
require_relative 'rumale/preprocessing/bin_discretizer'
|
100
|
+
require_relative 'rumale/preprocessing/label_binarizer'
|
101
|
+
require_relative 'rumale/preprocessing/label_encoder'
|
102
|
+
require_relative 'rumale/preprocessing/one_hot_encoder'
|
103
|
+
require_relative 'rumale/preprocessing/ordinal_encoder'
|
104
|
+
require_relative 'rumale/preprocessing/binarizer'
|
105
|
+
require_relative 'rumale/preprocessing/polynomial_features'
|
106
|
+
require_relative 'rumale/preprocessing/kernel_calculator'
|
107
|
+
require_relative 'rumale/model_selection/k_fold'
|
108
|
+
require_relative 'rumale/model_selection/group_k_fold'
|
109
|
+
require_relative 'rumale/model_selection/stratified_k_fold'
|
110
|
+
require_relative 'rumale/model_selection/shuffle_split'
|
111
|
+
require_relative 'rumale/model_selection/group_shuffle_split'
|
112
|
+
require_relative 'rumale/model_selection/stratified_shuffle_split'
|
113
|
+
require_relative 'rumale/model_selection/time_series_split'
|
114
|
+
require_relative 'rumale/model_selection/cross_validation'
|
115
|
+
require_relative 'rumale/model_selection/grid_search_cv'
|
116
|
+
require_relative 'rumale/model_selection/function'
|
117
|
+
require_relative 'rumale/evaluation_measure/accuracy'
|
118
|
+
require_relative 'rumale/evaluation_measure/precision'
|
119
|
+
require_relative 'rumale/evaluation_measure/recall'
|
120
|
+
require_relative 'rumale/evaluation_measure/f_score'
|
121
|
+
require_relative 'rumale/evaluation_measure/roc_auc'
|
122
|
+
require_relative 'rumale/evaluation_measure/log_loss'
|
123
|
+
require_relative 'rumale/evaluation_measure/r2_score'
|
124
|
+
require_relative 'rumale/evaluation_measure/explained_variance_score'
|
125
|
+
require_relative 'rumale/evaluation_measure/mean_squared_error'
|
126
|
+
require_relative 'rumale/evaluation_measure/mean_squared_log_error'
|
127
|
+
require_relative 'rumale/evaluation_measure/mean_absolute_error'
|
128
|
+
require_relative 'rumale/evaluation_measure/median_absolute_error'
|
129
|
+
require_relative 'rumale/evaluation_measure/adjusted_rand_score'
|
130
|
+
require_relative 'rumale/evaluation_measure/purity'
|
131
|
+
require_relative 'rumale/evaluation_measure/mutual_information'
|
132
|
+
require_relative 'rumale/evaluation_measure/normalized_mutual_information'
|
133
|
+
require_relative 'rumale/evaluation_measure/silhouette_score'
|
134
|
+
require_relative 'rumale/evaluation_measure/davies_bouldin_score'
|
135
|
+
require_relative 'rumale/evaluation_measure/calinski_harabasz_score'
|
136
|
+
require_relative 'rumale/evaluation_measure/function'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.23.
|
4
|
+
version: 0.23.2
|
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: 2022-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: numo-narray
|
@@ -57,24 +57,13 @@ extensions:
|
|
57
57
|
- ext/rumale/extconf.rb
|
58
58
|
extra_rdoc_files: []
|
59
59
|
files:
|
60
|
-
- ".clang-format"
|
61
|
-
- ".coveralls.yml"
|
62
|
-
- ".github/workflows/build.yml"
|
63
|
-
- ".github/workflows/coverage.yml"
|
64
|
-
- ".gitignore"
|
65
|
-
- ".rspec"
|
66
|
-
- ".rubocop.yml"
|
67
60
|
- CHANGELOG.md
|
68
61
|
- CODE_OF_CONDUCT.md
|
69
|
-
- Gemfile
|
70
62
|
- LICENSE.txt
|
71
63
|
- README.md
|
72
|
-
- Rakefile
|
73
64
|
- ext/rumale/extconf.rb
|
74
65
|
- ext/rumale/rumaleext.c
|
75
66
|
- ext/rumale/rumaleext.h
|
76
|
-
- ext/rumale/tree.c
|
77
|
-
- ext/rumale/tree.h
|
78
67
|
- lib/rumale.rb
|
79
68
|
- lib/rumale/base/base_estimator.rb
|
80
69
|
- lib/rumale/base/classifier.rb
|
@@ -208,7 +197,6 @@ files:
|
|
208
197
|
- lib/rumale/validation.rb
|
209
198
|
- lib/rumale/values.rb
|
210
199
|
- lib/rumale/version.rb
|
211
|
-
- rumale.gemspec
|
212
200
|
homepage: https://github.com/yoshoku/rumale
|
213
201
|
licenses:
|
214
202
|
- BSD-2-Clause
|
@@ -218,7 +206,8 @@ metadata:
|
|
218
206
|
source_code_uri: https://github.com/yoshoku/rumale
|
219
207
|
documentation_uri: https://yoshoku.github.io/rumale/doc/
|
220
208
|
bug_tracker_uri: https://github.com/yoshoku/rumale/issues
|
221
|
-
|
209
|
+
rubygems_mfa_required: 'true'
|
210
|
+
post_install_message:
|
222
211
|
rdoc_options: []
|
223
212
|
require_paths:
|
224
213
|
- lib
|
@@ -233,8 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
222
|
- !ruby/object:Gem::Version
|
234
223
|
version: '0'
|
235
224
|
requirements: []
|
236
|
-
rubygems_version: 3.
|
237
|
-
signing_key:
|
225
|
+
rubygems_version: 3.2.33
|
226
|
+
signing_key:
|
238
227
|
specification_version: 4
|
239
228
|
summary: Rumale is a machine learning library in Ruby. Rumale provides machine learning
|
240
229
|
algorithms with interfaces similar to Scikit-Learn in Python.
|