38 virtual double loss(
const Eigen::MatrixXd& eta,
const Eigen::MatrixXd& y) = 0;
51 virtual double dual(
const Eigen::MatrixXd& theta,
52 const Eigen::MatrixXd& y,
53 const Eigen::VectorXd& w) = 0;
65 virtual Eigen::MatrixXd
residual(
const Eigen::MatrixXd& eta,
66 const Eigen::MatrixXd& y) = 0;
81 const Eigen::VectorXd& eta,
82 const Eigen::VectorXd& y) = 0;
100 const Eigen::MatrixXd& eta,
101 const Eigen::MatrixXd& y)
104 beta0 -=
residual.colwise().mean() / this->lipschitz_constant;
113 virtual Eigen::MatrixXd
link(
const Eigen::MatrixXd& mu) = 0;
121 virtual Eigen::MatrixXd
inverseLink(
const Eigen::MatrixXd& eta) = 0;
128 virtual Eigen::MatrixXd
predict(
const Eigen::MatrixXd& eta) = 0;
137 virtual double deviance(
const Eigen::MatrixXd& eta,
const Eigen::MatrixXd& y)
150 explicit Loss(
double lipschitz_constant)
151 : lipschitz_constant(lipschitz_constant)
156 const double lipschitz_constant;
Loss(double lipschitz_constant)
Constructs an loss function with specified Lipschitz constant.
virtual double loss(const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)=0
Calculates the loss function.
virtual Eigen::MatrixXd preprocessResponse(const Eigen::MatrixXd &y)=0
Preprocess response.
virtual double deviance(const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)
Computes deviance, which is 2 times the difference between the loglikelihood of the model and the log...
virtual void updateIntercept(Eigen::VectorXd &beta0, const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)
Updates the intercept with a gradient descent update. Also updates the linear predictor (but not the ...
virtual void updateWeightsAndWorkingResponse(Eigen::VectorXd &w, Eigen::VectorXd &z, const Eigen::VectorXd &eta, const Eigen::VectorXd &y)=0
Updates the weights and working response.
virtual Eigen::MatrixXd inverseLink(const Eigen::MatrixXd &eta)=0
The inverse link function, also known as the mean function.
virtual Eigen::MatrixXd predict(const Eigen::MatrixXd &eta)=0
Return predicted response.
virtual double dual(const Eigen::MatrixXd &theta, const Eigen::MatrixXd &y, const Eigen::VectorXd &w)=0
Calculates the dual loss.
virtual Eigen::MatrixXd residual(const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)=0
Calculates the residual.
virtual ~Loss()=default
Destructor for the Loss class.
virtual Eigen::MatrixXd link(const Eigen::MatrixXd &mu)=0
The link function.
Namespace containing SLOPE regression implementation.