2017-10-12 6 views
0

Je suis en train d'overfit un GBM avec H2O (je sais que c'est bizarre, mais j'ai besoin de cela pour faire un point). Donc, j'augmenté la MAX_DEPTH de mes arbres et le retrait, et désactivé le critère d'arrêt:h2o GBM arrêt précoce

overfit <- h2o.gbm(y=response 
        , training_frame = tapp.hex 
        , ntrees = 100 
        , max_depth = 30 
        , learn_rate = 0.1 
        , distribution = "gaussian" 
        , stopping_rounds = 0 
        , distribution = "gaussian" 
       ) 

Le overfitting fonctionne très bien, mais je l'ai remarqué que l'erreur de formation ne s'améliore pas après l'arbre 64e. Est-ce que tu sais pourquoi ? Si je comprends bien le concept de «boosting», l'erreur d'entraînement devrait converger vers 0 à mesure que le nombre d'arbres augmente.

Informations sur mes données: Environ 1 million d'observations 10 variables La variable de réponse est quantitative.

Passez une bonne journée!

Répondre

0

Avez-vous essayé d'abaisser le paramètre min_split_improvement? La valeur par défaut de 1e-5 est déjà microscopique mais pertinente pour un million de lignes. Je suppose que tous les arbres après le 64ème (dans votre exemple) seront triviaux?

0

Si le taux d'apprentissage de 0,1 ne fonctionne pas pour vous, je recommande de diminuer le taux d'apprentissage de sorte que quelque chose comme 0,01 ou 0,001. Bien que vous indiquiez que l'erreur d'entraînement cesse de diminuer après l'arbre 64, je recommanderais quand même d'essayer d'ajouter plus d'arbres, au moins 1000-5000, surtout si vous essayez un taux d'apprentissage plus lent.

+0

Merci pour votre réponse. Oui j'ai essayé mais c'est la même chose, juste avec plus d'arbres. L'erreur d'entraînement a finalement cessé de diminuer et je ne sais pas pourquoi. –