NODE
A tree-mimic method that generalizes oblivious decision trees, combining gradient-based optimization with hierarchical representation learning.
Functions
class ODST(ModuleWithInit)
Oblivious Differentiable Sparsemax Trees - a differentiable decision tree implementation.
Parameters:
in_features (int) - Number of input features.
num_trees (int) - Number of trees in the ensemble.
depth (int, optional, Default is 6) - Depth of each tree.
tree_dim (int, optional, Default is 1) - Number of response channels per tree.
flatten_output (bool, optional, Default is True) - Whether to flatten output.
choice_function (callable, optional, Default is sparsemax) - Feature selection function.
bin_function (callable, optional, Default is sparsemoid) - Binary decision function.
initialize_response_ (callable, optional, Default is nn.init.normal_) - Response initialization.
initialize_selection_logits_ (callable, optional, Default is nn.init.uniform_) - Selection logits initialization.
threshold_init_beta (float, optional, Default is 1.0) - Threshold initialization beta.
threshold_init_cutoff (float, optional, Default is 1.0) - Threshold initialization cutoff.
Input Shape:
(batch_size, in_features)
Output Shape:
(batch_size, num_trees * tree_dim) if flatten_output=True, else (batch_size, num_trees, tree_dim)
Methods:
initialize(self, input, eps=1e-6) - Data-aware initialization of thresholds and temperatures.
forward(self, input) - Forward pass through the oblivious trees.
def sparsemax(x, dim=-1)
Sparsemax activation function.
Parameters:
x (Tensor) - Input tensor.
dim (int, optional, Default is -1) - Dimension to apply sparsemax.
Returns:
Tensor - Sparsemax output.
def sparsemoid(x)
Sparsemoid activation function.
Parameters:
x (Tensor) - Input tensor.
Returns:
Tensor - Sparsemoid output.
class ModuleWithInit(nn.Module)
Base class for modules with custom initialization.
Methods:
initialize(self, input, eps=1e-6) - Initialize module parameters based on input data.
References:
Sergei Popov, Stanislav Morozov, Artem Babenko. Neural Oblivious Decision Ensembles for Deep Learning on Tabular Data. arXiv:1909.06312 [cs.LG], 2019. https://arxiv.org/abs/1909.06312