rumale 0.23.3 → 0.24.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/LICENSE.txt +5 -1
- data/README.md +3 -288
- data/lib/rumale/version.rb +1 -1
- data/lib/rumale.rb +20 -131
- metadata +252 -150
- data/CHANGELOG.md +0 -643
- data/CODE_OF_CONDUCT.md +0 -74
- data/ext/rumale/extconf.rb +0 -37
- data/ext/rumale/rumaleext.c +0 -545
- data/ext/rumale/rumaleext.h +0 -12
- data/lib/rumale/base/base_estimator.rb +0 -49
- data/lib/rumale/base/classifier.rb +0 -36
- data/lib/rumale/base/cluster_analyzer.rb +0 -31
- data/lib/rumale/base/evaluator.rb +0 -17
- data/lib/rumale/base/regressor.rb +0 -36
- data/lib/rumale/base/splitter.rb +0 -21
- data/lib/rumale/base/transformer.rb +0 -22
- data/lib/rumale/clustering/dbscan.rb +0 -123
- data/lib/rumale/clustering/gaussian_mixture.rb +0 -218
- data/lib/rumale/clustering/hdbscan.rb +0 -291
- data/lib/rumale/clustering/k_means.rb +0 -122
- data/lib/rumale/clustering/k_medoids.rb +0 -141
- data/lib/rumale/clustering/mini_batch_k_means.rb +0 -139
- data/lib/rumale/clustering/power_iteration.rb +0 -127
- data/lib/rumale/clustering/single_linkage.rb +0 -203
- data/lib/rumale/clustering/snn.rb +0 -76
- data/lib/rumale/clustering/spectral_clustering.rb +0 -115
- data/lib/rumale/dataset.rb +0 -246
- data/lib/rumale/decomposition/factor_analysis.rb +0 -150
- data/lib/rumale/decomposition/fast_ica.rb +0 -188
- data/lib/rumale/decomposition/nmf.rb +0 -124
- data/lib/rumale/decomposition/pca.rb +0 -159
- data/lib/rumale/ensemble/ada_boost_classifier.rb +0 -179
- data/lib/rumale/ensemble/ada_boost_regressor.rb +0 -160
- data/lib/rumale/ensemble/extra_trees_classifier.rb +0 -139
- data/lib/rumale/ensemble/extra_trees_regressor.rb +0 -125
- data/lib/rumale/ensemble/gradient_boosting_classifier.rb +0 -306
- data/lib/rumale/ensemble/gradient_boosting_regressor.rb +0 -237
- data/lib/rumale/ensemble/random_forest_classifier.rb +0 -189
- data/lib/rumale/ensemble/random_forest_regressor.rb +0 -153
- data/lib/rumale/ensemble/stacking_classifier.rb +0 -215
- data/lib/rumale/ensemble/stacking_regressor.rb +0 -163
- data/lib/rumale/ensemble/voting_classifier.rb +0 -126
- data/lib/rumale/ensemble/voting_regressor.rb +0 -82
- data/lib/rumale/evaluation_measure/accuracy.rb +0 -29
- data/lib/rumale/evaluation_measure/adjusted_rand_score.rb +0 -74
- data/lib/rumale/evaluation_measure/calinski_harabasz_score.rb +0 -56
- data/lib/rumale/evaluation_measure/davies_bouldin_score.rb +0 -53
- data/lib/rumale/evaluation_measure/explained_variance_score.rb +0 -39
- data/lib/rumale/evaluation_measure/f_score.rb +0 -50
- data/lib/rumale/evaluation_measure/function.rb +0 -147
- data/lib/rumale/evaluation_measure/log_loss.rb +0 -45
- data/lib/rumale/evaluation_measure/mean_absolute_error.rb +0 -29
- data/lib/rumale/evaluation_measure/mean_squared_error.rb +0 -29
- data/lib/rumale/evaluation_measure/mean_squared_log_error.rb +0 -29
- data/lib/rumale/evaluation_measure/median_absolute_error.rb +0 -30
- data/lib/rumale/evaluation_measure/mutual_information.rb +0 -49
- data/lib/rumale/evaluation_measure/normalized_mutual_information.rb +0 -53
- data/lib/rumale/evaluation_measure/precision.rb +0 -50
- data/lib/rumale/evaluation_measure/precision_recall.rb +0 -96
- data/lib/rumale/evaluation_measure/purity.rb +0 -40
- data/lib/rumale/evaluation_measure/r2_score.rb +0 -43
- data/lib/rumale/evaluation_measure/recall.rb +0 -50
- data/lib/rumale/evaluation_measure/roc_auc.rb +0 -130
- data/lib/rumale/evaluation_measure/silhouette_score.rb +0 -82
- data/lib/rumale/feature_extraction/feature_hasher.rb +0 -110
- data/lib/rumale/feature_extraction/hash_vectorizer.rb +0 -155
- data/lib/rumale/feature_extraction/tfidf_transformer.rb +0 -113
- data/lib/rumale/kernel_approximation/nystroem.rb +0 -126
- data/lib/rumale/kernel_approximation/rbf.rb +0 -102
- data/lib/rumale/kernel_machine/kernel_fda.rb +0 -120
- data/lib/rumale/kernel_machine/kernel_pca.rb +0 -97
- data/lib/rumale/kernel_machine/kernel_ridge.rb +0 -82
- data/lib/rumale/kernel_machine/kernel_ridge_classifier.rb +0 -92
- data/lib/rumale/kernel_machine/kernel_svc.rb +0 -193
- data/lib/rumale/linear_model/base_sgd.rb +0 -285
- data/lib/rumale/linear_model/elastic_net.rb +0 -119
- data/lib/rumale/linear_model/lasso.rb +0 -115
- data/lib/rumale/linear_model/linear_regression.rb +0 -201
- data/lib/rumale/linear_model/logistic_regression.rb +0 -275
- data/lib/rumale/linear_model/nnls.rb +0 -137
- data/lib/rumale/linear_model/ridge.rb +0 -209
- data/lib/rumale/linear_model/svc.rb +0 -213
- data/lib/rumale/linear_model/svr.rb +0 -132
- data/lib/rumale/manifold/mds.rb +0 -155
- data/lib/rumale/manifold/tsne.rb +0 -222
- data/lib/rumale/metric_learning/fisher_discriminant_analysis.rb +0 -113
- data/lib/rumale/metric_learning/mlkr.rb +0 -161
- data/lib/rumale/metric_learning/neighbourhood_component_analysis.rb +0 -167
- data/lib/rumale/model_selection/cross_validation.rb +0 -125
- data/lib/rumale/model_selection/function.rb +0 -42
- data/lib/rumale/model_selection/grid_search_cv.rb +0 -225
- data/lib/rumale/model_selection/group_k_fold.rb +0 -93
- data/lib/rumale/model_selection/group_shuffle_split.rb +0 -115
- data/lib/rumale/model_selection/k_fold.rb +0 -81
- data/lib/rumale/model_selection/shuffle_split.rb +0 -90
- data/lib/rumale/model_selection/stratified_k_fold.rb +0 -99
- data/lib/rumale/model_selection/stratified_shuffle_split.rb +0 -118
- data/lib/rumale/model_selection/time_series_split.rb +0 -91
- data/lib/rumale/multiclass/one_vs_rest_classifier.rb +0 -83
- data/lib/rumale/naive_bayes/base_naive_bayes.rb +0 -47
- data/lib/rumale/naive_bayes/bernoulli_nb.rb +0 -82
- data/lib/rumale/naive_bayes/complement_nb.rb +0 -85
- data/lib/rumale/naive_bayes/gaussian_nb.rb +0 -69
- data/lib/rumale/naive_bayes/multinomial_nb.rb +0 -74
- data/lib/rumale/naive_bayes/negation_nb.rb +0 -71
- data/lib/rumale/nearest_neighbors/k_neighbors_classifier.rb +0 -133
- data/lib/rumale/nearest_neighbors/k_neighbors_regressor.rb +0 -108
- data/lib/rumale/nearest_neighbors/vp_tree.rb +0 -132
- data/lib/rumale/neural_network/adam.rb +0 -56
- data/lib/rumale/neural_network/base_mlp.rb +0 -248
- data/lib/rumale/neural_network/mlp_classifier.rb +0 -120
- data/lib/rumale/neural_network/mlp_regressor.rb +0 -90
- data/lib/rumale/pairwise_metric.rb +0 -152
- data/lib/rumale/pipeline/feature_union.rb +0 -69
- data/lib/rumale/pipeline/pipeline.rb +0 -175
- data/lib/rumale/preprocessing/bin_discretizer.rb +0 -93
- data/lib/rumale/preprocessing/binarizer.rb +0 -60
- data/lib/rumale/preprocessing/kernel_calculator.rb +0 -92
- data/lib/rumale/preprocessing/l1_normalizer.rb +0 -62
- data/lib/rumale/preprocessing/l2_normalizer.rb +0 -63
- data/lib/rumale/preprocessing/label_binarizer.rb +0 -89
- data/lib/rumale/preprocessing/label_encoder.rb +0 -79
- data/lib/rumale/preprocessing/max_abs_scaler.rb +0 -61
- data/lib/rumale/preprocessing/max_normalizer.rb +0 -62
- data/lib/rumale/preprocessing/min_max_scaler.rb +0 -76
- data/lib/rumale/preprocessing/one_hot_encoder.rb +0 -100
- data/lib/rumale/preprocessing/ordinal_encoder.rb +0 -109
- data/lib/rumale/preprocessing/polynomial_features.rb +0 -109
- data/lib/rumale/preprocessing/standard_scaler.rb +0 -71
- data/lib/rumale/probabilistic_output.rb +0 -114
- data/lib/rumale/tree/base_decision_tree.rb +0 -150
- data/lib/rumale/tree/decision_tree_classifier.rb +0 -150
- data/lib/rumale/tree/decision_tree_regressor.rb +0 -116
- data/lib/rumale/tree/extra_tree_classifier.rb +0 -107
- data/lib/rumale/tree/extra_tree_regressor.rb +0 -94
- data/lib/rumale/tree/gradient_tree_regressor.rb +0 -202
- data/lib/rumale/tree/node.rb +0 -39
- data/lib/rumale/utils.rb +0 -42
- data/lib/rumale/validation.rb +0 -128
- data/lib/rumale/values.rb +0 -13
data/lib/rumale/tree/node.rb
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Rumale
|
|
4
|
-
module Tree
|
|
5
|
-
# Node is a class that implements node used for construction of decision tree.
|
|
6
|
-
# This class is used for internal data structures.
|
|
7
|
-
class Node
|
|
8
|
-
# @!visibility private
|
|
9
|
-
attr_accessor :depth, :impurity, :n_samples, :probs, :leaf, :leaf_id, :left, :right, :feature_id, :threshold
|
|
10
|
-
|
|
11
|
-
# Create a new node for decision tree.
|
|
12
|
-
#
|
|
13
|
-
# @param depth [Integer] The depth of the node in tree.
|
|
14
|
-
# @param impurity [Float] The impurity of the node.
|
|
15
|
-
# @param n_samples [Integer] The number of the samples in the node.
|
|
16
|
-
# @param probs [Float] The probability of the node.
|
|
17
|
-
# @param leaf [Boolean] The flag indicating whether the node is a leaf.
|
|
18
|
-
# @param leaf_id [Integer] The leaf index of the node.
|
|
19
|
-
# @param left [Node] The left node.
|
|
20
|
-
# @param right [Node] The right node.
|
|
21
|
-
# @param feature_id [Integer] The feature index used for evaluation.
|
|
22
|
-
# @param threshold [Float] The threshold value of the feature for splitting the node.
|
|
23
|
-
def initialize(depth: 0, impurity: 0.0, n_samples: 0, probs: 0.0,
|
|
24
|
-
leaf: false, leaf_id: nil,
|
|
25
|
-
left: nil, right: nil, feature_id: 0, threshold: 0.0)
|
|
26
|
-
@depth = depth
|
|
27
|
-
@impurity = impurity
|
|
28
|
-
@n_samples = n_samples
|
|
29
|
-
@probs = probs
|
|
30
|
-
@leaf = leaf
|
|
31
|
-
@leaf_id = leaf_id
|
|
32
|
-
@left = left
|
|
33
|
-
@right = right
|
|
34
|
-
@feature_id = feature_id
|
|
35
|
-
@threshold = threshold
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
data/lib/rumale/utils.rb
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Rumale
|
|
4
|
-
# @!visibility private
|
|
5
|
-
module Utils
|
|
6
|
-
module_function
|
|
7
|
-
|
|
8
|
-
# @!visibility private
|
|
9
|
-
def choice_ids(size, probs, rng = nil)
|
|
10
|
-
rng ||= Random.new
|
|
11
|
-
Array.new(size) do
|
|
12
|
-
target = rng.rand
|
|
13
|
-
chosen = 0
|
|
14
|
-
probs.each_with_index do |p, idx|
|
|
15
|
-
break (chosen = idx) if target <= p
|
|
16
|
-
|
|
17
|
-
target -= p
|
|
18
|
-
end
|
|
19
|
-
chosen
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# @!visibility private
|
|
24
|
-
def rand_uniform(shape, rng = nil)
|
|
25
|
-
rng ||= Random.new
|
|
26
|
-
if shape.is_a?(Array)
|
|
27
|
-
rnd_vals = Array.new(shape.inject(:*)) { rng.rand }
|
|
28
|
-
Numo::DFloat.asarray(rnd_vals).reshape(shape[0], shape[1])
|
|
29
|
-
else
|
|
30
|
-
Numo::DFloat.asarray(Array.new(shape) { rng.rand })
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# @!visibility private
|
|
35
|
-
def rand_normal(shape, rng = nil, mu = 0.0, sigma = 1.0)
|
|
36
|
-
rng ||= Random.new
|
|
37
|
-
a = rand_uniform(shape, rng)
|
|
38
|
-
b = rand_uniform(shape, rng)
|
|
39
|
-
(Numo::NMath.sqrt(Numo::NMath.log(a) * -2.0) * Numo::NMath.sin(b * 2.0 * Math::PI)) * sigma + mu
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
data/lib/rumale/validation.rb
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Rumale
|
|
4
|
-
# @!visibility private
|
|
5
|
-
module Validation
|
|
6
|
-
module_function
|
|
7
|
-
|
|
8
|
-
# @!visibility private
|
|
9
|
-
def check_convert_sample_array(x)
|
|
10
|
-
x = Numo::DFloat.cast(x) unless x.is_a?(Numo::DFloat)
|
|
11
|
-
raise ArgumentError, 'Expect sample matrix to be 2-D array' unless x.ndim == 2
|
|
12
|
-
|
|
13
|
-
x
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# @!visibility private
|
|
17
|
-
def check_convert_label_array(y)
|
|
18
|
-
y = Numo::Int32.cast(y) unless y.is_a?(Numo::Int32)
|
|
19
|
-
raise ArgumentError, 'Expect label vector to be 1-D arrray' unless y.ndim == 1
|
|
20
|
-
|
|
21
|
-
y
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# @!visibility private
|
|
25
|
-
def check_convert_tvalue_array(y)
|
|
26
|
-
y = Numo::DFloat.cast(y) unless y.is_a?(Numo::DFloat)
|
|
27
|
-
y
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# @deprecated Use check_convert_sample_array instead of this method.
|
|
31
|
-
# @!visibility private
|
|
32
|
-
def check_sample_array(x)
|
|
33
|
-
raise TypeError, 'Expect class of sample matrix to be Numo::DFloat' unless x.is_a?(Numo::DFloat)
|
|
34
|
-
raise ArgumentError, 'Expect sample matrix to be 2-D array' unless x.ndim == 2
|
|
35
|
-
|
|
36
|
-
nil
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# @deprecated Use check_convert_label_array instead of this method.
|
|
40
|
-
# @!visibility private
|
|
41
|
-
def check_label_array(y)
|
|
42
|
-
raise TypeError, 'Expect class of label vector to be Numo::Int32' unless y.is_a?(Numo::Int32)
|
|
43
|
-
raise ArgumentError, 'Expect label vector to be 1-D arrray' unless y.ndim == 1
|
|
44
|
-
|
|
45
|
-
nil
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# @deprecated Use check_convert_tvalue_array instead of this method.
|
|
49
|
-
# @!visibility private
|
|
50
|
-
def check_tvalue_array(y)
|
|
51
|
-
raise TypeError, 'Expect class of target value vector to be Numo::DFloat' unless y.is_a?(Numo::DFloat)
|
|
52
|
-
|
|
53
|
-
nil
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# @!visibility private
|
|
57
|
-
def check_sample_label_size(x, y)
|
|
58
|
-
raise ArgumentError, 'Expect to have the same number of samples for sample matrix and label vector' unless x.shape[0] == y.shape[0]
|
|
59
|
-
|
|
60
|
-
nil
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# @!visibility private
|
|
64
|
-
def check_sample_tvalue_size(x, y)
|
|
65
|
-
raise ArgumentError, 'Expect to have the same number of samples for sample matrix and target value vector' unless x.shape[0] == y.shape[0]
|
|
66
|
-
|
|
67
|
-
nil
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# TODO: Better to replace with RBS in the future.
|
|
71
|
-
# @!visibility private
|
|
72
|
-
def check_params_type(type, params = {})
|
|
73
|
-
params.each { |k, v| raise TypeError, "Expect class of #{k} to be #{type}" unless v.is_a?(type) }
|
|
74
|
-
nil
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# TODO: Better to replace with RBS in the future.
|
|
78
|
-
# @!visibility private
|
|
79
|
-
def check_params_type_or_nil(type, params = {})
|
|
80
|
-
params.each { |k, v| raise TypeError, "Expect class of #{k} to be #{type} or nil" unless v.is_a?(type) || v.is_a?(NilClass) }
|
|
81
|
-
nil
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# TODO: Better to replace with RBS in the future.
|
|
85
|
-
# @!visibility private
|
|
86
|
-
def check_params_numeric(params = {})
|
|
87
|
-
check_params_type(Numeric, params)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
# TODO: Better to replace with RBS in the future.
|
|
91
|
-
# @!visibility private
|
|
92
|
-
def check_params_numeric_or_nil(params = {})
|
|
93
|
-
check_params_type_or_nil(Numeric, params)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
# @deprecated Use check_params_numeric instead of this method.
|
|
97
|
-
# @!visibility private
|
|
98
|
-
def check_params_float(params = {})
|
|
99
|
-
check_params_type(Float, params)
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
# @deprecated Use check_params_numeric instead of this method.
|
|
103
|
-
# @!visibility private
|
|
104
|
-
def check_params_integer(params = {})
|
|
105
|
-
check_params_type(Integer, params)
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
# TODO: Better to replace with RBS in the future.
|
|
109
|
-
# @!visibility private
|
|
110
|
-
def check_params_string(params = {})
|
|
111
|
-
check_params_type(String, params)
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
# TODO: Better to replace with RBS in the future.
|
|
115
|
-
# @!visibility private
|
|
116
|
-
def check_params_boolean(params = {})
|
|
117
|
-
params.each { |k, v| raise TypeError, "Expect class of #{k} to be Boolean" unless v.is_a?(FalseClass) || v.is_a?(TrueClass) }
|
|
118
|
-
nil
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# TODO: Better to replace with RBS in the future.
|
|
122
|
-
# @!visibility private
|
|
123
|
-
def check_params_positive(params = {})
|
|
124
|
-
params.compact.each { |k, v| raise ArgumentError, "Expect #{k} to be positive value" if v.negative? }
|
|
125
|
-
nil
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
end
|
data/lib/rumale/values.rb
DELETED