Class: Rumale::LinearModel::SVR
- Inherits:
-
BaseEstimator
- Object
- Base::Estimator
- BaseEstimator
- Rumale::LinearModel::SVR
- Includes:
- Base::Regressor
- Defined in:
- rumale-linear_model/lib/rumale/linear_model/svr.rb
Overview
Note:
Rumale::SVM provides linear and kernel support vector regressor based on LIBLINEAR and LIBSVM. If you prefer execution speed, you should use Rumale::SVM::LinearSVR. github.com/yoshoku/rumale-svm
SVR is a class that implements Support Vector Regressor with the squared epsilon-insensitive loss.
Instance Attribute Summary
Attributes inherited from BaseEstimator
Attributes inherited from Base::Estimator
Instance Method Summary collapse
-
#fit(x, y) ⇒ SVR
Fit the model with given training data.
-
#initialize(reg_param: 1.0, fit_bias: true, bias_scale: 1.0, epsilon: 0.1, max_iter: 1000, tol: 1e-4, n_jobs: nil, verbose: false) ⇒ SVR
constructor
Create a new regressor with Support Vector Machine by the SGD optimization.
-
#predict(x) ⇒ Numo::DFloat
Predict values for samples.
Methods included from Base::Regressor
Constructor Details
#initialize(reg_param: 1.0, fit_bias: true, bias_scale: 1.0, epsilon: 0.1, max_iter: 1000, tol: 1e-4, n_jobs: nil, verbose: false) ⇒ SVR
Create a new regressor with Support Vector Machine by the SGD optimization.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'rumale-linear_model/lib/rumale/linear_model/svr.rb', line 42 def initialize(reg_param: 1.0, fit_bias: true, bias_scale: 1.0, epsilon: 0.1, max_iter: 1000, tol: 1e-4, n_jobs: nil, verbose: false) super() @params = { reg_param: reg_param, fit_bias: fit_bias, bias_scale: bias_scale, epsilon: epsilon, max_iter: max_iter, tol: tol, n_jobs: n_jobs, verbose: verbose } end |
Instance Method Details
#fit(x, y) ⇒ SVR
Fit the model with given training data.
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'rumale-linear_model/lib/rumale/linear_model/svr.rb', line 62 def fit(x, y) x = Rumale::Validation.check_convert_sample_array(x) y = Rumale::Validation.check_convert_target_value_array(y) Rumale::Validation.check_sample_size(x, y) n_outputs = y.shape[1].nil? ? 1 : y.shape[1] n_features = x.shape[1] if n_outputs > 1 @weight_vec = Numo::DFloat.zeros(n_outputs, n_features) @bias_term = Numo::DFloat.zeros(n_outputs) if enable_parallel? models = parallel_map(n_outputs) { |n| partial_fit(x, y[true, n]) } n_outputs.times { |n| @weight_vec[n, true], @bias_term[n] = models[n] } else n_outputs.times { |n| @weight_vec[n, true], @bias_term[n] = partial_fit(x, y[true, n]) } end else @weight_vec, @bias_term = partial_fit(x, y) end self end |
#predict(x) ⇒ Numo::DFloat
Predict values for samples.
90 91 92 93 94 |
# File 'rumale-linear_model/lib/rumale/linear_model/svr.rb', line 90 def predict(x) x = ::Rumale::Validation.check_convert_sample_array(x) x.dot(@weight_vec.transpose) + @bias_term end |