param = {'max_depth': 2, 'eta': 1, 'silent': 0, 'objective':
'multi:softmax', 'num_class': 10}
num_round = 1
res = xgb.cv(param, dtrain, num_round, nfold=10,
metrics={'merror'}, seed=0, verbose_eval=True,
callbacks=[xgb.callback.print_evaluation(show_stdv=True),
xgb.callback.early_stop(3)])
Je peux voir beaucoup des journaux suivants:quand est-ce xgboost arrêt de validation croisée
[17:50:22] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 4 extra nodes, 0 pruned nodes, max_depth=2
[17:50:22] src/tree/updater_prune.cc:74: tree pruning end, 1 roots, 6 extra nodes, 0 pruned nodes, max_depth=2
......
Enfin, j'imprimer res comme suit:
[0] train-merror:0.800139+0.00308927 test-merror:0.815893+0.0139572
Ma question est la suivante:
1, Que signifie le train-merror: 0.800139 et test-merror: 0.815893? Est-ce la valeur moyenne des données eval du dossier 10?
2, Quand devons-nous définir num_round> 1? J'ai fait un malentendu sur le num_round entre cv() et train(). Lorsque cv(), num_round effectue à nouveau une autre validation croisée de 10 dossiers. Mais quand train(), num_round définit le nombre d'arbres que je veux. Est-ce correct?
3, Lorsque cv(), dans une itération, quand le processus se termine-t-il si je ne mets pas d'arrêt anticipé? 4, comment puis-je imprimer une métrique à la fin d'un processus de dossier?
Merci!
A propos de la question 2, j'ai réalisé que c'était une question stupide. Les deux num_round dans cv() et train() ont la même signification. Et la question 3 est également annulée par la question 2 – iloveml