Decision tree/regression tree, how does the algorithm chose a value for the root node?

9 views (last 30 days)
Decision tree/regression tree, how does the algorithm chose a value for the root node? I'm getting a seemingly random value that starts the split. It isn't the median in the dataset. How is Matlab choosing the beginning value? For example in the data, my Max value is 25, my min value is 3, the median is 8, but the tree is choosing a root node split of 11.5 when that value isn't even in the dataset. How is this number chosen?

Answers (1)

Raunak Gupta
Raunak Gupta on 7 Aug 2020
Hi,
In the documentation of fitctree (which is essentially a decision tree), the Node Splitting Rules are mentioned which clearly and in-detail talks about how a split is decided for a node. So basically, a weighted impurity is calculated for the current node and that decide where to put the split at. This impurity can be set from different options present in SplitCriterion Name-Value pair. You may look into the rules for through understanding about the splitting in decision trees.
Hope it clarifies.
  2 Comments
Christiana Sasser
Christiana Sasser on 31 Aug 2020
I understand the criteria for splitting but not the actual number chosen. Is it just local optimization of the numbers? I understand why one variable would be chosen over another (lower MSE) but how is the value within that variable chosen? For example, why 11.5 rather than 10 or 12?
Risyad Zaidan
Risyad Zaidan on 15 Jul 2023
Sorry, have you find a way to know how fitctree chose the value for the decision tree node? Can it be done with manual calculation?

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!