How are NaN Values handled by Matlab Decision Tree / Ensemble Learner

4 views (last 30 days)
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

Accepted Answer

Raunak Gupta
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
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! :)

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!