2017-12-12 24 views
1

h2oパッケージを使用して、異なる正規化パラメータ(アルファ、ラムダ)を持つGLMモデルからアンサンブルを構築しています。h2oでアンサンブル - モデルが見つからない

[email protected]_idsはGLMに最適な alphalambda正則化パラメータを決定するために、グリッドサーチからモデルです
ensemble <- h2o.stackedEnsemble(x = predictors, 
           y = response, 
           training_frame = train, 
           model_id = "ensemble", 
           base_models = list([email protected]_ids)) 

:私はドキュメント以下、アンサンブルを構築しようとします。次のエラーが表示されます。

When creating a StackedEnsemble you must specify one or more models; 24 were specified but none of those were found: [list("glm_grid_model_6", glm_grid_model_11, glm_grid_model_7, glm_grid_model_9, glm_grid_model_2, glm_grid_model_21, glm_grid_model_15, glm_grid_model_0"] 

問題があるようですか?

編集:私は、ドキュメント、次の試み、そのいずれかに類推コードを使用:

gbm_grid <- h2o.grid(algorithm = "gbm", 
        grid_id = "gbm_grid_binomial", 
        x = x, 
        y = y, 
        training_frame = train, 
        ntrees = 10, 
        seed = 1, 
        nfolds = nfolds, 
        fold_assignment = "Modulo", 
        keep_cross_validation_predictions = TRUE, 
        hyper_params = hyper_params, 
        search_criteria = search_criteria) 

# Train a stacked ensemble using the GBM grid 
ensemble <- h2o.stackedEnsemble(x = x, 
           y = y, 
           training_frame = train, 
           model_id = "ensemble_gbm_grid_binomial", 
           base_models = gbm_grid[email protected]_ids) 

そして@Erin LeDellあたりのように私は、追加list()を取り出して、それが機能するようになりました。しかし、私が最終的にやりたいことは様々なモデルからグリッドを使用することですので、何かのように:

ensemble <- h2o.stackedEnsemble(x = x, 
           y = y, 
           training_frame = train, 
           model_id = "my_ensemble_binomial", 
           base_models = list(my_gbm, my_rf)) 

EDIT2:

を使用して、それを解決:

model_list <- as.list(c([email protected]_ids, 
         [email protected]_ids)) 


ensemble <- h2o.stackedEnsemble(x = predictors, 
           y = response, 
           training_frame = train, 
           model_id = "ensemble1231", 
           base_models = model_list) 
+1

'glm_grid'を作成するためのコードと' list(glm_grid @ model_ids) 'の結果を投稿してください。また、あなたが報告したエラーメッセージの引用符( ")に問題があるようです。 – desertnaut

答えて

1

あなたは余分を持っていますlist()[email protected]_idsにラップされていますが、ここでは必要ありません。おそらくエラーの原因です。 [email protected]_idsオブジェクトは既にリストです。これを代わりに行う:

ensemble <- h2o.stackedEnsemble(x = predictors, 
           y = response, 
           training_frame = train, 
           model_id = "ensemble", 
           base_models = [email protected]_ids) 

詳細については、Rの例hereを参照してください。

+0

私は[this](https://gist.github.com/ledell/102a24eef72bdc4ea2cd876492095684)と類似しているようにしましたが、 – abu

+0

私の答えが正しいとわかったら、それを受け入れることができますか?Thx。 –

関連する問題