At the moment, we assume all inputs to be true real values. While we could transform categoricals into real values and try to somewhat order them and try to reasonably well space them, this is kind of weird. In many cases, categorical inputs will not be ordinal and very rarely will they be interval data.
A possible approach would be adopting the GABIL representation for categoricals and keep hyperrectangles for the real values.
Potential issues:
- We need to detect which inputs are categorical and which are real. How does sklearn do this? (do they even?) We certainly want to avoid asking the user.
- Is GABIL even the best option? Would this make vectors too long / complex if there are a lot of options in one attribute?
- We need to adapt not only our representation and matching function but also all mutation operators.
- Critically, users currently decide on one mutation operator during SupRB's init but would then probably need to choose two. Or at least choose/tune parameters for two. Is there a unifying approach in the literature?
- How would we handle the "halfnormincrease" idea within GABIL?
- ...
At the moment, we assume all inputs to be true real values. While we could transform categoricals into real values and try to somewhat order them and try to reasonably well space them, this is kind of weird. In many cases, categorical inputs will not be ordinal and very rarely will they be interval data.
A possible approach would be adopting the GABIL representation for categoricals and keep hyperrectangles for the real values.
Potential issues: