Supporting unordered categorical features requires the following modifications: - [x] `TrainData` class must keep track of which features are categorical (ideally encoding them with integers for space efficiency) - [x] `Tree` class must be able to represent set-defined categorical splits - [x] XBART split sampler cannot generally enumerate all possible categorical splits, so should use the Fisher (1958) approach - [ ] BART split sampler should use the [Deshpande (2023)](https://arxiv.org/abs/2211.04459) approach
Supporting unordered categorical features requires the following modifications:
TrainDataclass must keep track of which features are categorical (ideally encoding them with integers for space efficiency)Treeclass must be able to represent set-defined categorical splits