J'essaie de faire usage de max_runtime_seconds mais soit j'ai du mal à comprendre comment cela devrait fonctionner, ou ce que je ressens est plus probable - il y a une sorte de bug.h2o max_runtime_seconds - ne semble pas avoir d'impact?
J'ai testé avec des forêts aléatoires et il ne semble jamais réduire le temps d'exécution.
import h2o
h2o.init()
from h2o.estimators import H2ORandomForestEstimator
df=h2o.import_file('covtype.csv') #### https://archive.ics.uci.edu/ml/machine-learning-databases/covtype/
for i in df.names:
df[i]=df[i].asfactor()
df.types ## just showing everything is categorical
train,test = df.split_frame(ratios=[0.75], seed = 2017)
response = 'C55'
xvars = train.drop(["C55"]).col_names
mymodel = H2ORandomForestEstimator(
nfolds = 10,
max_runtime_secs = 30,
stopping_rounds = 5,
ntrees = 500
)
mymodel.train(
x = xvars,
y = response,
validation_frame = test,
training_frame = train)
## does not finish remotely close to <30 seconds
mymodel.actual_params()
Notez que le paramètre de temps de fonctionnement max ne semble pas être sauvegardé et reste à 0. J'utilise la version « bleeding edge » de h2o dès maintenant ~ 3,13 et python.
Ma supposition est que 'max_runtime_secs' fait référence aux secondes allouées maximum pour exécuter chaque pour chaque arbre. Ainsi, si vous avez 'ntrees = 100', alors le temps maximum pour construire ce modèle est 100 arbres x 90 sec x 5 fois, ou 45000 secondes. –
Si vous publiez un exemple entièrement reproductible, il est plus probable que quelqu'un essaiera de vous aider à déboguer le problème: https://stackoverflow.com/help/mcve Vous pouvez même copier celui des documents: http: // docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/max_runtime_secs.html En ajoutant également du code pour chronométrer la formation en utilisant le module timeit ou similaire, cela aiderait à démontrer s'il s'agit réellement d'un bug ou pas. –
@ Scratch'N'Purr C'est une bonne supposition, mais non, les docs indiquent que c'est l'exécution maximale pour le modèle entier (pas chaque arbre). Donc, en effet, la variable 'max_runtime_secs' devrait imposer une limite de temps de 90 secondes dans le code ci-dessus. –