13using stream_redirect = py::call_guard<py::scoped_ostream_redirect, py::scoped_estream_redirect>;
15template <br::ProgramType PT>
20 using RetType = std::conditional_t<
21 std::is_same_v<Class,Reg>, ArrayXf,
22 std::conditional_t<std::is_same_v<Class,Cls>,
ArrayXb,
23 std::conditional_t<std::is_same_v<Class,MCls>,
ArrayXi, ArrayXXf>>>;
25 py::class_<Class> ind(m, name.data() );
34 .def(
"init", &Class::init)
35 .def_property(
"objectives", &Class::get_objectives, &Class::set_objectives)
36 .def_property_readonly(
"program", &Class::get_program)
37 .def_property_readonly(
"fitness", &Class::get_fitness)
38 .def_property_readonly(
"id", &Class::get_id)
39 .def(
"get_model", &Class::get_model,
40 py::arg(
"fmt") =
"compact",
41 py::arg(
"pretty") =
false)
42 .def(
"get_dot_model", &Class::get_dot_model,
43 py::arg(
"extras") =
"")
45 static_cast<Class &(Class::*)(
const Dataset &d)
>(&Class::fit),
46 "fit from Dataset object")
48 static_cast<Class &(Class::*)(
const Ref<const ArrayXXf> &X,
const Ref<const ArrayXf> &y)
>(&Class::fit),
50 .def(
"replace_program",
51 static_cast<Class &(Class::*)(
const br::Program<PT>&)
>(&Class::replace_program),
52 py::arg(
"new_program"),
53 "Replace the current program with a new program, invalidating fitness")
54 .def(
"replace_program",
55 static_cast<Class &(Class::*)(
const json&)
>(&Class::replace_program),
56 py::arg(
"json_program"),
57 "Replace the current program from a JSON representation, invalidating fitness")
59 static_cast<RetType (Class::*)(
const Dataset &d)
>(&Class::predict),
60 "predict from Dataset object")
62 static_cast<RetType (Class::*)(
const Ref<const ArrayXXf> &X)
>(&Class::predict),
63 "predict from X data")
64 .def_static(
"from_json", [](
const nl::json j) -> Class {
82 if constexpr (std::is_same_v<Class,Cls>)
84 ind.def(
"predict_proba",
85 static_cast<ArrayXf (Class::*)(
const Dataset &d)
>(&Class::predict_proba),
86 "predict from Dataset object")
88 static_cast<ArrayXf (Class::*)(
const Ref<const ArrayXXf> &X)
>(&Class::predict_proba),
89 "predict from X data")
Brush::RepresenterEngine Rep
Brush::MulticlassClassifierEngine MCls
Brush::ClassifierEngine Cls
py::call_guard< py::scoped_ostream_redirect, py::scoped_estream_redirect > stream_redirect
Brush::RegressorEngine Reg
void bind_individual(py::module &m, string name)
holds variable type data.
Eigen::Array< bool, Eigen::Dynamic, 1 > ArrayXb
< nsga2 selection operator for getting the front
Pop::Individual< PT::MulticlassClassifier > MulticlassClassifierIndividual
Eigen::Array< int, Eigen::Dynamic, 1 > ArrayXi
Pop::Individual< PT::Representer > RepresenterIndividual
Pop::Individual< PT::BinaryClassifier > ClassifierIndividual
Pop::Individual< PT::Regressor > RegressorIndividual
An individual program, a.k.a. model.