Skip to content

Multi-target Random Forest implementation that can mix both classification and regression tasks

License

Notifications You must be signed in to change notification settings

seeker1943/morfist

 
 

Repository files navigation

morfist: mixed-output-rf

Multi-target Random Forest implementation that can mix both classification and regression tasks.

Morfist implements the Random Forest algorithm (Breiman, 2001) with support for mixed-task multi-task learning, i.e., it is possible to train the model on any number of classification tasks and regression tasks, simultaneously. Morfist's mixed multi-task learning implementation follows that proposed by Linusson (2013).

Installation

With pip:

pip install decision-tree-morfist

With conda:

conda install -c systemallica decision-tree-morfist

Usage

Initialising the model

from morfist import MixedRandomForest

mrf = MixedRandomForest(
    n_estimators=n_trees,
    min_samples_leaf=1,
    classification_targets=[0]
)

For more info on the possible parameters, visit the documentation.

Training the model

  • Once the model is initialised, it can be fitted like this:
    mrf.fit(X, y)
    
    Where X are the training examples and Y are their respective labels(if they are categorical) or values(if they are numerical)

Prediction

  • The model can be now used to predict new instances.
    • Class/value:
    mrf.predict(x)
    
    • Probability:
    mrf.predict_proba(x)
    

TODO:

  • Speed up the learning algorithm implementation (morfist is currently much slower than the Random Forest implementation available in scikit-learn)

About

Multi-target Random Forest implementation that can mix both classification and regression tasks

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%