2017-07-17 3 views
0

私はmax_runtime_secondsを利用しようとしていますが、これがどのくらい正確に動作するか、あるいは私が感じていることを理解するのは苦労しています。何らかのバグがあります。h2o max_runtime_seconds - 影響はありませんか?

私はランダムなフォレストでテストしており、ランタイムを削減することはできません。

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() 

最大実行時のパラメータが保存され、私は〜今3.13 H2Oのバージョン「エッジ出血」をとPythonを使用しています0 に滞在していないように見えることに注意してください。

+0

私の推測では、 'max_runtime_secs'は、各ツリーに対してそれぞれを実行するために割り当てられた最大秒数を指しています。したがって、 'ntrees = 100'を指定すると、このモデルを構築する最大時間は100ツリーx 90秒x 5回、または45000秒になります。 –

+0

完全に再現可能な例を投稿すると、誰かが問題のデバッグを手伝う可能性が高くなります。https://stackoverflow.com/help/mcveドキュメントからコピーすることもできます。http:// docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/max_runtime_secs.htmlまた、timeitモジュールなどを使用してトレーニングを行うためのコードを追加することで、これが実際にバグであるかどうかを確認するのに役立ちますか否か。 –

+0

@ Scratch'N'Purrこれは良い推測ですが、ドキュメントではモデル全体(各ツリーではありません)の最大ランタイムであることを示しています。したがって、実際には 'max_runtime_secs'変数は上記のコードで90秒の制限時間を強制する必要があります。 –

答えて

0

これはPython APIのバグであることを確認しました(max_runtime_secsコードはバックエンドとRクライアントで動作しています)。チケットhereを開封しました。次のリリースでこれが修正されることを期待しています。

+1

Ok Erin、ありがとうございました。カバータイプのデータセットを使った例を使って上記を更新しました。ありがとう! – jack

関連する問題