Class: Rumale::SVM::NuSVR
- Inherits:
-
Base::Estimator
- Object
- Base::Estimator
- Rumale::SVM::NuSVR
- Includes:
- Base::Regressor
- Defined in:
- lib/rumale/svm/nu_svr.rb
Overview
NuSVR is a class that provides Kernel Nu-Support Vector Regressor in LIBSVM with Rumale interface.
Instance Method Summary collapse
-
#duel_coef ⇒ Numo::DFloat
Return the coefficients of the support vector in decision function.
-
#fit(x, y) ⇒ NuSVR
Fit the model with given training data.
-
#initialize(nu: 0.5, kernel: 'rbf', degree: 3, gamma: 1.0, coef0: 0.0, shrinking: true, cache_size: 200.0, tol: 1e-3, verbose: false, random_seed: nil) ⇒ NuSVR
constructor
Create a new regressor with Kernel Nu-Support Vector Regressor.
-
#intercept ⇒ Numo::DFloat
Return the intercepts in decision function.
-
#marshal_dump ⇒ Hash
Dump marshal data.
-
#marshal_load(obj) ⇒ nil
Load marshal data.
-
#n_support ⇒ Integer
Return the number of support vectors.
-
#predict(x) ⇒ Numo::DFloat
Predict values for samples.
-
#support ⇒ Numo::Int32
Return the indices of support vectors.
-
#support_vectors ⇒ Numo::DFloat
Return the support_vectors.
Constructor Details
#initialize(nu: 0.5, kernel: 'rbf', degree: 3, gamma: 1.0, coef0: 0.0, shrinking: true, cache_size: 200.0, tol: 1e-3, verbose: false, random_seed: nil) ⇒ NuSVR
Create a new regressor with Kernel Nu-Support Vector Regressor.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/rumale/svm/nu_svr.rb', line 31 def initialize(nu: 0.5, kernel: 'rbf', degree: 3, gamma: 1.0, coef0: 0.0, shrinking: true, cache_size: 200.0, tol: 1e-3, verbose: false, random_seed: nil) super() @params = {} @params[:nu] = nu.to_f @params[:kernel] = kernel @params[:degree] = degree.to_i @params[:gamma] = gamma.to_f @params[:coef0] = coef0.to_f @params[:shrinking] = shrinking @params[:cache_size] = cache_size.to_f @params[:tol] = tol.to_f @params[:verbose] = verbose @params[:random_seed] = random_seed.nil? ? nil : random_seed.to_i end |
Instance Method Details
#duel_coef ⇒ Numo::DFloat
Return the coefficients of the support vector in decision function.
109 110 111 |
# File 'lib/rumale/svm/nu_svr.rb', line 109 def duel_coef @model[:sv_coef] end |
#fit(x, y) ⇒ NuSVR
Fit the model with given training data.
53 54 55 56 57 58 59 60 |
# File 'lib/rumale/svm/nu_svr.rb', line 53 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) xx = precomputed_kernel? ? add_index_col(x) : x @model = Numo::Libsvm.train(xx, y, libsvm_params) self end |
#intercept ⇒ Numo::DFloat
Return the intercepts in decision function.
115 116 117 |
# File 'lib/rumale/svm/nu_svr.rb', line 115 def intercept @model[:rho] end |
#marshal_dump ⇒ Hash
Dump marshal data.
76 77 78 79 |
# File 'lib/rumale/svm/nu_svr.rb', line 76 def marshal_dump { params: @params, model: @model } end |
#marshal_load(obj) ⇒ nil
Load marshal data.
83 84 85 86 87 |
# File 'lib/rumale/svm/nu_svr.rb', line 83 def marshal_load(obj) @params = obj[:params] @model = obj[:model] nil end |
#n_support ⇒ Integer
Return the number of support vectors.
103 104 105 |
# File 'lib/rumale/svm/nu_svr.rb', line 103 def n_support support.size end |
#predict(x) ⇒ Numo::DFloat
Predict values for samples.
67 68 69 70 71 72 |
# File 'lib/rumale/svm/nu_svr.rb', line 67 def predict(x) raise "#{self.class.name}##{__method__} expects to be called after training the model with the fit method." unless trained? x = Rumale::Validation.check_convert_sample_array(x) xx = precomputed_kernel? ? add_index_col(x) : x Numo::Libsvm.predict(xx, libsvm_params, @model) end |
#support ⇒ Numo::Int32
Return the indices of support vectors.
91 92 93 |
# File 'lib/rumale/svm/nu_svr.rb', line 91 def support @model[:sv_indices] end |
#support_vectors ⇒ Numo::DFloat
Return the support_vectors.
97 98 99 |
# File 'lib/rumale/svm/nu_svr.rb', line 97 def support_vectors precomputed_kernel? ? del_index_col(@model[:SV]) : @model[:SV] end |