簡體   English   中英

h2o autoencoders高錯誤(h2o.mse)

[英]h2o autoencoders high error (h2o.mse)

我正在嘗試使用h2o使用其deeplearning函數創建自動編碼器。 我將一組大小為4000x50的數據提供給deeplearning函數(隱藏節點c(200)),然后使用h2o.mse檢查它的錯誤,我得到的值約為0.4,這是一個相當高的值。

無論如何通過改變deeplearning函數來減少錯誤?

我假設一切都是默認值,除了定義一個有200個節點的隱藏層?

你要嘗試的第一組事情是:

  • 使用更多的紀元(或使用不太積極的早期停止標准)
  • 使用第二個隱藏層
  • 在隱藏層中使用更多節點
  • 獲取更多培訓數據

請注意, 所有這些都會增加您的培訓時間。

您可以使用H2OGridSearch查找具有最小MSE的最佳自動編碼器模型。 下面是Python中的一個例子。 在這里你可以找到R中的例子。

def tuneAndTrain(hyperParameters, model, trainDataFrame):
    h2o.init()
    trainData=trainDataFrame.values        
    trainDataHex=h2o.H2OFrame(trainData)
    modelGrid = H2OGridSearch(model,hyper_params=hyperParameters)
    modelGrid.train(x=list(range(0,int(len(trainDataFrame.columns)))),training_frame=trainDataHex)
    gridperf1 = modelGrid.get_grid(sort_by='mse', decreasing=True)
    bestModel = gridperf1.models[0]
    return bestModel

你可以調用上面的函數來查找和訓練最好的模型:

hiddenOpt = [[50,50],[100,100], [5,5,5],[50,50,50]]
l2Opt = [1e-4,1e-2]
hyperParameters = {"hidden":hiddenOpt, "l2":l2Opt}
bestModel=tuneAndTrain(hyperParameters,H2OAutoEncoderEstimator(activation="Tanh", ignore_const_cols=False, epochs=200),dataFrameTrainPreprocessed)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM