12#include <Eigen/SparseCore>
65 Eigen::VectorXd& beta0,
66 Eigen::VectorXd& beta,
68 const Eigen::ArrayXd& lambda,
69 const std::unique_ptr<Loss>& loss,
71 const Eigen::VectorXd& gradient,
72 const std::vector<int>& working_set,
73 const Eigen::MatrixXd& x,
74 const Eigen::VectorXd& x_centers,
75 const Eigen::VectorXd& x_scales,
76 const Eigen::MatrixXd& y,
77 const Eigen::VectorXd& observation_weights = Eigen::VectorXd()) = 0;
96 Eigen::VectorXd& beta0,
97 Eigen::VectorXd& beta,
99 const Eigen::ArrayXd& lambda,
100 const std::unique_ptr<Loss>& loss,
102 const Eigen::VectorXd& gradient,
103 const std::vector<int>& working_set,
104 const Eigen::SparseMatrix<double>& x,
105 const Eigen::VectorXd& x_centers,
106 const Eigen::VectorXd& x_scales,
107 const Eigen::MatrixXd& y,
108 const Eigen::VectorXd& observation_weights = Eigen::VectorXd()) = 0;
127 Eigen::VectorXd& beta0,
128 Eigen::VectorXd& beta,
129 Eigen::MatrixXd& eta,
130 const Eigen::ArrayXd& lambda,
131 const std::unique_ptr<Loss>& loss,
133 const Eigen::VectorXd& gradient,
134 const std::vector<int>& working_set,
135 const Eigen::Map<Eigen::MatrixXd>& x,
136 const Eigen::VectorXd& x_centers,
137 const Eigen::VectorXd& x_scales,
138 const Eigen::MatrixXd& y,
139 const Eigen::VectorXd& observation_weights = Eigen::VectorXd()) = 0;
158 Eigen::VectorXd& beta0,
159 Eigen::VectorXd& beta,
160 Eigen::MatrixXd& eta,
161 const Eigen::ArrayXd& lambda,
162 const std::unique_ptr<Loss>& loss,
164 const Eigen::VectorXd& gradient,
165 const std::vector<int>& working_set,
166 const Eigen::Map<Eigen::SparseMatrix<double>>& x,
167 const Eigen::VectorXd& x_centers,
168 const Eigen::VectorXd& x_scales,
169 const Eigen::MatrixXd& y,
170 const Eigen::VectorXd& observation_weights = Eigen::VectorXd()) = 0;
virtual ~SolverBase()=default
Default destructor.
JitNormalization jit_normalization
JIT feature normalization strategy.
bool intercept
If true, fits intercept term.
virtual void run(Eigen::VectorXd &beta0, Eigen::VectorXd &beta, Eigen::MatrixXd &eta, const Eigen::ArrayXd &lambda, const std::unique_ptr< Loss > &loss, const SortedL1Norm &penalty, const Eigen::VectorXd &gradient, const std::vector< int > &working_set, const Eigen::SparseMatrix< double > &x, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights=Eigen::VectorXd())=0
Pure virtual function defining the solver's optimization routine.
virtual void run(Eigen::VectorXd &beta0, Eigen::VectorXd &beta, Eigen::MatrixXd &eta, const Eigen::ArrayXd &lambda, const std::unique_ptr< Loss > &loss, const SortedL1Norm &penalty, const Eigen::VectorXd &gradient, const std::vector< int > &working_set, const Eigen::MatrixXd &x, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights=Eigen::VectorXd())=0
Pure virtual function defining the solver's optimization routine.
virtual void run(Eigen::VectorXd &beta0, Eigen::VectorXd &beta, Eigen::MatrixXd &eta, const Eigen::ArrayXd &lambda, const std::unique_ptr< Loss > &loss, const SortedL1Norm &penalty, const Eigen::VectorXd &gradient, const std::vector< int > &working_set, const Eigen::Map< Eigen::MatrixXd > &x, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights=Eigen::VectorXd())=0
Pure virtual function defining the solver's optimization routine.
SolverBase(JitNormalization jit_normalization, bool intercept)
Constructs a base solver for SLOPE optimization.
virtual void run(Eigen::VectorXd &beta0, Eigen::VectorXd &beta, Eigen::MatrixXd &eta, const Eigen::ArrayXd &lambda, const std::unique_ptr< Loss > &loss, const SortedL1Norm &penalty, const Eigen::VectorXd &gradient, const std::vector< int > &working_set, const Eigen::Map< Eigen::SparseMatrix< double > > &x, const Eigen::VectorXd &x_centers, const Eigen::VectorXd &x_scales, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights=Eigen::VectorXd())=0
Pure virtual function defining the solver's optimization routine.
Class representing the Sorted L1 Norm.
Enums to control predictor standardization behavior.
The declartion of the Objctive class and its subclasses, which represent the data-fitting part of the...
Namespace containing SLOPE regression implementation.
JitNormalization
Enums to control predictor standardization behavior.
The declaration of the SortedL1Norm class.