2017-09-16 20 views
1

我試圖以不同的方式計算性能,現在它是如何爲模型構建的。從網格搜索中獲取模型的cross_validation_holdout_predictions()

我想在交叉驗證期間訪問原始預測,所以我可以自己計算性能。

g = h2o.get_grid(grid_id) 
for m in g.models: 
    print "Model %s" % m.model_id 
    rrc[m.model_id] = m.cross_validation_holdout_predictions() 

我只能用我的數據集模型運行預測,但我認爲那麼這個測試可能有偏差,因爲該模型已經見過這個數據,還是不行?我能否對同一數據集進行新的預測並用它來計算性能?

回答

2

我想在交叉驗證過程中訪問原始預測,所以我可以自己計算性能。

如果你想計算的交叉驗證預測自定義指標,然後設置keep_cross_validation_predictions = True,您可以使用.cross_validation_holdout_predictions()方法就像你有上述訪問原始的預測值。

我能承擔相同的數據集提出了新的預測,並用它來計算性能?

這聽起來像你問你是否只能使用訓練數據來估計模型性能?是的,使用交叉驗證。如果您設置nfolds > 1,H2O將進行交叉驗證併爲您計算一些經過交叉驗證的性能指標。此外,如果您告訴H2O保存交叉驗證的預測,則可以計算您自己的「交叉驗證指標」。

+1

謝謝,艾琳再次!我錯過了。不知何故,我認爲這兩個選項不在網格搜索中。我認爲他們不在那裏,因爲我沒有選擇交叉驗證選項。我的錯。再次感謝你! –

+0

沒問題!您可以將任何算法參數(包括'keep_cross_validation_predictions')傳遞給'H2OGrid' - 這就是您如何修改算法以使用非默認設置(模型超參數同樣如此)。這裏的例子:https://github.com/h2oai/h2o-tutorials/blob/master/h2o-open-tour-2016/chicago/grid-search-model-selection.ipynb –