.. _program_listing_file_include_gwmodelpp_VariableForwardSelector.h: Program Listing for File VariableForwardSelector.h ================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/gwmodelpp/VariableForwardSelector.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef VARIABLEFORWARDSELECTOR_H #define VARIABLEFORWARDSELECTOR_H #include #include "armadillo_config.h" #include "IVarialbeSelectable.h" namespace gwm { class VariableForwardSelector { public: static arma::uvec index2uvec(const std::vector& index, bool hasIntercept) { std::size_t start_index = hasIntercept ? 1 : 0; arma::uvec sel_indep_vars(index.size() + start_index, arma::fill::zeros); for (std::size_t i = 0; i < index.size(); i++) { sel_indep_vars(i + start_index) = index[i]; } return sel_indep_vars; } public: VariableForwardSelector() {} VariableForwardSelector(const std::vector& variables, double threshold) : mVariables(variables) , mThreshold(threshold) {} ~VariableForwardSelector() {} std::vector indepVars() const { return mVariables; } void setIndepVars(const std::vector &indepVars) { mVariables = indepVars; } double threshold() const { return mThreshold; } void setThreshold(double threshold) { mThreshold = threshold; } public: std::vector optimize(IVarialbeSelectable* instance); VariablesCriterionList indepVarsCriterion() const; private: std::vector convertIndexToVariables(std::vector index); std::vector, double> > sort(std::vector, double> > models); std::pair, double> select(std::vector, double> > models); private: std::vector mVariables; double mThreshold; std::vector, double> > mVarsCriterion; }; } #endif // VARIABLEFORWARDSELECTOR_H