Regression vs Random Forest - Combination of features

6

1

I had a discussion with a friend and we were talking about the advantages of random forest over linear regression.

At some point, my friend said that one of the advantages of the random forest over the linear regression is that it takes automatically into account the combination of features.

By this he meant that if I have a model with

  • Y as a target
  • X, W, Z as the predictors

then the random forests tests also the combinations of the features (e.g. X+W) whereas in linear regression you have to build these manually and insert them at the model.

I am quite confused, is this true?

Also if it true then is it about any kind of combination of features (e.g. X*W, X+W+Z etc) or only for some specific ones (e.g. X+W)?

Outcast

Posted 2019-03-31T14:28:26.237

Reputation: 995

Answers

4

I think it is true. Tree based algorithms especially the ones with multiple trees has the capability of capturing different feature interactions. Please see this article from xgboost official documentation and this discussion. You can say it's a perk of being a non parametric model (trees are non parametric and linear regression is not). I hope this will shed some light on this thought.

tam

Posted 2019-03-31T14:28:26.237

Reputation: 141

(+1) As an example,Tree 1 works with features (A, B) and gives 80% accuracy, Tree 2 works with features (C, D) and gives 60%. A boosting algorithm puts more weight on Tree 1, thus effectively favors f(A, B) over g(C, D). – Esmailian – 2019-03-31T19:14:45.003

Thank you for your answer. However, to be honest I would like a more in depth answer. To start with, my second question is still unanswered I think: "Also if it true then is it about any kind of combination of features (e.g. X*W, X+W+Z etc) or only for some specific ones (e.g. X+W)?" – Outcast – 2019-04-01T10:49:24.077

