我在2个 balancer 类“0”和“1”的数据上使用python进行h2o深度学习,并调整参数如下:
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)
每次程序运行都会给出不同的混淆矩阵和精确度的结果,无论如何可以解释一下?结果如何才能可靠?
此外,所有的运行都将大多数预测作为“1”类而不是“0”,是他们的任何建议吗?
1 回答
这个问题已经回答了here,但是你需要在Python中初始化
H2ODeepLearningEstimator
时设置reproducible=TRUE
(或者在R中的h2o.deeplearning()
中) .即使在设置
reproducible=TRUE
之后,H2O深度学习结果仅在使用单个核心时可重现;换句话说,当h2o.init(nthreads = 1)
. 背后的原因概述了here .另外,根据H2O深度学习user guide: