Construct a DataTable with explicit training/evaluation/test splits.
Construct a DataTable with explicit training/evaluation/test splits.
#ifndef DATATABLE_H
#define DATATABLE_H
#pragma once
#include <cstddef>
#include <stdexcept>
#include <vector>
template <typename T>
class DataTable {
public:
DataTable(const DataTable &) = default;
DataTable(DataTable &&) = default;
DataTable &
operator=(
const DataTable &) =
default;
DataTable &
operator=(DataTable &&) =
default;
DataTable(
txeo::Matrix<T> &&data, std::vector<size_t> x_cols, std::vector<size_t> y_cols);
DataTable(
const txeo::Matrix<T> &data, std::vector<size_t> x_cols, std::vector<size_t> y_cols)
: DataTable{std::move(data.
clone()), x_cols, y_cols} {};
: DataTable{std::move(data.
clone()), y_cols} {};
DataTable(
txeo::Matrix<T> &&data, std::vector<size_t> x_cols, std::vector<size_t> y_cols,
size_t eval_percent);
DataTable(
const txeo::Matrix<T> &data, std::vector<size_t> x_cols, std::vector<size_t> y_cols,
size_t eval_percent)
: DataTable{std::move(data.
clone()), x_cols, y_cols, eval_percent} {};
DataTable(
txeo::Matrix<T> &&data, std::vector<size_t> y_cols,
size_t eval_percent);
DataTable(
const txeo::Matrix<T> &data, std::vector<size_t> y_cols,
size_t eval_percent)
: DataTable{std::move(data.
clone()), y_cols, eval_percent} {};
DataTable(
txeo::Matrix<T> &&data, std::vector<size_t> x_cols, std::vector<size_t> y_cols,
size_t eval_percent, size_t eval_test);
DataTable(
const txeo::Matrix<T> &data, std::vector<size_t> x_cols, std::vector<size_t> y_cols,
size_t eval_percent, size_t eval_test)
: DataTable{std::move(data.
clone()), x_cols, y_cols, eval_percent, eval_test} {};
DataTable(
txeo::Matrix<T> &&data, std::vector<size_t> y_cols,
size_t eval_percent,
size_t eval_test);
DataTable(
const txeo::Matrix<T> &data, std::vector<size_t> y_cols,
size_t eval_percent,
size_t eval_test)
: DataTable<T>{std::move(data.
clone()), y_cols, eval_percent, eval_test} {};
[[nodiscard]]
size_t x_dim()
const;
[[nodiscard]]
size_t y_dim()
const;
[[nodiscard]]
bool has_eval()
const {
return _has_eval; }
[[nodiscard]]
bool has_test()
const {
return _has_test; }
DataTable<T>
clone()
const;
private:
DataTable() = default;
bool _has_eval = false;
bool _has_test = false;
};
class DataTableError : public std::runtime_error {
public:
using std::runtime_error::runtime_error;
};
}
#endif
A container for managing training, evaluation, and test data splits.
const txeo::Matrix< T > * y_test() const
Returns a pointer to test output matrix.
size_t y_dim() const
Returns the number of output columns.
DataTable & operator=(const DataTable &)=default
size_t x_dim() const
Returns the number of input columns.
const txeo::Matrix< T > * x_eval() const
Returns a pointer to evaluation input matrix.
const txeo::Matrix< T > & x_train() const
Returns training inputs matrix.
const txeo::Matrix< T > & y_train() const
Returns training outputs matrix.
const txeo::Matrix< T > * x_test() const
Returns a pointer to test input matrix.
size_t row_size() const
Returns the number of training rows.
const txeo::Matrix< T > * y_eval() const
Returns a pointer to evaluation output matrix.
DataTable< T > clone() const