Please refer this link ( http://mariofilho.com/can-gradient-boosting-learn-simple-arithmetic/ ) . This article talks about how boosting trees can model arithmetic operations like X*W, X/W, etc. Theoretically, it is possible. Trees are like neural networks, they are universal approximator (Theoretically). And I am stressing on the word Theoretically.

– tam – 2019-04-01T11:05:46.760

Ok thank you for this too. However, to start with both the other people here are claiming the opposite than you so it is quite difficult for me to draw a definite conclusion. – Outcast – 2019-04-01T11:26:52.760

Also by the way at your answer you are saying "... has the capability of capturing different feature interactions". However, my question is whether is built-in in random forest (or in boosting algos). In a sense, linear regression also has the "capability" of doing this but exactly you will have to programme it i.e. add some lines of code where you are adding, multiplying some of the features etc. – Outcast – 2019-04-01T14:04:47.907

By capability, I meant the ability to capture the relationship without explicitly mentioning it like as in linear regression. I think now we all are in the same page with boosting algorithms. Now coming to a simple decision tree, I think this also has the capability to capture any relationship.It is not just linear decision functions its approximates it can learn a non-linear function too. Since its decision boundary can be approximated to any shape. You can try fitting decision tree to Y=X1*X2. So to summarise, theoretically all tree-based algorithms can capture any feature interactions. – tam – 2019-04-01T23:32:12.563

2

I would say it is not true as Random forests which are made up of decision trees does perform feature selection but they do not perform feature engineering (feature selection is different from feature engineering). Decision trees use a metric called Information gain (which is total entropy minus the weighted entropy) as per which useful features are separated from bad features. Simply to say whichever feature exhibit the highest information gain on this iteration is chosen as the node on which the tree on this iteration is split or you can say which feature reduces the entropy(aka randomness) the most in this iteration is chosen as the node upon which the tree is split on this iteration. So if you data is text, trees are split upon words. If your data is real valued numbers, tree is split upon that. Hope it helps

For more details check this

karthikeyan mg

Posted 2019-03-31T14:28:26.237

Reputation: 728

Thank you for your answer. However, to be honest I would like a more in depth answer. To start with, my second question is still unanswered I think: "Also if it true then is it about any kind of combination of features (e.g. X*W, X+W+Z etc) or only for some specific ones (e.g. X+W)?" – Outcast – 2019-04-01T10:49:27.670

Yes as said in my previous answer, decision trees cannot perform feature engineering by themselves. They pick the right feature based on information gain which is called as the feature selection. So (X+W), (X*W) or any sort of simple or complex feature engineered features are not possible in case of tree based models. So answer to your second question is "No, Tree based methods cannot and will not perform feature engineering on their own". Hope it's clear – karthikeyan mg – 2019-04-01T11:15:23.670

Now it is significantly clearer because your starting phrase "I would say it is partly true as Random forests..." confuses things a bit. So basically at my question your answer is "no it is not true; random forest does not take into account the combination of features e.g. X+W etc". It would be good to modify a bit your post because this is not evident. – Outcast – 2019-04-01T11:23:13.120

However, I will have to see some evidence on why the boosting algorithms do this while the bagging algorithms do not. Also, in the case of the boosting algorithms how the algorithm chooses which of the various combinations to test? – Outcast – 2019-04-01T11:25:45.340

Thanks for the suggestion, I've made the changes. And regarding your last comment, just to be clear, random forests comes under bagging algos and gbdt, xgboost comes under boosting. I'd suggest you draft another question explaining your last comment in detail along with your thoughts and understanding and link the question here, We will try our best to help you! Cheers – karthikeyan mg – 2019-04-01T11:48:04.093

Cool thanks for the edit at your post. Yes, I know that "random forests comes under bagging algos and gbdt, xgboost comes under boosting"; I just want to understand how this feature engineering works for the boosting algos. Otherwise, if nobody can give a sufficient answer to this question too then it may mean that I should not take also seriously your other answer that random forests do not do this. @tam below suggests that also random forests are doing it. Therefore, it has to clear what boosting algos do and bagging algos do not do with regards to that. – Outcast – 2019-04-01T12:11:24.007

0

The statement "it tests combination of features" is not true. It tests individual features. However, a tree can approximate any continuous function $f$ over training points, since it is a universal approximator just like neural networks.

In Random Forest (or Decision Tree, or Regression Tree), individual features are compared to each other, not a combination of them, then the most informative individual is peaked to split a leaf. Therefore, there is no notion of "better combination" in the whole process.

Furthermore, Random Forest is a bagging algorithm which does not favor the randomly-built trees over each other, they all have the same weight in the aggregated output.

It is worth noting that "Rotation forest" first applies PCA to features, which means each new feature is a linear combination of original features. However, this does not count since the same pre-processing can be used for any other method too.

EDIT:

@tam provided a counter-example for XGBoost, which is not the same as Random Forest. However, the issue is the same for XGBoost. Its learning process comes down to splitting each leaf greadily based on a single feature instead of selecting the best combination of features among a set of combinations, or the best tree among a set of trees.

From this explanation, you can see that The Structure Score is defined for a tree (which is a function) based on the first- and second-order derivatives of loss function in each leaf $j$ ($G_j$ and $H_j$ respectively) summed over all $T$ leaves, i.e. $$\text{obj}^*=-\frac{1}{2} \sum_{j=1}^{T}\frac{G_j}{H_j + \lambda} + \gamma T$$ However, the optimization process greedily splits a leaf using the best individual feature that gives the highest gain in $\text{obj}^*$.

A tree $t$ is built by greedily minimizing the loss, i.e. branching on the best individual feature, and when the tree is built, process goes to create the next tree $t+1$ in the same way, and so on.

Here is the key quote from XGBoost paper:

This score is like the impurity score for evaluating decision trees, except that it is derived for a wider range of objective functions [..] Normally it is impossible to enumerate all the possible tree structures q. A greedy algorithm that starts from a single leaf and iteratively adds branches to the tree is used instead.

In summary:

Although a tree represents a combination of features (a function), but none of XGBoost and Random Forest are selecting between functions. They build and aggregate multiple functions by greedily favoring individual features.

Esmailian

Posted 2019-03-31T14:28:26.237

Reputation: 7 434

Thank you for your answer. My post triggered some opposing views and now in this sense I do not know yet which side to take. By the way, my impression is that the remark of @tam is not really directly to the point. The fact that tree boosting algorithms favor f(X, Y) over g(Y, W) does not necessarily mean that they take into account the combination of the features in the sense of e.g. X+W but they simply favor groups of features over other groups of features. Thus, not combination of features but groups of features (if I am not missing anything). – Outcast – 2019-04-01T10:56:56.870

@PoeteMaudit I added an example. – Esmailian – 2019-04-01T11:04:44.033

Cool, thank you. However, I will have to see some evidence on why the boosting algorithms do this while the bagging algorithms do not. Also, in the case of the boosting algorithms how the algorithm chooses which of the various combinations to test? – Outcast – 2019-04-01T11:25:13.387

1So your answer to my question is that "Note that, a tree can approximate any continuous function f over training points, since it is a universal approximator just like neural networks."? If so then this is interesting. – Outcast – 2019-04-01T13:55:27.583