12using stream_redirect = py::call_guard<py::scoped_ostream_redirect, py::scoped_estream_redirect>;
17 using RetType = std::conditional_t<
18 std::is_same_v<T,Reg>, ArrayXf,
19 std::conditional_t<std::is_same_v<T,Cls>,
ArrayXb,
20 std::conditional_t<std::is_same_v<T,MCls>,
ArrayXi, ArrayXXf>>>;
22 py::class_<T> prog(m, name.data() );
23 prog.def(py::init<>())
25 [](
const json& j){ T p = j;
return p; })
28 static_cast<T &(T::*)(
const Dataset &d)
>(&T::fit),
29 "fit from Dataset object")
31 static_cast<T &(T::*)(
const Ref<const ArrayXXf> &X,
const Ref<const ArrayXf> &y)
>(&T::fit),
34 static_cast<RetType (T::*)(
const Dataset &d)
>(&T::predict),
35 "predict from Dataset object")
37 static_cast<RetType (T::*)(
const Ref<const ArrayXXf> &X)
>(&T::predict),
38 "predict from X data")
41 py::arg(
"end_depth") = 0,
42 py::arg(
"skip_leaves") =
true,
47 py::arg(
"start_depth") = 0,
52 py::arg(
"type") =
"compact",
53 py::arg(
"pretty") =
false,
56 .def(
"get_dot_model", &T::get_dot_model, py::arg(
"extras")=
"")
57 .def(
"get_weights", &T::get_weights)
58 .def(
"size", &T::size, py::arg(
"include_weight")=
true)
59 .def(
"complexity", &T::complexity)
60 .def(
"linear_complexity", &T::linear_complexity)
61 .def(
"depth", &T::depth)
66 .def(
"set_search_space", &T::set_search_space)
68 .def(
"copy", [](
const T& self){ T clone(self);
return clone; })
84 if constexpr (std::is_same_v<T,Cls>)
86 prog.def(
"predict_proba",
87 static_cast<ArrayXf (T::*)(
const Dataset &d)
>(&T::predict_proba),
88 "predict from Dataset object")
90 static_cast<ArrayXf (T::*)(
const Ref<const ArrayXXf> &X)
>(&T::predict_proba),
91 "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_program(py::module &m, string name)
py::call_guard< py::scoped_ostream_redirect, py::scoped_estream_redirect > stream_redirect
holds variable type data.
Eigen::Array< bool, Eigen::Dynamic, 1 > ArrayXb
< nsga2 selection operator for getting the front
Program< PT::Representer > RepresenterProgram
Program< PT::BinaryClassifier > ClassifierProgram
Eigen::Array< int, Eigen::Dynamic, 1 > ArrayXi
Program< PT::Regressor > RegressorProgram
Program< PT::MulticlassClassifier > MulticlassClassifierProgram