Brush C++ API
A flexible interpretable machine learning framework
Loading...
Searching...
No Matches
bind_dataset.cpp
Go to the documentation of this file.
1#include "module.h"
2#include "../data/data.h"
3#include "../types.h"
4#include "../data/io.h"
5namespace py = pybind11;
6namespace br = Brush;
7namespace nl = nlohmann;
8
9void bind_dataset(py::module & m)
10{
11 py::class_<br::Data::Dataset>(m, "Dataset")
12 // construct from X, feature names (and optional validation and batch sizes) with constructor 3.
13 .def(py::init([](const Ref<const ArrayXXf>& X,
14 const vector<string>& feature_names=vector<string>(),
15 const vector<string>& feature_types=vector<string>(),
16 const bool c=false,
17 const float validation_size=0.0,
18 const float batch_size=1.0,
19 const bool shuffle_split=false){
20 return br::Data::Dataset(
21 X, feature_names, feature_types, c,
22 validation_size, batch_size, shuffle_split);
23 }),
24 py::arg("X"),
25 py::arg("feature_names") = vector<string>(),
26 py::arg("feature_types") = vector<string>(),
27 py::arg("c") = false,
28 py::arg("validation_size") = 0.0,
29 py::arg("batch_size") = 1.0,
30 py::arg("shuffle_split") = false
31 )
32 // construct from X, y, feature names (and optional validation and batch sizes) with constructor 2.
33 .def(py::init([](const Ref<const ArrayXXf>& X,
34 const Ref<const ArrayXf>& y,
35 const vector<string>& feature_names=vector<string>(),
36 const vector<string>& feature_types=vector<string>(),
37 const bool c=false,
38 const float validation_size=0.0,
39 const float batch_size=1.0,
40 const bool shuffle_split=false){
41 return br::Data::Dataset(
42 X, y, feature_names, {}, feature_types,
43 c, validation_size, batch_size, shuffle_split);
44 }),
45 py::arg("X"),
46 py::arg("y"),
47 py::arg("feature_names") = vector<string>(),
48 py::arg("feature_types") = vector<string>(),
49 py::arg("c") = false,
50 py::arg("validation_size") = 0.0,
51 py::arg("batch_size") = 1.0,
52 py::arg("shuffle_split") = false
53 )
54 // construct from X, feature names, but copying the feature types from a
55 // reference dataset with constructor 4. Useful for predicting (specially
56 // because the user can provide a single element matrix, or an array with
57 // no feature names).
58 .def(py::init([](const Ref<const ArrayXXf>& X,
59 const br::Data::Dataset& ref_dataset,
60 const vector<string>& feature_names){
61 return br::Data::Dataset(X, ref_dataset, feature_names);
62 }),
63 py::arg("X"),
64 py::arg("ref_dataset"),
65 py::arg("feature_names")
66 )
67
68 .def_readwrite("y", &br::Data::Dataset::y)
69 // .def_readwrite("features", &br::Data::Dataset::features)
70 .def("get_n_samples", &br::Data::Dataset::get_n_samples)
71 .def("get_n_features", &br::Data::Dataset::get_n_features)
72 .def("print", &br::Data::Dataset::print)
73 .def("get_batch", &br::Data::Dataset::get_batch)
74 .def("get_training_data", &br::Data::Dataset::get_training_data)
75 .def("get_validation_data", &br::Data::Dataset::get_validation_data)
76 .def("get_batch_size", &br::Data::Dataset::get_batch_size)
77 .def("set_batch_size", &br::Data::Dataset::set_batch_size)
78 .def("split", &br::Data::Dataset::split)
79 .def("get_X", &br::Data::Dataset::get_X)
80 ;
81
82 m.def("read_csv", &br::Data::read_csv, py::arg("path"), py::arg("target"), py::arg("sep")=',');
83}
void bind_dataset(py::module &m)
holds variable type data.
Definition data.h:51
Dataset get_validation_data() const
Definition data.cpp:199
int get_n_samples() const
Definition data.h:222
auto get_X() const
Definition data.h:210
Dataset get_batch() const
select random subset of data for training weights.
Definition data.cpp:171
void print() const
Definition data.h:194
int get_n_features() const
Definition data.h:228
ArrayXf y
length N array, the target label
Definition data.h:80
float get_batch_size()
Definition data.cpp:320
std::array< Dataset, 2 > split(const ArrayXb &mask) const
Definition data.cpp:187
Dataset get_training_data() const
Definition data.cpp:198
void set_batch_size(float new_size)
Definition data.cpp:321
Dataset read_csv(const std::string &path, const std::string &target, char sep)
read csv file into Data.
Definition io.cpp:14
< nsga2 selection operator for getting the front
Definition bandit.cpp:4