2017-11-04 1 views
0

ごとに異なる結果を学習:H2O深いI 2つのバランスクラス「0」と「1」のデータでPythonを使用してH 2 O深い学習を使用し、以下のようにパラメータを調整ラン

prostate_dl = H2ODeepLearningEstimator(
    activation=,"Tanh" 
    hidden=[50,50,50], 
    distribution="multinomial", 
    score_interval=10, 
    epochs=1000, 
    input_dropout_ratio=0.2 
    ,adaptive_rate=True 
    , rho=0.998, epsilon = 1e-8 
    ) 

prostate_dl .train( 
x=x, 
y=y, 
training_frame =train, 
validation_frame = test) 

それぞれをプログラムが実行される時間は、異なる混乱のマトリックとアキュラシーの結果を与える、とにかくそれを説明することができますか?どのように結果を信頼できるのでしょうか?

また、実行のすべては、 "0"ではなくクラス "1"として大部分の予測を与えますが、それらの提案は何ですか?

+0

「また、すべての実行で、大多数の予測がクラス「1」で「0」ではなく、どのような提案ですか? (と再現可能な例を提供する)。 –

答えて

0

この質問はすでにhereに答えてきたが、あなたはPythonで(またはRでh2o.deeplearning()で)H2ODeepLearningEstimatorを初期化するときreproducible=TRUEを設定する必要があります。

reproducible=TRUEに設定しても、H2Oディープラーニングの結果は、単一のコアを使用する場合にのみ再現可能です。換言すれば、h2o.init(nthreads = 1)の場合。この背後にある理由は、hereで概説されています。

また、あたりH2Oディープラーニングuser guide

は還元の間に結合され、別のニューラルネットモデル上の各マッパータスクの作業を行い、またはノード間で永続だ共有オブジェクトを操作する各マッパーであります?

どちらもありません。計算ノードごとに1つのモデルがあるので、複数の マッパー/スレッドは1つのモデルを共有するため、小さいデータセットが使用されず、効果的に単一のチャンクに再調整されるforce_load_balance = Fまたは reproducible = Tおよび map()を起動するスレッドが1つしかありません。現在の動作は 単純なモデルの平均です。 「弾性 平均化」を介したノード間モデル平均化は現在進行中です。

+0

ありがとうございます。はい、私はreproducible = TRUEとseed = 1に設定すると動作します。 – user8883441

+0

誰かがどのように結果を特定のクラスにバイアスされないようにすることができますが、2つのクラスはトレーニング段階でバランスがとれていますか? – user8883441

関連する問題