rumale 0.18.7 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e3069531e5acbdaab178769d20684a0fa260e29f6c39a645632b903fff8cce0
4
- data.tar.gz: d39c7e61a20b1bce23ccbb9d809bb06f1babce101f509c78c6da2a64e95f180f
3
+ metadata.gz: 1cd1cdc16e6c72743d064db7d254c74eb98ca33e97cfdf9e8a76cc1fbe5dd29b
4
+ data.tar.gz: 2077cae2629f2c403cc0afc415dc4b4151a2eac2ab7a3230402bf761bb653829
5
5
  SHA512:
6
- metadata.gz: eb9077b26d63f153eefd4c68ea57083e12b6a465d06864da8b24a3f9d2aff907b8de350ade5c96e8e9ec28997424839b91ac884d787a7bff7c2a44d212addd81
7
- data.tar.gz: 7d94c6d80e16ed405f87a7c777b4922863e42922a5b33046df4bc42d9daa5f5243ebb6c5492cb2d20120215cdce9a5c4b0ac3156012bf38cf91e7717b2c51c22
6
+ metadata.gz: 2bbcdce6d0a31c95500a81a7d4a55407786068fac65ce1e5ede1bc3f56d97b2ec93fd9ca1dc52fc1a24782dba469099b25d0398a5993716da011851f18f8179c
7
+ data.tar.gz: cc9fc19ea73dfa76e8ede18df7cb57f931cccdea2c546f414746ed681afbd272e3866913c75534bbdce6b275d057baa2c793b4046c8e46f697e30d5b87dba066
@@ -1,3 +1,30 @@
1
+ # 0.19.0
2
+ - Change mmh3 and mopti gem to non-runtime dependent library.
3
+ - The mmh3 gem is used in [FeatureHasher](https://yoshoku.github.io/rumale/doc/Rumale/FeatureExtraction/FeatureHasher.html).
4
+ You only need to require mmh3 gem when using FeatureHasher.
5
+ ```ruby
6
+ require 'mmh3'
7
+ require 'rumale'
8
+
9
+ encoder = Rumale::FeatureExtraction::FeatureHasher.new
10
+ ```
11
+ - The mopti gem is used in [NeighbourhoodComponentAnalysis](https://yoshoku.github.io/rumale/doc/Rumale/MetricLearning/NeighbourhoodComponentAnalysis.html).
12
+ You only need to require mopti gem when using NeighbourhoodComponentAnalysis.
13
+ ```ruby
14
+ require 'mopti'
15
+ require 'rumale'
16
+
17
+ transformer = Rumale::MetricLearning::NeighbourhoodComponentAnalysis.new
18
+ ```
19
+ - Change the default value of solver parameter on [PCA](https://yoshoku.github.io/rumale/doc/Rumale/Decomposition/PCA.html) to 'auto'.
20
+ If Numo::Linalg is loaded, 'evd' is selected for the solver, otherwise 'fpt' is selected.
21
+ - Deprecate [PolynomialModel](https://yoshoku.github.io/rumale/doc/Rumale/PolynomialModel.html), [Optimizer](https://yoshoku.github.io/rumale/doc/Rumale/Optimizer.html), and the estimators contained in them. They will be deleted in version 0.20.0.
22
+ - Many machine learning libraries do not contain factorization machine algorithms, they are provided by another compatible library.
23
+ In addition, there are no plans to implement estimators in PolynomialModel.
24
+ Thus, the author decided to deprecate PolynomialModel.
25
+ - Currently, the Optimizer classes are only used by PolynomialModel estimators.
26
+ Therefore, they have been deprecated together with PolynomialModel.
27
+
1
28
  # 0.18.7
2
29
  - Fix to convert target_name to string array in [classification_report method](https://yoshoku.github.io/rumale/doc/Rumale/EvaluationMeasure.html#classification_report-class_method).
3
30
  - Refactor some codes with Rubocop.
data/Gemfile CHANGED
@@ -4,6 +4,8 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'coveralls', '~> 0.8'
7
+ gem 'mmh3', '>= 1.0'
8
+ gem 'mopti', '>= 0.1.0'
7
9
  gem 'numo-linalg', '>= 0.1.4'
8
10
  gem 'parallel', '>= 1.17.0'
9
11
  gem 'rake', '~> 12.0'
data/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  Rumale (**Ru**by **ma**chine **le**arning) is a machine learning library in Ruby.
12
12
  Rumale provides machine learning algorithms with interfaces similar to Scikit-Learn in Python.
13
13
  Rumale supports Support Vector Machine,
14
- Logistic Regression, Ridge, Lasso, Factorization Machine,
14
+ Logistic Regression, Ridge, Lasso,
15
15
  Multi-layer Perceptron,
16
16
  Naive Bayes, Decision Tree, Gradient Tree Boosting, Random Forest,
17
17
  K-Means, Gaussian Mixture Model, DBSCAN, Spectral Clustering,
@@ -42,39 +42,7 @@ Or install it yourself as:
42
42
 
43
43
  ## Usage
44
44
 
45
- ### Example 1. XOR data
46
- First, let's classify simple xor data.
47
-
48
- ```ruby
49
- require 'rumale'
50
-
51
- # Prepare XOR data.
52
- samples = [[0, 0], [0, 1], [1, 0], [1, 1]]
53
- labels = [0, 1, 1, 0]
54
-
55
- # Train classifier with nearest neighbor rule.
56
- estimator = Rumale::NearestNeighbors::KNeighborsClassifier.new(n_neighbors: 1)
57
- estimator.fit(samples, labels)
58
-
59
- # Predict labels.
60
- p labels
61
- p estimator.predict(samples)
62
- ```
63
-
64
- Execution of the above script result in the following.
65
-
66
- ```ruby
67
- [0, 1, 1, 0]
68
- Numo::Int32#shape=[4]
69
- [0, 1, 1, 0]
70
- ```
71
-
72
- The basic usage of Rumale is to first train the model with the fit method
73
- and then estimate with the predict method.
74
- In addition, Rumale recommends using arrays such as feature vectors and labels with
75
- [Numo::NArray](https://github.com/ruby-numo/numo-narray).
76
-
77
- ### Example 2. Pendigits dataset classification
45
+ ### Example 1. Pendigits dataset classification
78
46
 
79
47
  Rumale provides function loading libsvm format dataset file.
80
48
  We start by downloading the pendigits dataset from LIBSVM Data web site.
@@ -137,7 +105,7 @@ $ ruby test.rb
137
105
  Accuracy: 98.7%
138
106
  ```
139
107
 
140
- ### Example 3. Cross-validation
108
+ ### Example 2. Cross-validation
141
109
 
142
110
  ```ruby
143
111
  require 'rumale'
@@ -168,7 +136,7 @@ $ ruby cross_validation.rb
168
136
  5-CV mean log-loss: 0.355
169
137
  ```
170
138
 
171
- ### Example 4. Pipeline
139
+ ### Example 3. Pipeline
172
140
 
173
141
  ```ruby
174
142
  require 'rumale'
@@ -203,6 +171,7 @@ $ ruby pipeline.rb
203
171
  ## Speed up
204
172
 
205
173
  ### Numo::Linalg
174
+ Rumale uses [Numo::NArray](https://github.com/ruby-numo/numo-narray) for typed arrays.
206
175
  Loading the [Numo::Linalg](https://github.com/ruby-numo/numo-linalg) allows to perform matrix product of Numo::NArray using BLAS libraries.
207
176
  For example, using the [OpenBLAS](https://github.com/xianyi/OpenBLAS) speeds up many estimators in Rumale.
208
177
 
@@ -9,7 +9,7 @@ module Rumale
9
9
  # PCA is a class that implements Principal Component Analysis.
10
10
  #
11
11
  # @example
12
- # decomposer = Rumale::Decomposition::PCA.new(n_components: 2)
12
+ # decomposer = Rumale::Decomposition::PCA.new(n_components: 2, solver: 'fpt')
13
13
  # representaion = decomposer.fit_transform(samples)
14
14
  #
15
15
  # # If Numo::Linalg is installed, you can specify 'evd' for the solver option.
@@ -17,6 +17,11 @@ module Rumale
17
17
  # decomposer = Rumale::Decomposition::PCA.new(n_components: 2, solver: 'evd')
18
18
  # representaion = decomposer.fit_transform(samples)
19
19
  #
20
+ # # If Numo::Linalg is loaded and the solver option is not given,
21
+ # # the solver option is choosen 'evd' automatically.
22
+ # decomposer = Rumale::Decomposition::PCA.new(n_components: 2)
23
+ # representaion = decomposer.fit_transform(samples)
24
+ #
20
25
  # *Reference*
21
26
  # - Sharma, A., and Paliwal, K K., "Fast principal component analysis using fixed-point algorithm," Pattern Recognition Letters, 28, pp. 1151--1155, 2007.
22
27
  class PCA
@@ -38,18 +43,24 @@ module Rumale
38
43
  # Create a new transformer with PCA.
39
44
  #
40
45
  # @param n_components [Integer] The number of principal components.
41
- # @param solver [String] The algorithm for the optimization ('fpt' or 'evd').
42
- # 'fpt' uses the fixed-point algorithm. 'evd' performs eigen value decomposition of the covariance matrix of samples.
46
+ # @param solver [String] The algorithm for the optimization ('auto', 'fpt' or 'evd').
47
+ # 'auto' chooses the 'evd' solver if Numo::Linalg is loaded. Otherwise, it chooses the 'fpt' solver.
48
+ # 'fpt' uses the fixed-point algorithm.
49
+ # 'evd' performs eigen value decomposition of the covariance matrix of samples.
43
50
  # @param max_iter [Integer] The maximum number of iterations. If solver = 'evd', this parameter is ignored.
44
51
  # @param tol [Float] The tolerance of termination criterion. If solver = 'evd', this parameter is ignored.
45
52
  # @param random_seed [Integer] The seed value using to initialize the random generator.
46
- def initialize(n_components: 2, solver: 'fpt', max_iter: 100, tol: 1.0e-4, random_seed: nil)
53
+ def initialize(n_components: 2, solver: 'auto', max_iter: 100, tol: 1.0e-4, random_seed: nil)
47
54
  check_params_numeric(n_components: n_components, max_iter: max_iter, tol: tol)
48
55
  check_params_string(solver: solver)
49
56
  check_params_numeric_or_nil(random_seed: random_seed)
50
57
  check_params_positive(n_components: n_components, max_iter: max_iter, tol: tol)
51
58
  @params = {}
52
- @params[:solver] = solver != 'evd' ? 'fpt' : 'evd'
59
+ @params[:solver] = if solver == 'auto'
60
+ load_linalg? ? 'evd' : 'fpt'
61
+ else
62
+ solver != 'evd' ? 'fpt' : 'evd'
63
+ end
53
64
  @params[:n_components] = n_components
54
65
  @params[:max_iter] = max_iter
55
66
  @params[:tol] = tol
@@ -128,6 +139,13 @@ module Rumale
128
139
 
129
140
  private
130
141
 
142
+ def load_linalg?
143
+ return false if defined?(Numo::Linalg).nil?
144
+ return false if Numo::Linalg::VERSION < '0.1.4'
145
+
146
+ true
147
+ end
148
+
131
149
  def orthogonalize(pcvec)
132
150
  unless @components.nil?
133
151
  delta = @components.dot(pcvec) * @components.transpose
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'mmh3'
4
3
  require 'rumale/base/base_estimator'
5
4
  require 'rumale/base/transformer'
6
5
 
@@ -11,11 +10,15 @@ module Rumale
11
10
  # This encoder employs signed 32-bit Murmurhash3 as the hash function.
12
11
  #
13
12
  # @example
13
+ # require 'mmh3'
14
+ # require 'rumale'
15
+ #
14
16
  # encoder = Rumale::FeatureExtraction::FeatureHasher.new(n_features: 10)
15
17
  # x = encoder.transform([
16
18
  # { dog: 1, cat: 2, elephant: 4 },
17
19
  # { dog: 2, run: 5 }
18
20
  # ])
21
+ #
19
22
  # # > pp x
20
23
  # # Numo::DFloat#shape=[2,10]
21
24
  # # [[0, 0, -4, -1, 0, 0, 0, 0, 0, 2],
@@ -62,6 +65,8 @@ module Rumale
62
65
  # @param x [Array<Hash>] (shape: [n_samples]) The array of hash consisting of feature names and values.
63
66
  # @return [Numo::DFloat] (shape: [n_samples, n_features]) The encoded sample array.
64
67
  def transform(x)
68
+ raise 'FeatureHasher#transform requires Mmh3 but that is not loaded.' unless enable_mmh3?
69
+
65
70
  x = [x] unless x.is_a?(Array)
66
71
  n_samples = x.size
67
72
 
@@ -85,6 +90,14 @@ module Rumale
85
90
 
86
91
  private
87
92
 
93
+ def enable_mmh3?
94
+ if defined?(Mmh3).nil?
95
+ warn('FeatureHasher#transform requires Mmh3 but that is not loaded. You should intall and load mmh3 gem in advance.')
96
+ return false
97
+ end
98
+ true
99
+ end
100
+
88
101
  def n_features
89
102
  @params[:n_features]
90
103
  end
@@ -8,6 +8,7 @@ module Rumale
8
8
  # @note
9
9
  # In version 0.17.0, a new linear model abstract class called BaseSGD is introduced.
10
10
  # BaseLienarModel is deprecated and will be removed in the future.
11
+ # @deprecated Use BaseSGD class instead. This class will be deleted in version 0.20.0.
11
12
  #
12
13
  # BaseLinearModel is an abstract class for implementation of linear estimator
13
14
  # with mini-batch stochastic gradient descent optimization.
@@ -2,13 +2,15 @@
2
2
 
3
3
  require 'rumale/base/base_estimator'
4
4
  require 'rumale/base/transformer'
5
- require 'mopti/scaled_conjugate_gradient'
6
5
 
7
6
  module Rumale
8
7
  module MetricLearning
9
8
  # NeighbourhoodComponentAnalysis is a class that implements Neighbourhood Component Analysis.
10
9
  #
11
10
  # @example
11
+ # require 'mopti'
12
+ # require 'rumale'
13
+ #
12
14
  # transformer = Rumale::MetricLearning::NeighbourhoodComponentAnalysis.new
13
15
  # transformer.fit(training_samples, traininig_labels)
14
16
  # low_samples = transformer.transform(testing_samples)
@@ -63,6 +65,8 @@ module Rumale
63
65
  # @param y [Numo::Int32] (shape: [n_samples]) The labels to be used for fitting the model.
64
66
  # @return [NeighbourhoodComponentAnalysis] The learned classifier itself.
65
67
  def fit(x, y)
68
+ raise 'NeighbourhoodComponentAnalysis#fit requires Mopti but that is not loaded.' unless enable_mopti?
69
+
66
70
  x = check_convert_sample_array(x)
67
71
  y = check_convert_label_array(y)
68
72
  check_sample_label_size(x, y)
@@ -98,6 +102,14 @@ module Rumale
98
102
 
99
103
  private
100
104
 
105
+ def enable_mopti?
106
+ if defined?(Mopti).nil?
107
+ warn('NeighbourhoodComponentAnalysis#fit requires Mopti but that is not loaded. You should intall and load mopti gem in advance.')
108
+ return false
109
+ end
110
+ true
111
+ end
112
+
101
113
  def init_components(x, n_features, n_components)
102
114
  if @params[:init] == 'pca'
103
115
  pca = Rumale::Decomposition::PCA.new(n_components: n_components, solver: 'evd')
@@ -7,6 +7,8 @@ module Rumale
7
7
  module Optimizer
8
8
  # AdaGrad is a class that implements AdaGrad optimizer.
9
9
  #
10
+ # @deprecated AdaGrad will be deleted in version 0.20.0.
11
+ #
10
12
  # *Reference*
11
13
  # - Duchi, J., Hazan, E., and Singer, Y., "Adaptive Subgradient Methods for Online Learning and Stochastic Optimization," J. Machine Learning Research, vol. 12, pp. 2121--2159, 2011.
12
14
  class AdaGrad
@@ -17,6 +19,7 @@ module Rumale
17
19
  #
18
20
  # @param learning_rate [Float] The initial value of learning rate.
19
21
  def initialize(learning_rate: 0.01)
22
+ warn 'warning: AdaGrad is deprecated. This class will be deleted in version 0.20.0.'
20
23
  check_params_numeric(learning_rate: learning_rate)
21
24
  check_params_positive(learning_rate: learning_rate)
22
25
  @params = {}
@@ -7,6 +7,8 @@ module Rumale
7
7
  module Optimizer
8
8
  # Adam is a class that implements Adam optimizer.
9
9
  #
10
+ # @deprecated Adam will be deleted in version 0.20.0.
11
+ #
10
12
  # *Reference*
11
13
  # - Kingma, D P., and Ba, J., "Adam: A Method for Stochastic Optimization," Proc. ICLR'15, 2015.
12
14
  class Adam
@@ -19,6 +21,7 @@ module Rumale
19
21
  # @param decay1 [Float] The smoothing parameter for the first moment.
20
22
  # @param decay2 [Float] The smoothing parameter for the second moment.
21
23
  def initialize(learning_rate: 0.001, decay1: 0.9, decay2: 0.999)
24
+ warn 'warning: Adam is deprecated. This class will be deleted in version 0.20.0.'
22
25
  check_params_numeric(learning_rate: learning_rate, decay1: decay1, decay2: decay2)
23
26
  check_params_positive(learning_rate: learning_rate, decay1: decay1, decay2: decay2)
24
27
  @params = {}
@@ -5,9 +5,13 @@ require 'rumale/base/base_estimator'
5
5
 
6
6
  module Rumale
7
7
  # This module consists of the classes that implement optimizers adaptively tuning hyperparameters.
8
+ #
9
+ # @deprecated Optimizer module will be deleted in version 0.20.0.
8
10
  module Optimizer
9
11
  # Nadam is a class that implements Nadam optimizer.
10
12
  #
13
+ # @deprecated Nadam will be deleted in version 0.20.0.
14
+ #
11
15
  # *Reference*
12
16
  # - Dozat, T., "Incorporating Nesterov Momentum into Adam," Tech. Repo. Stanford University, 2015.
13
17
  class Nadam
@@ -20,6 +24,7 @@ module Rumale
20
24
  # @param decay1 [Float] The smoothing parameter for the first moment.
21
25
  # @param decay2 [Float] The smoothing parameter for the second moment.
22
26
  def initialize(learning_rate: 0.01, decay1: 0.9, decay2: 0.999)
27
+ warn 'warning: Nadam is deprecated. This class will be deleted in version 0.20.0.'
23
28
  check_params_numeric(learning_rate: learning_rate, decay1: decay1, decay2: decay2)
24
29
  check_params_positive(learning_rate: learning_rate, decay1: decay1, decay2: decay2)
25
30
  @params = {}
@@ -7,6 +7,8 @@ module Rumale
7
7
  module Optimizer
8
8
  # RMSProp is a class that implements RMSProp optimizer.
9
9
  #
10
+ # @deprecated RMSProp will be deleted in version 0.20.0.
11
+ #
10
12
  # *Reference*
11
13
  # - Sutskever, I., Martens, J., Dahl, G., and Hinton, G., "On the importance of initialization and momentum in deep learning," Proc. ICML' 13, pp. 1139--1147, 2013.
12
14
  # - Hinton, G., Srivastava, N., and Swersky, K., "Lecture 6e rmsprop," Neural Networks for Machine Learning, 2012.
@@ -20,6 +22,7 @@ module Rumale
20
22
  # @param momentum [Float] The initial value of momentum.
21
23
  # @param decay [Float] The smooting parameter.
22
24
  def initialize(learning_rate: 0.01, momentum: 0.9, decay: 0.9)
25
+ warn 'warning: RMSProp is deprecated. This class will be deleted in version 0.20.0.'
23
26
  check_params_numeric(learning_rate: learning_rate, momentum: momentum, decay: decay)
24
27
  check_params_positive(learning_rate: learning_rate, momentum: momentum, decay: decay)
25
28
  @params = {}
@@ -6,6 +6,8 @@ require 'rumale/base/base_estimator'
6
6
  module Rumale
7
7
  module Optimizer
8
8
  # SGD is a class that implements SGD optimizer.
9
+ #
10
+ # @deprecated SGD will be deleted in version 0.20.0.
9
11
  class SGD
10
12
  include Base::BaseEstimator
11
13
  include Validation
@@ -16,6 +18,7 @@ module Rumale
16
18
  # @param momentum [Float] The initial value of momentum.
17
19
  # @param decay [Float] The smooting parameter.
18
20
  def initialize(learning_rate: 0.01, momentum: 0.0, decay: 0.0)
21
+ warn 'warning: SGD is deprecated. This class will be deleted in version 0.20.0.'
19
22
  check_params_numeric(learning_rate: learning_rate, momentum: momentum, decay: decay)
20
23
  check_params_positive(learning_rate: learning_rate, momentum: momentum, decay: decay)
21
24
  @params = {}
@@ -7,6 +7,8 @@ module Rumale
7
7
  module Optimizer
8
8
  # YellowFin is a class that implements YellowFin optimizer.
9
9
  #
10
+ # @deprecated YellowFin will be deleted in version 0.20.0.
11
+ #
10
12
  # *Reference*
11
13
  # - Zhang, J., and Mitliagkas, I., "YellowFin and the Art of Momentum Tuning," CoRR abs/1706.03471, 2017.
12
14
  class YellowFin
@@ -20,6 +22,7 @@ module Rumale
20
22
  # @param decay [Float] The smooting parameter.
21
23
  # @param window_width [Integer] The sliding window width for searching curvature range.
22
24
  def initialize(learning_rate: 0.01, momentum: 0.9, decay: 0.999, window_width: 20)
25
+ warn 'warning: YellowFin is deprecated. This class will be deleted in version 0.20.0.'
23
26
  check_params_numeric(learning_rate: learning_rate, momentum: momentum, decay: decay, window_width: window_width)
24
27
  check_params_positive(learning_rate: learning_rate, momentum: momentum, decay: decay, window_width: window_width)
25
28
  @params = {}
@@ -5,9 +5,13 @@ require 'rumale/optimizer/nadam'
5
5
 
6
6
  module Rumale
7
7
  # This module consists of the classes that implement polynomial models.
8
+ #
9
+ # @deprecated PolynomialModel module will be deleted in version 0.20.0.
8
10
  module PolynomialModel
9
11
  # BaseFactorizationMachine is an abstract class for implementation of Factorization Machine-based estimators.
10
12
  # This class is used internally.
13
+ #
14
+ # @deprecated BaseFactorizationMachine will be deleted in version 0.20.0.
11
15
  class BaseFactorizationMachine
12
16
  include Base::BaseEstimator
13
17
 
@@ -10,6 +10,10 @@ module Rumale
10
10
  # with stochastic gradient descent (SGD) optimization.
11
11
  # For multiclass classification problem, it uses one-vs-the-rest strategy.
12
12
  #
13
+ # @deprecated
14
+ # FactorizationMachineClassifier will be deleted in version 0.20.0.
15
+ # The Ruamle author recommends using the xlearn gem instead.
16
+ #
13
17
  # @example
14
18
  # estimator =
15
19
  # Rumale::PolynomialModel::FactorizationMachineClassifier.new(
@@ -65,6 +69,7 @@ module Rumale
65
69
  def initialize(n_factors: 2, loss: 'hinge', reg_param_linear: 1.0, reg_param_factor: 1.0,
66
70
  max_iter: 200, batch_size: 50, tol: 1e-4,
67
71
  optimizer: nil, n_jobs: nil, verbose: false, random_seed: nil)
72
+ warn 'warning: FactorizationMachineClassifier is deprecated. This class will be deleted in version 0.20.0.'
68
73
  check_params_numeric(reg_param_linear: reg_param_linear, reg_param_factor: reg_param_factor,
69
74
  n_factors: n_factors, max_iter: max_iter, batch_size: batch_size, tol: tol)
70
75
  check_params_string(loss: loss)
@@ -8,6 +8,10 @@ module Rumale
8
8
  # FactorizationMachineRegressor is a class that implements Factorization Machine
9
9
  # with stochastic gradient descent (SGD) optimization.
10
10
  #
11
+ # @deprecated
12
+ # FactorizationMachineRegressor will be deleted in version 0.20.0.
13
+ # The Ruamle author recommends using the xlearn gem instead.
14
+ #
11
15
  # @example
12
16
  # estimator =
13
17
  # Rumale::PolynomialModel::FactorizationMachineRegressor.new(
@@ -58,6 +62,7 @@ module Rumale
58
62
  def initialize(n_factors: 2, reg_param_linear: 1.0, reg_param_factor: 1.0,
59
63
  max_iter: 200, batch_size: 50, tol: 1e-4,
60
64
  optimizer: nil, n_jobs: nil, verbose: false, random_seed: nil)
65
+ warn 'warning: FactorizationMachineClassifier is deprecated. This class will be deleted in version 0.20.0.'
61
66
  check_params_numeric(reg_param_linear: reg_param_linear, reg_param_factor: reg_param_factor,
62
67
  n_factors: n_factors, max_iter: max_iter, batch_size: batch_size, tol: tol)
63
68
  check_params_boolean(verbose: verbose)
@@ -3,5 +3,5 @@
3
3
  # Rumale is a machine learning library in Ruby.
4
4
  module Rumale
5
5
  # The version of Rumale you are using.
6
- VERSION = '0.18.7'
6
+ VERSION = '0.19.0'
7
7
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  Rumale is a machine learning library in Ruby.
17
17
  Rumale provides machine learning algorithms with interfaces similar to Scikit-Learn in Python.
18
18
  Rumale supports Support Vector Machine,
19
- Logistic Regression, Ridge, Lasso, Factorization Machine,
19
+ Logistic Regression, Ridge, Lasso,
20
20
  Multi-layer Perceptron,
21
21
  Naive Bayes, Decision Tree, Gradient Tree Boosting, Random Forest,
22
22
  K-Means, Gaussian Mixture Model, DBSCAN, Spectral Clustering,
@@ -45,6 +45,4 @@ Gem::Specification.new do |spec|
45
45
  }
46
46
 
47
47
  spec.add_runtime_dependency 'numo-narray', '>= 0.9.1'
48
- spec.add_runtime_dependency 'mopti', '>= 0.1.0'
49
- spec.add_runtime_dependency 'mmh3', '>= 0.1.0'
50
48
  end
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.18.7
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-16 00:00:00.000000000 Z
11
+ date: 2020-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -24,39 +24,11 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.9.1
27
- - !ruby/object:Gem::Dependency
28
- name: mopti
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.1.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: 0.1.0
41
- - !ruby/object:Gem::Dependency
42
- name: mmh3
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 0.1.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 0.1.0
55
27
  description: |
56
28
  Rumale is a machine learning library in Ruby.
57
29
  Rumale provides machine learning algorithms with interfaces similar to Scikit-Learn in Python.
58
30
  Rumale supports Support Vector Machine,
59
- Logistic Regression, Ridge, Lasso, Factorization Machine,
31
+ Logistic Regression, Ridge, Lasso,
60
32
  Multi-layer Perceptron,
61
33
  Naive Bayes, Decision Tree, Gradient Tree Boosting, Random Forest,
62
34
  K-Means, Gaussian Mixture Model, DBSCAN, Spectral Clustering,