Hi, Thomas, as far as I know, it's all the same and doesn't matter, and you would get the same splits, since R^2 is just a rescaled MSE.
Best, Sebastian > On Mar 1, 2018, at 9:39 AM, Thomas Evangelidis <teva...@gmail.com> wrote: > > Hi Sebastian, > > Going back to Pearson's R loss function, does this imply that I must add an > abstract "init2" method to RegressionCriterion (that's where MSE class > inherits from) where I will add the target values X as extra argument? And > then the node impurity will be 1-R (the lowest the best)? What about the > impurities of the left and right split? In MSE class they are (sum_i^n > y_i)**2 where n is the number of samples in the respective split. It is not > clear how this is related to variance in order to adapt it for my purpose. > > Best, > Thomas > > > On Mar 1, 2018 14:56, "Sebastian Raschka" <se.rasc...@gmail.com> wrote: > Hi, Thomas, > > in regression trees, minimizing the variance among the target values is > equivalent to minimizing the MSE between targets and predicted values. This > is also called variance reduction: > https://en.wikipedia.org/wiki/Decision_tree_learning#Variance_reduction > > Best, > Sebastian > > > On Mar 1, 2018, at 8:27 AM, Thomas Evangelidis <teva...@gmail.com> wrote: > > > > > > Hi again, > > > > I am currently revisiting this problem after familiarizing myself with > > Cython and Scikit-Learn's code and I have a very important query: > > > > Looking at the class MSE(RegressionCriterion), the node impurity is defined > > as the variance of the target values Y on that node. The predictions X are > > nowhere involved in the computations. This contradicts my notion of "loss > > function", which quantifies the discrepancy between predicted and target > > values. Am I looking at the wrong class or what I want to do is just not > > feasible with Random Forests? For example, I would like to modify the > > RandomForestRegressor code to minimize the Pearson's R between predicted > > and target values. > > > > I thank you in advance for any clarification. > > Thomas > > > > > > > > > > On 02/15/2018 01:28 PM, Guillaume Lemaitre wrote: > >> Yes you are right pxd are the header and pyx the definition. You need to > >> write a class as MSE. Criterion is an abstract class or base class (I > >> don't have it under the eye) > >> > >> @Andy: if I recall the PR, we made the classes public to enable such > >> custom criterion. However, it is not documented since we were not > >> officially supporting it. So this is an hidden feature. We could always > >> discuss to make this feature more visible and document it. > > > > > > > > > > > > -- > > ====================================================================== > > 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 > > teva...@gmail.com > > > > website: https://sites.google.com/site/thomasevangelidishomepage/ > > > > > > _______________________________________________ > > 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 > > _______________________________________________ > 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