51 using RetType = std::conditional_t<
52 std::is_same_v<T,Reg>, ArrayXf,
53 std::conditional_t<std::is_same_v<T,Cls>,
ArrayXb,
54 std::conditional_t<std::is_same_v<T,MCls>,
ArrayXi, ArrayXXf>>>;
56 py::class_<T> engine(m, name.data() );
57 engine.def(py::init<>())
59 T e(p, s);
return e; })
61 .def_property(
"params", &T::get_params, &T::set_params)
62 .def_property(
"search_space", &T::get_search_space, &T::set_search_space)
63 .def_property_readonly(
"is_fitted", &T::get_is_fitted)
64 .def_property_readonly(
"best_ind", &T::get_best_ind)
66 static_cast<T &(T::*)(
Dataset &d)
>(&T::fit),
67 py::call_guard<py::gil_scoped_release>(),
68 "fit from Dataset object")
70 static_cast<T &(T::*)(
const Ref<const ArrayXXf> &X,
const Ref<const ArrayXf> &y)
>(&T::fit),
71 py::call_guard<py::gil_scoped_release>(),
74 static_cast<RetType (T::*)(
const Dataset &d)
>(&T::predict),
75 "predict from Dataset object")
77 static_cast<RetType (T::*)(
const Ref<const ArrayXXf> &X)
>(&T::predict),
78 "predict from X data")
79 .def(
"predict_archive",
80 static_cast<RetType (T::*)(
int id,
const Dataset &d)
>(&T::predict_archive),
81 "predict from individual in archive")
82 .def(
"predict_archive",
83 static_cast<RetType (T::*)(
int id,
const Ref<const ArrayXXf> &X)
>(&T::predict_archive),
84 "predict from individual in archive")
85 .def(
"get_archive", &T::get_archive, py::arg(
"front") =
false)
86 .def(
"get_population", &T::get_population)
87 .def(
"set_population", &T::set_population)
90 py::arg(
"end_depth") = 0,
91 py::arg(
"skip_leaves") =
true,
96 py::arg(
"start_depth") = 0,
115 if constexpr (std::is_same_v<T,Cls>)
117 engine.def(
"predict_proba",
118 static_cast<ArrayXf (T::*)(
const Dataset &d)
>(&T::predict_proba),
119 "predict from Dataset object")
120 .def(
"predict_proba",
121 static_cast<ArrayXf (T::*)(
const Ref<const ArrayXXf> &X)
>(&T::predict_proba),
122 "predict from X data")
123 .def(
"predict_proba_archive",
124 static_cast<ArrayXf (T::*)(
int id,
const Dataset &d)
>(&T::predict_proba_archive),
125 "predict from individual in archive")
126 .def(
"predict_proba_archive",
127 static_cast<ArrayXf (T::*)(
int id,
const Ref<const ArrayXXf> &X)
>(&T::predict_proba_archive),
128 "predict from individual in archive")