Feat C++ API
A feature engineering automation tool
FT Namespace Reference

main Feat namespace More...

Namespaces

 Dat
 namespace containing Data structures used in Feat
 
 Eval
 namespace containing various Evaluation classes used in Feat
 
 Model
 namespace containing ML methods used in Feat
 
 Opt
 namespace for backprop classes in Feat
 
 Pop
 namespace containing population representations used in Feat
 
 Sel
 namespace containing Selection methods for best individuals used in Feat
 
 Util
 namespace containing various utility functions used in Feat
 
 Vary
 namespace containing various variation methods for cross and mutation in Feat
 

Classes

class  Feat
 main class for the Feat learner. More...
 
class  Parameters
 holds the hyperparameters for Feat. More...
 

Functions

void to_json (nl::json &, const Feat &)
 
void from_json (const nl::json &, Feat &)
 
 for (const auto &term :terminals)
 
op_weights clear ()
 
 for (const auto &op :functions)
 
 for (unsigned i=0;i< functions.size();++i)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (Parameters, pop_size, gens, current_gen, ml, classification, max_stall, otypes, ttypes, otype, verbosity, term_weights, op_weights, fn_str, terminals, longitudinalMap, max_depth, max_size, max_dim, erc, num_features, objectives, shuffle, split, dtypes, feedback, n_classes, cross_rate, classes, class_weights, sample_weights, scorer, scorer_, feature_names, backprop, hillclimb, max_time, use_batch, residual_xo, stagewise_xo, stagewise_xo_tol, corr_delete_mutate, root_xo_rate, softmax_norm, normalize, protected_groups, tune_initial, tune_final)
 

Variables

static float NEAR_ZERO = 0.0000001
 
static float MAX_FLT = std::numeric_limits<float>::max()
 
static float MIN_FLT = std::numeric_limits<float>::lowest()
 
int b_count = 0
 
int c_count = 0
 
int f_count = 0
 
int z_count = 0
 
int total_terms = 0
 
int i = 0
 
int total_ops_terms = total_terms
 

Detailed Description

main Feat namespace

TODO

Integrate vectorList Integrate pointers? TODO Make it so stops traversing once it hits a non-differentiable node and then goes upstream and finds another branch to traverse

TODO

Integrate vectorList Integrate pointers? TODO Make it so stops traversing once it hits a non-differentiable node and then goes upstream and finds another branch to traverse

Function Documentation

◆ clear()

op_weights FT::clear ( )

◆ for() [1/3]

FT::for ( const auto &op :functions  )

Definition at line 553 of file params.cc.

◆ for() [2/3]

FT::for ( const auto &term :terminals  )

Definition at line 526 of file params.cc.

◆ for() [3/3]

FT::for ( )

Definition at line 593 of file params.cc.

◆ from_json()

void FT::from_json ( const nl::json &  ,
Feat  
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE()

FT::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( Parameters  ,
pop_size  ,
gens  ,
current_gen  ,
ml  ,
classification  ,
max_stall  ,
otypes  ,
ttypes  ,
otype  ,
verbosity  ,
term_weights  ,
op_weights  ,
fn_str  ,
terminals  ,
longitudinalMap  ,
max_depth  ,
max_size  ,
max_dim  ,
erc  ,
num_features  ,
objectives  ,
shuffle  ,
split  ,
dtypes  ,
feedback  ,
n_classes  ,
cross_rate  ,
classes  ,
class_weights  ,
sample_weights  ,
scorer  ,
scorer_  ,
feature_names  ,
backprop  ,
hillclimb  ,
max_time  ,
use_batch  ,
residual_xo  ,
stagewise_xo  ,
stagewise_xo_tol  ,
corr_delete_mutate  ,
root_xo_rate  ,
softmax_norm  ,
normalize  ,
protected_groups  ,
tune_initial  ,
tune_final   
)

◆ to_json()

void FT::to_json ( nl::json &  ,
const Feat  
)

Variable Documentation

◆ b_count

FT::b_count = 0
      Input: 

            fs: string of comma-separated Node names

      Output:

            modifies functions 

     &zwj;/

this->function_str = fs;

if (fs.empty()) fs = "+,-,*,/,^2,^3,sqrt,sin,cos,exp,log,^," "logit,tanh,gauss,relu," "split,split_c," "b2f,c2f,and,or,not,xor,=,<,<=,>,>=,if,ite"; fs += ','; // add delimiter to end string delim = ","; size_t pos = 0; string token; this->functions.clear(); while ((pos = fs.find(delim)) != string::npos) { token = fs.substr(0, pos);

functions.push_back(createNode(token));

fs.erase(0, pos + delim.length()); }

string log_msg = "functions: ["; for (int i =0; i < functions.size(); ++i) { log_msg += functions.at(i)->name ; if (i < functions.size()-1) log_msg += ", "; } log_msg += "]";

logger.log(log_msg, 3);

// reset output types set_otypes(); }

vector<string> Parameters::get_functions() { vector<string> fn_vec; for (const auto& fn : this->functions) fn_vec.push_back(fn->name); return fn_vec; }

void Parameters::set_functions(const vector<string>& fns) { this->functions.clear(); for (const auto& f : fns) functions.push_back(createNode(f)); reset output types set_otypes(); }

void Parameters::set_op_weights() { /*! sets operator weights proportionately to the number of variables of each type that they operate on in the input data. depends on terminals already being set.

Definition at line 520 of file params.cc.

◆ c_count

FT::c_count = 0

Definition at line 521 of file params.cc.

◆ f_count

FT::f_count = 0

Definition at line 522 of file params.cc.

◆ i

FT::i = 0

Definition at line 552 of file params.cc.

◆ MAX_FLT

float FT::MAX_FLT = std::numeric_limits<float>::max()
static

Definition at line 47 of file init.h.

◆ MIN_FLT

float FT::MIN_FLT = std::numeric_limits<float>::lowest()
static

Definition at line 48 of file init.h.

◆ NEAR_ZERO

float FT::NEAR_ZERO = 0.0000001
static

Definition at line 46 of file init.h.

◆ total_ops_terms

int FT::total_ops_terms = total_terms

Definition at line 588 of file params.cc.

◆ total_terms

int FT::total_terms = 0

Definition at line 524 of file params.cc.

◆ z_count

FT::z_count = 0

Definition at line 523 of file params.cc.