[scikit-learn] custom loss function in RandomForestRegressor

Thomas Evangelidis tevang3 at gmail.com
Thu Feb 15 12:37:31 EST 2018


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

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: tevang at pharm.uoa.gr

          tevang3 at gmail.com


website: https://sites.google.com/site/thomasevangelidishomepage/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-learn/attachments/20180215/5b2eb593/attachment.html>


More information about the scikit-learn mailing list