MLpp
RecursiveMultivariateOLS.hpp
1 #pragma once
2 /* (C) 2020 Roman Werpachowski. */
3 #include <Eigen/Cholesky>
4 #include "LinearRegression.hpp"
5 
6 namespace ml
7 {
8  namespace LinearRegression
9  {
25  {
26  public:
28  DLL_DECLSPEC RecursiveMultivariateOLS();
29 
36  DLL_DECLSPEC RecursiveMultivariateOLS(Eigen::Ref<const Eigen::MatrixXd> X, Eigen::Ref<const Eigen::VectorXd> y);
37 
43  DLL_DECLSPEC void update(Eigen::Ref<const Eigen::MatrixXd> X, Eigen::Ref<const Eigen::VectorXd> y);
44 
46  unsigned int n() const
47  {
48  return n_;
49  }
50 
52  unsigned int d() const
53  {
54  return d_;
55  }
56 
58  const Eigen::VectorXd& beta() const
59  {
60  return beta_;
61  }
62  private:
63  Eigen::LDLT<Eigen::MatrixXd> helper_decomp_;
64  Eigen::MatrixXd P_;
65  Eigen::MatrixXd K_;
66  Eigen::MatrixXd W_;
67  Eigen::MatrixXd V_;
68  Eigen::VectorXd beta_;
69  Eigen::VectorXd residuals_;
70  unsigned int n_;
71  unsigned int d_;
73  void initialise(Eigen::Ref<const Eigen::MatrixXd> X, Eigen::Ref<const Eigen::VectorXd> y);
75  };
76  }
77 }
ml::LinearRegression::RecursiveMultivariateOLS::beta
const Eigen::VectorXd & beta() const
Returns the current estimate of beta. If n() == 0, returns an empty vector.
Definition: RecursiveMultivariateOLS.hpp:58
ml::LinearRegression::RecursiveMultivariateOLS
Recursive multivariate Ordinary Least Squares.
Definition: RecursiveMultivariateOLS.hpp:24
ml
Definition: BallTree.hpp:10
ml::LinearRegression::RecursiveMultivariateOLS::n
unsigned int n() const
Returns the number of data points seen so far.
Definition: RecursiveMultivariateOLS.hpp:46
ml::LinearRegression::RecursiveMultivariateOLS::d
unsigned int d() const
Returns the dimension of data points. If n() == 0, returs 0.
Definition: RecursiveMultivariateOLS.hpp:52
ml::LinearRegression::RecursiveMultivariateOLS::RecursiveMultivariateOLS
RecursiveMultivariateOLS()
Initialises without data.
ml::LinearRegression::RecursiveMultivariateOLS::update
void update(Eigen::Ref< const Eigen::MatrixXd > X, Eigen::Ref< const Eigen::VectorXd > y)
Updates the beta estimate with a new sample.