How are NaN Values handled by Matlab Decision Tree / Ensemble Learner
4 views (last 30 days)
Show older comments
Dario Walter
on 31 Jul 2020
Commented: Dario Walter
on 12 Aug 2020
Hey,
I could not find a satisfying answer with respect to the topic provided in the title. Does Matlab exclude entire observations when a NaN value is detected for a certain feature or does it refer to NaN values with an own category (the latter would be desirable)?
Thanks for your help
0 Comments
Accepted Answer
Raunak Gupta
on 7 Aug 2020
Hi,
I assume you are using fitctree for working on Decision Trees. From here you may see that whenever a NaN value is encountered for any feature in an observation it is discarded while fitting the decision tree. Same goes for that observation's label. As for the second option it is very hard to assume or calculate any missing NaN value because the feature may follow a general rule or may be an outlier for a particular observation, so it’s better to discard rather than assume the value.
Hope this clarifies!
3 Comments
Raunak Gupta
on 12 Aug 2020
Hi Dario,
Thanks for correcting me. So, the fitctree discards only those observations where all the features has NaN values. If the observation has some valid values it will try to find the split around those features first.
So lets say if there are 3 features for all the observation and only feature 1 has valid values for all the observations then fitctree will try to find a split based on feature 1.
"fitctree considers NaN values in X as missing values. fitctree does not use observations with all missing values for X in the fit. fitctree uses observations with some missing values for X to find splits on variables for which these observations have valid values."
Hope this clarify! :)
More Answers (0)
See Also
Categories
Find more on Classification Trees in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!