3 #ifndef FORPY_LEAFS_CLASSIFICATIONLEAF_H_ 4 #define FORPY_LEAFS_CLASSIFICATIONLEAF_H_ 8 #include "../util/serialization/basics.h" 13 #include "../data_providers/idataprovider.h" 15 #include "../util/serialization/eigen.h" 16 #include "../util/serialization/serialization.h" 17 #include "../util/storage.h" 41 return std::make_shared<ClassificationLeaf>(
n_classes);
50 if (cl_ot ==
nullptr) {
62 const bool &predict_proba =
false,
63 const bool &for_forest =
false)
const;
65 const bool &for_forest =
false)
const;
67 const bool &predict_proba,
const bool &for_forest)
const;
71 const bool &predict_proba =
false)
const;
79 inline friend std::ostream &
operator<<(std::ostream &stream,
81 stream <<
"forpy::ClassificationLeaf[" <<
self.stored_distributions.size()
88 inline const std::vector<Mat<float>> *
get_map()
const {
return nullptr; };
91 friend class cereal::access;
92 template <
class Archive>
94 ar(cereal::make_nvp(
"base", cereal::base_class<ILeaf>(
this)),
106 #endif // FORPY_LEAFS_CLASSIFICATIONLEAF_H_ void make_leaf(const TodoMark &todo_info, const IDataProvider &data_provider, Desk *desk) const
Interface implementation.
std::shared_ptr< ILeaf > create_duplicate() const
Interface implementation.
Find an optimal threshold.
bool operator==(const ILeaf &rhs) const
virtual bool is_compatible_with(const IDataProvider &)
Checks compatibility with a certain IDataProvider.
void transfer_or_run_check(ILeaf *other, IThreshOpt *thresh_opt, IDataProvider *dprov)
Interface implementation.
Data< Mat > get_result_type(const bool &predict_proba, const bool &for_forest=false) const
Interface implementation.
void finalize_capacity(const size_t &n)
Interface implementation.
A data provider for the training of one tree.
size_t id_t
Element id type.
void get_result(const id_t &node_id, Data< MatRef > &target_v, const bool &predict_proba, const bool &for_forest) const
Interface implementation.
typename mu::variant< Empty, STOT< float >, STOT< double >, STOT< uint >, STOT< uint8_t > > Data
Storing a variant of the provided data container type.
Stores the parameters for one marked tree node.
const std::vector< Vec< float > > & get_stored_dists() const
std::shared_ptr< std::vector< uint > > class_transl_ptr
ClassificationLeaf(const uint &n_classes=0)
void ensure_capacity(const size_t &n)
Interface implementation.
Stores and returns leaf values, and combines them to forest results.
friend std::ostream & operator<<(std::ostream &stream, const ClassificationLeaf &self)
Stores the probability distributions for n_classes at a leaf.
Eigen::Matrix< DT, Eigen::Dynamic, 1, Eigen::ColMajor > Vec
size_t get_result_columns(const size_t &n_trees=1, const bool &predict_proba=false, const bool &for_forest=false) const
Interface implementation.
bool is_compatible_with(const IDataProvider &)
Interface implementation.
const std::vector< Mat< float > > * get_map() const
Get all leafs.
std::vector< Vec< float > > stored_distributions
CEREAL_REGISTER_TYPE(forpy::ClassificationLeaf)
unsigned int uint
Convenience typedef for unsigned int.
void serialize(Archive &ar, const uint)