neurodata / scikit-learn

scikit-learn-tree fork: A fork that enables extensions of Python and Cython API for decision trees
https://scikit-learn.org
BSD 3-Clause "New" or "Revised" License
7 stars 6 forks source link

[EXAMPLE DIFF] (Tree featuresv2) Fork of sklearn that maintains all necessary refactorings to enable downstream functionality #32

Closed adam2392 closed 1 year ago

adam2392 commented 1 year ago

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 is feature_combinations that defaults to min(1.5, n_features).

TODO:

  1. [ ] Add honest support for trees (splitting the data at the Python API level)
  2. [x] Build wheels
  3. [ ] Brainstorm unit-tests, or weekly checks to determine when our fork is out-of-date compared to upstream sklearn
  4. [x] Revamp README for the fork

Any other comments?

Eventually, we want to build wheels in order to make this fork "maintainable".