Moved all the public modules imports from river/__init__.py to river/api.py and removed unnecessary dependencies between modules enabling faster cherry-picked import times (~3x).
Introduced an mutate method to the base.Base class. This allows setting attributes in a controlled manner, which paves the way for online AutoML. See the recipe for more information.
Rename split_confidence and tie_threshold to delta and tau, respectively. This way, the parameters are not misleading and match what the research papers have used for decades.
Refactor HoeffdingAdaptiveTree{Classifier,Regressor} to allow the usage of any drift detector. Expose the significance level of the test used to switch between subtrees as a user-defined parameter.
Correct test used to switch between foreground and background subtrees in HoeffdingAdaptiveTreeRegressor. Due to the continuous and unbounded nature of the monitored errors, a z-test is now performed to decide which subtree to keep.
The default leaf_prediction value was changed to "adaptive", as this often results in the smallest errors in practice.
The default splitter was changed to tree.splitter.TEBST for memory and running time efficiency.