|
void | calc_fold_indices (size_t total_len, unsigned int k, unsigned int num_folds, size_t &i0, size_t &i1) |
| Calculates indices delimiting a fold. More...
|
|
Eigen::Ref< const Eigen::MatrixXd > | only_kth_fold_2d (Eigen::Ref< const Eigen::MatrixXd > data, unsigned int k, unsigned int num_folds) |
| Returns k-th fold contents for vector data. More...
|
|
Eigen::Ref< const Eigen::VectorXd > | only_kth_fold_1d (Eigen::Ref< const Eigen::VectorXd > data, unsigned int k, unsigned int num_folds) |
| Returns k-th fold contents for scalar data. More...
|
|
template<class T > |
std::vector< T > | only_kth_fold_1d (const std::vector< T > &data, const unsigned int k, const unsigned int num_folds) |
| Returns k-th fold contents for scalar data. More...
|
|
Eigen::MatrixXd | without_kth_fold_2d (Eigen::Ref< const Eigen::MatrixXd > data, unsigned int k, unsigned int num_folds) |
| Returns the contents of all except the k-th fold for vector data. More...
|
|
Eigen::VectorXd | without_kth_fold_1d (Eigen::Ref< const Eigen::VectorXd > data, unsigned int k, unsigned int num_folds) |
| Returns the contents of all except the k-th fold for scalar data. More...
|
|
template<class T > |
std::vector< T > | without_kth_fold_1d (const std::vector< T > &data, unsigned int k, unsigned int num_folds) |
| Returns the contents of all except the k-th fold for scalar data. More...
|
|
template<class Trainer , class Tester > |
double | k_fold (Eigen::Ref< const Eigen::MatrixXd > X, Eigen::Ref< const Eigen::VectorXd > y, Trainer train_func, Tester test_func, const unsigned int num_folds) |
| Calculates model test error using k-fold cross-validation. More...
|
|
template<class Trainer , class Tester > |
double | k_fold_scalar (Eigen::Ref< const Eigen::VectorXd > x, Eigen::Ref< const Eigen::VectorXd > y, Trainer train_func, Tester test_func, const unsigned int num_folds) |
| Calculates model test error using k-fold cross-validation (scalar X version). More...
|
|
template<class Trainer , class Tester > |
double | leave_one_out (Eigen::Ref< const Eigen::MatrixXd > X, Eigen::Ref< const Eigen::VectorXd > y, Trainer train_func, Tester test_func) |
| Calculates model test error using leave-one-out cross-validation. More...
|
|
template<class Trainer , class Tester > |
double | leave_one_out_scalar (const Eigen::Ref< const Eigen::VectorXd > x, Eigen::Ref< const Eigen::VectorXd > y, Trainer train_func, Tester test_func) |
| Calculates model test error using leave-one-out cross-validation (scalar X version). More...
|
|
Methods used for cross-validation.
template<class Trainer , class Tester >
double ml::Crossvalidation::k_fold |
( |
Eigen::Ref< const Eigen::MatrixXd > |
X, |
|
|
Eigen::Ref< const Eigen::VectorXd > |
y, |
|
|
Trainer |
train_func, |
|
|
Tester |
test_func, |
|
|
const unsigned int |
num_folds |
|
) |
| |
Calculates model test error using k-fold cross-validation.
See https://en.wikipedia.org/wiki/Cross-validation_(statistics)#k-fold_cross-validation
train_func
and test_func
functors should accept X data as Eigen::Ref<const Eigen::MatrixXd>
reference, and y data as Eigen::Ref<const Eigen::VectorXd>
.
- Parameters
-
[in] | X | Matrix with all features (data points in columns). |
[in] | y | Vector with all responses (scalars). |
[in] | train_func | Functor returning a trained model given training features and responses as arguments. |
[in] | test_func | Functor calculating test error per data point given the model, test features and test responses as arguments. |
[in] | num_folds | Number of folds. |
- Template Parameters
-
Trainer | Functor type for model training. |
Tester | Functor type for calculating test error. |
- Returns
- Error value per data point.
- Exceptions
-
std::invalid_argument | If num_folds > X.cols() or y.size() != X.cols() . |
template<class Trainer , class Tester >
double ml::Crossvalidation::k_fold_scalar |
( |
Eigen::Ref< const Eigen::VectorXd > |
x, |
|
|
Eigen::Ref< const Eigen::VectorXd > |
y, |
|
|
Trainer |
train_func, |
|
|
Tester |
test_func, |
|
|
const unsigned int |
num_folds |
|
) |
| |
Calculates model test error using k-fold cross-validation (scalar X version).
See https://en.wikipedia.org/wiki/Cross-validation_(statistics)#k-fold_cross-validation
train_func
and test_func
functors should accept X and y data as Eigen::Ref<const Eigen::VectorXd>
references.
- Parameters
-
[in] | x | Vector with all features (scalars). |
[in] | y | Vector with all responses (scalars). |
[in] | train_func | Functor returning a trained model given training features and responses as arguments. |
[in] | test_func | Functor calculating test error per data point given the model, test features and test responses as arguments. |
[in] | num_folds | Number of folds. |
- Template Parameters
-
Trainer | Functor type for model training. |
Tester | Functor type for calculating test error. |
- Returns
- Error value per data point.
- Exceptions
-
std::invalid_argument | If num_folds > X.cols() or y.size() != y.size() . |
template<class Trainer , class Tester >
double ml::Crossvalidation::leave_one_out |
( |
Eigen::Ref< const Eigen::MatrixXd > |
X, |
|
|
Eigen::Ref< const Eigen::VectorXd > |
y, |
|
|
Trainer |
train_func, |
|
|
Tester |
test_func |
|
) |
| |
Calculates model test error using leave-one-out cross-validation.
See https://en.wikipedia.org/wiki/Cross-validation_(statistics)#Leave-one-out_cross-validation
train_func
and test_func
functors should accept X data as Eigen::Ref<const Eigen::MatrixXd>
reference, and y data as Eigen::Ref<const Eigen::VectorXd>
.
- Parameters
-
[in] | X | Matrix with all features (data points in columns). |
[in] | y | Vector with all responses (scalars). |
[in] | train_func | Functor returning a trained model given training features and responses as arguments. |
[in] | test_func | Functor calculating test error per data point given the model, test features and test responses as arguments. |
- Template Parameters
-
Trainer | Functor type for model training. |
Tester | Functor type for calculating test error. |
- Returns
- Error value per data point.
- Exceptions
-
std::invalid_argument | If y.size() < 2 or y.size() != X.cols() . |
template<class Trainer , class Tester >
double ml::Crossvalidation::leave_one_out_scalar |
( |
const Eigen::Ref< const Eigen::VectorXd > |
x, |
|
|
Eigen::Ref< const Eigen::VectorXd > |
y, |
|
|
Trainer |
train_func, |
|
|
Tester |
test_func |
|
) |
| |
Calculates model test error using leave-one-out cross-validation (scalar X version).
See https://en.wikipedia.org/wiki/Cross-validation_(statistics)#Leave-one-out_cross-validation
train_func
and test_func
functors should accept X and y data as Eigen::Ref<const Eigen::VectorXd>
references.
- Parameters
-
[in] | x | Vector with all features (scalars). |
[in] | y | Vector with all responses (scalars). |
[in] | train_func | Functor returning a trained model given training features and responses as arguments. |
[in] | test_func | Functor calculating test error per data point given the model, test features and test responses as arguments. |
- Template Parameters
-
Trainer | Functor type for model training. |
Tester | Functor type for calculating test error. |
- Returns
- Error value per data point.
- Exceptions
-
std::invalid_argument | If y.size() < 2 or y.size() != x.size() . |