slope 0.29.0
Loading...
Searching...
No Matches
quadratic.cpp
1#include "quadratic.h"
2
3namespace slope {
4
5double
6Quadratic::loss(const Eigen::MatrixXd& eta, const Eigen::MatrixXd& y)
7{
8 return (eta - y).squaredNorm() / (2.0 * y.rows());
9}
10
11double
12Quadratic::dual(const Eigen::MatrixXd& theta,
13 const Eigen::MatrixXd& y,
14 const Eigen::VectorXd&)
15{
16 const int n = y.rows();
17
18 return (y.squaredNorm() - (theta + y).squaredNorm()) / (2.0 * n);
19}
20
21Eigen::MatrixXd
22Quadratic::residual(const Eigen::MatrixXd& eta, const Eigen::MatrixXd& y)
23{
24 return eta - y;
25}
26
27Eigen::MatrixXd
28Quadratic::preprocessResponse(const Eigen::MatrixXd& y)
29{
30 return y;
31}
32
33void
35 Eigen::VectorXd& z,
36 const Eigen::VectorXd&,
37 const Eigen::VectorXd& y)
38{
39 w.setOnes();
40 z = y;
41}
42
43Eigen::MatrixXd
44Quadratic::link(const Eigen::MatrixXd& mu)
45{
46 return mu;
47}
48
49Eigen::MatrixXd
50Quadratic::inverseLink(const Eigen::MatrixXd& eta)
51{
52 return eta;
53}
54
55Eigen::MatrixXd
56Quadratic::predict(const Eigen::MatrixXd& eta)
57{
58 return eta;
59}
60
61} // namespace slope
double dual(const Eigen::MatrixXd &theta, const Eigen::MatrixXd &y, const Eigen::VectorXd &w)
Computes the dual function for the quadratic loss.
Definition quadratic.cpp:12
Eigen::MatrixXd preprocessResponse(const Eigen::MatrixXd &y)
Preprocesses the response for the quadratic model.
Definition quadratic.cpp:28
Eigen::MatrixXd inverseLink(const Eigen::MatrixXd &eta)
The link function, also known as the mean function.
Definition quadratic.cpp:50
double loss(const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)
Calculates the quadratic (least-squares) loss.
Definition quadratic.cpp:6
void updateWeightsAndWorkingResponse(Eigen::VectorXd &w, Eigen::VectorXd &z, const Eigen::VectorXd &eta, const Eigen::VectorXd &y)
Updates weights and working response for IRLS algorithm.
Definition quadratic.cpp:34
Eigen::MatrixXd predict(const Eigen::MatrixXd &eta)
Return predicted response, which is the same as the linear predictor.
Definition quadratic.cpp:56
Eigen::MatrixXd link(const Eigen::MatrixXd &mu)
The link function.
Definition quadratic.cpp:44
Eigen::MatrixXd residual(const Eigen::MatrixXd &eta, const Eigen::MatrixXd &y)
Calculates residuals for the quadratic model.
Definition quadratic.cpp:22
Namespace containing SLOPE regression implementation.
Definition clusters.cpp:5
Quadratic loss function implementation for SLOPE algorithm.