@Peter_Hersh ,Thanks for posting this great video! I have in my case variable data, and using decision trees leads to different models for different runs, as you stated, that decision trees have this "con". In your case you used a validation column, meaning that the choice for training and testing is not random anymore. Using "hold-out portion" in my case, is another source of "noise" from run to run. Is there any idea or strategy on how to get a more stable model, or how to define/fix the final model? I'm using Boosted Tree, because it performed best doing a model comparison. Thanks in Advance!
@Georg I might have a couple of ideas concerning your question :
Hope these few ideas may help you,
@Georg Great question. @Victor_G has a couple of nice solutions with model averaging or ensemble modeling of k-folds. It sounds like your data has a lot of noise with the model changing with additional runs. It might be the case that the model is not very useful at this point without some additional factors or runs to help understand the variability in your data better.
A way to test this is to make multiple validation columns for the holdback validation. If those models using different validation columns are dramatically different from each other that indicates that a random subset of your data is not representative of the data as a whole. That means you will have trouble making an accurate predictive model without making some changes.
Tree-based models are very susceptible to outliers, so it might be a good idea to check for outliers before running the model.
Hope this is helpful let us know how things go.
@Peter_Hersh : I am not sure what you imply with your sentence "Tree-based models are very susceptible to outliers", since tree-based method are instead quite robust to outliers, or at least outliers have a negligible effect. There is already a lot of examples and publications on this aspect, and this is also why this type of models are often used and famous, because of their "simplicity" and low pre-processing/cleaning step (no big work needed on outliers, and handling of missing values, no assumptions on distributions, etc...). A comparison of the impact of outliers on regression models and random forest (and the benefits of different techniques to deal with outliers applied on both algorithms (spoiler: which show no big effect on random forest algorithm)) can be seen here : How to Make Your Machine Learning Models Robust to Outliers - KDnuggets
@Peter_Hersh @Georg There are however other things to take into account for the choice of tree-based models, here are some :
And you also have to consider (in addition to previous points) your objective (predictive/explanative ?), the influence of the metrics used to evaluate the performances of your model on this dataset, the dataset size and dimensions (number of variables vs. number of observations), representativeness of your data, etc...
If you're using a small dataset (with possible noise), Random Forest may be a safer and more robust alternative than Boosted Tree/Decision Tree.In addition to what @Peter_Hersh suggests, if you have different performances accross the folds/validation columns for your Boosted Tree, that is an indication that a subset of your data may have unusual values, so trying to look at distances (Jackknife/Mahalanobis) in the Multivariate platform could enable you to spot and identify an usual observation in this subset.Sorry for the long answer, I hope it will be helpful,
Thanks both for the very detailed analysis, I need some time to work on all your proposals, and will respond later. I know that there are many challenges in my dataset, one additional is that it is unbalanced, it is a mixture of much historical data and some experiments added to it. And we developers want to get the information out of all data, and not to throw anything. These experiments may look like outliers, but are not outliers, they are single points with a meaningful result. As my dataset will be presented in the discovery summit Europe, we can further discuss when it's online. BR