3#include <mutable/mutable-config.hpp>
21 : coefficients_(
std::move(coefficientVector)), num_features_(coefficients_.rows()) {}
25 explicit LinearModel(Eigen::VectorXd coefficientVector,
unsigned numFeatures,
26 std::function<Eigen::MatrixXd(Eigen::MatrixXd)> transform_function)
27 : coefficients_(
std::move(coefficientVector)), transformation_(
std::move(transform_function)),
28 num_features_(numFeatures) {}
32 LinearModel(
const Eigen::MatrixXd &
X,
const Eigen::VectorXd &y);
37 LinearModel(
const Eigen::MatrixXd &
X,
const Eigen::VectorXd &y,
38 const std::function<Eigen::MatrixXd(Eigen::MatrixXd)> &transform_function);
40 double predict_target(
const Eigen::RowVectorXd &feature_vector)
const;
46 void dump(std::ostream &out)
const;
A model for predicting the costs of a physical operator.
unsigned num_features_
number of features this model expects pre-transformation
Eigen::VectorXd get_coefficients() const
friend std::ostream & operator<<(std::ostream &out, const LinearModel &linear_model)
LinearModel(Eigen::VectorXd coefficientVector, unsigned numFeatures, std::function< Eigen::MatrixXd(Eigen::MatrixXd)> transform_function)
Create a LinearModel instance given a coefficient vector, a transformation function and the number of...
std::function< Eigen::MatrixXd(Eigen::MatrixXd)> transformation_
transformation that is applied on the feature matrix
LinearModel(Eigen::VectorXd coefficientVector)
Create a LinearModel instance given a coefficient vector.
Eigen::VectorXd coefficients_
vector of coefficients for every feature