|
|
virtual | ~Loss ()=default |
| | Destructor for the Loss class.
|
| virtual double | loss (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)=0 |
| | Calculates the loss function.
|
| virtual double | loss (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights) |
| | Calculates the loss averaged by observation weights.
|
| virtual double | dual (const Eigen::MatrixXd &theta, const Eigen::MatrixXd &y, const Eigen::VectorXd &w)=0 |
| | Calculates the dual loss.
|
| Eigen::MatrixXd | residual (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y) |
| | Calculates the generalized residual.
|
| virtual Eigen::MatrixXd | dualPoint (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y, bool fit_intercept) |
| | Constructs a dual candidate from a linear predictor.
|
| virtual Eigen::MatrixXd | dualPoint (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y, bool fit_intercept, const Eigen::VectorXd &observation_weights) |
| | Constructs a dual candidate with weighted intercept stationarity.
|
| virtual Eigen::MatrixXd | hessianDiagonal (const Eigen::MatrixXd &eta)=0 |
| | Calculates the hessian diagonal of the loss function.
|
| virtual void | updateWeightsAndWorkingResponse (Eigen::MatrixXd &w, Eigen::MatrixXd &z, const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y) |
| | Updates weights and working response.
|
| virtual void | updateWeightsAndWorkingResponse (Eigen::MatrixXd &w, Eigen::MatrixXd &z, const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights) |
| | Updates the IRLS approximation including observation weights.
|
| virtual Eigen::MatrixXd | preprocessResponse (const Eigen::MatrixXd &y)=0 |
| | Preprocess response.
|
| virtual void | updateIntercept (Eigen::VectorXd &beta0, const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y) |
| | Updates the intercept with a gradient descent update.
|
| virtual Eigen::MatrixXd | link (const Eigen::MatrixXd &mu)=0 |
| | The link function.
|
| 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 | 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 loglikelihood of the null (intercept-only) model.
|
|
virtual double | deviance (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights) |
| | Computes deviance averaged by observation weights.
|
|
|
Eigen::MatrixXd | residualOnSupport (const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y, const Eigen::VectorXd &observation_weights) |
| | Evaluates family residuals only on positive-weight observations.
|
| | Loss (double lipschitz_constant) |
| | Constructs an loss function with specified Lipschitz constant.
|
| Eigen::MatrixXd | domainSafePoint (const Eigen::MatrixXd &mean, const Eigen::MatrixXd &y, double lower, double upper) const |
| | Enforces scalar intercept stationarity without leaving a mean domain.
|
|
Eigen::MatrixXd | domainSafePoint (const Eigen::MatrixXd &mean, const Eigen::MatrixXd &y, double lower, double upper, const Eigen::VectorXd &observation_weights) const |
Loss function interface.
This class defines the interface for an loss function, which is used in optimization algorithms. The loss function calculates the loss, dual, residual, and updates the weights and working response.
Definition at line 20 of file loss.h.
| virtual Eigen::MatrixXd slope::Loss::dualPoint |
( |
const Eigen::MatrixXd & | eta, |
|
|
const Eigen::MatrixXd & | y, |
|
|
bool | fit_intercept ) |
|
virtual |
Constructs a dual candidate from a linear predictor.
When an intercept is fitted, the candidate must satisfy the corresponding zero-sum constraint. Losses with restricted conjugate domains override this method to preserve those domains while enforcing the constraint.
- Parameters
-
| eta | Linear predictor. |
| y | Response. |
| fit_intercept | Whether the model has an unpenalized intercept. |
- Returns
- A candidate dual point before regularizer scaling.
Reimplemented in slope::Logistic, slope::Multinomial, and slope::Poisson.