Model Depth Optimization

In our experience, GMDH has a tendency to overfit data if treated carelessly. Its generalization properties may be very sensitive especially changes in network depth (maxLayers parameter), however small they may be, so a wrapper is provided that optimizes the network depth while holding other parameters fixed- a metaclassifier that uses n-fold cross-validation internally, called GmdhDepthSearch.

It is recommended to run GmdhDepthSearch with maxLayers parameter of its inner Msc set to 0, which means that the network will keep growing as long as evaluated model performance keeps improving. However, setting maxLayers to 0 when using Msc as a standalone classifier may result in an overly-complex model with poor generalization.

If you intend to use this metaclassifier in an outer cross-validation loop, make sure you have good reasons for doing it - nested cross-validations take some time to execute. Also, be aware of the (quadratic) increase of execution time when using GmdhDepthSearch with Msc classifier's dataProvider set to CvHandler.