slope 0.29.0
Loading...
Searching...
No Matches
slope::PGD Class Reference

Proximal Gradient Descent solver for SLOPE optimization. More...

#include <pgd.h>

Inheritance diagram for slope::PGD:
Collaboration diagram for slope::PGD:

Public Member Functions

 PGD (JitNormalization jit_normalization, bool intercept, const std::string &update_type)
 Constructs Proximal Gradient Descent solver for SLOPE optimization.
 
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) override
 Pure virtual function defining the solver's optimization routine.
 
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) override
 Pure virtual function defining the solver's optimization routine.
 
- Public Member Functions inherited from slope::SolverBase
 SolverBase (JitNormalization jit_normalization, bool intercept)
 Constructs a base solver for SLOPE optimization.
 
virtual ~SolverBase ()=default
 Default desstructor.
 

Additional Inherited Members

- Protected Attributes inherited from slope::SolverBase
JitNormalization jit_normalization
 JIT feature normalization strategy.
 
bool intercept
 If true, fits intercept term.
 

Detailed Description

Proximal Gradient Descent solver for SLOPE optimization.

This solver implements the proximal gradient descent algorithm with line search for solving the SLOPE optimization problem. It uses backtracking line search to automatically adjust the learning rate for optimal convergence.

Definition at line 25 of file pgd.h.

Constructor & Destructor Documentation

◆ PGD()

slope::PGD::PGD ( JitNormalization  jit_normalization,
bool  intercept,
const std::string &  update_type 
)
inline

Constructs Proximal Gradient Descent solver for SLOPE optimization.

Parameters
jit_normalizationFeature normalization strategy
interceptIf true, fits intercept term
update_typeType of update strategy to use

Definition at line 34 of file pgd.h.

Member Function Documentation

◆ run() [1/2]

void slope::PGD::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 
)
overridevirtual

Pure virtual function defining the solver's optimization routine.

Parameters
beta0Intercept terms for each response
betaCoefficients (size p x m)
etaLinear predictor matrix (n samples x m responses)
lambdaVector of regularization parameters
lossPointer to loss function object
penaltySorted L1 norm object for proximal operations
gradientGradient matrix for loss function
working_setVector of indices for active predictors
xInput feature matrix (n samples x p predictors)
x_centersVector of feature means for centering
x_scalesVector of feature scales for normalization
yResponse matrix (n samples x m responses)

Implements slope::SolverBase.

Definition at line 17 of file pgd.cpp.

◆ run() [2/2]

void slope::PGD::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 
)
overridevirtual

Pure virtual function defining the solver's optimization routine.

Parameters
beta0Intercept terms for each response
betaCoefficients (size p x m)
etaLinear predictor matrix (n samples x m responses)
lambdaVector of regularization parameters
lossPointer to loss function object
penaltySorted L1 norm object for proximal operations
gradientGradient matrix for loss function
working_setVector of indices for active predictors
xInput feature matrix (n samples x p predictors)
x_centersVector of feature means for centering
x_scalesVector of feature scales for normalization
yResponse matrix (n samples x m responses)

Implements slope::SolverBase.

Definition at line 46 of file pgd.cpp.


The documentation for this class was generated from the following files: