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 |