I wonder whether this (together with the caveat about it being slow if doing python) should go into the FAQ.

On 02/15/2018 12:50 PM, Guillaume Lemaître wrote:
The ClassificationCriterion and RegressionCriterion are now exposed in the _criterion.pxd. It will allow you to create your own criterion. So you can write your own Criterion with a given loss by implementing the methods which are required in the trees. Then you can pass an instance of this criterion to the tree and it should work.

On 15 February 2018 at 18:37, Thomas Evangelidis <teva...@gmail.com <mailto:teva...@gmail.com>> wrote:

    Greetings,

    The feature importance calculated by the RandomForest
    implementation is a very useful feature. I personally use it to
    select the best features because it is simple and fast, and then I
    train MLPRegressors. The limitation of this approach is that
    although I can control the loss function of the MLPRegressor (I
    have modified scikit-learn's implementation to accept an arbitrary
    loss function), I cannot do the same with RandomForestRegressor,
    and hence I have to rely on 'mse' which is not in accordance with
    the loss functions I use in MLPs. Today I was looking at the
    _criterion.pyx file:

    
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_criterion.pyx
    
<https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_criterion.pyx>

    However, the code is in Cython and I find it hard to follow. I
    know that for Regression the relevant class are Criterion(),
    RegressionCriterion(Criterion), and MSE(RegressionCriterion). My
    question is: is it possible to write a class that takes an
    arbitrary function "loss(predictions, targets)" to calculate the
    loss and impurity of the nodes?

    thanks,
    Thomas


--
    ======================================================================

    Dr Thomas Evangelidis

    Post-doctoral Researcher

    CEITEC - Central European Institute of Technology
    Masaryk University
    Kamenice 5/A35/2S049,
    62500 Brno, Czech Republic

    email: tev...@pharm.uoa.gr <mailto:tev...@pharm.uoa.gr>

    teva...@gmail.com <mailto:teva...@gmail.com>


    website: https://sites.google.com/site/thomasevangelidishomepage/
    <https://sites.google.com/site/thomasevangelidishomepage/>



    _______________________________________________
    scikit-learn mailing list
    scikit-learn@python.org <mailto:scikit-learn@python.org>
    https://mail.python.org/mailman/listinfo/scikit-learn
    <https://mail.python.org/mailman/listinfo/scikit-learn>




--
Guillaume Lemaitre
INRIA Saclay - Parietal team
Center for Data Science Paris-Saclay
https://glemaitre.github.io/


_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to