This is the most up-to-date PR branch to consolidate all proposed refactor changes that work with:
unsupervised trees
oblique trees
no performance/runtime regressions against main
What does this implement/fix? Explain your changes.
Incorporates refactors to:
Internal Cython of scikit-learn's:
criterion
splitter
tree
Internals of Python in scikit-learns:
python Tree
Adds the basic implementation of oblique trees. The implementation of oblique trees has been tested on all sklearn's check_estimator testing function and has error-checking bounds for the new hyperparameter introduced, which is feature_combinations that defaults to min(1.5, n_features).
TODO:
[ ] Add honest support for trees (splitting the data at the Python API level)
[x] Build wheels
[ ] Brainstorm unit-tests, or weekly checks to determine when our fork is out-of-date compared to upstream sklearn
[x] Revamp README for the fork
Any other comments?
Eventually, we want to build wheels in order to make this fork "maintainable".
Reference Issues/PRs
This is the most up-to-date PR branch to consolidate all proposed refactor changes that work with:
What does this implement/fix? Explain your changes.
Incorporates refactors to:
Internal Cython of scikit-learn's:
Internals of Python in scikit-learns:
Adds the basic implementation of oblique trees. The implementation of oblique trees has been tested on all sklearn's
check_estimator
testing function and has error-checking bounds for the new hyperparameter introduced, which isfeature_combinations
that defaults tomin(1.5, n_features)
.TODO:
Any other comments?
Eventually, we want to build wheels in order to make this fork "maintainable".