Deep learning h2o深度学习每次运行的不同结果
我使用python对2个平衡类“0”和“1”的数据进行h2o深度学习,并将参数调整如下:Deep learning h2o深度学习每次运行的不同结果,deep-learning,h2o,Deep Learning,H2o,我使用python对2个平衡类“0”和“1”的数据进行h2o深度学习,并将参数调整如下: prostate_dl = H2ODeepLearningEstimator( activation=,"Tanh" hidden=[50,50,50], distribution="multinomial", score_interval=10, epochs=1000, input_dropout_ratio=0.2 ,adaptive_ra
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”,他们有什么建议吗?这个问题已经得到了回答,但是在Python中初始化
H2ODeepLearningEstimator
时(或者在R中的h2o.deeplearning()
中),您需要设置represeable=TRUE
即使设置了repeatable=TRUE
,H2O深度学习结果也只能在使用单个核心时再现;换句话说,当h2o.init(nthreads=1)
时。本文概述了这背后的原因
此外,根据H2O深度学习:
是否每个映射器任务都在一个单独的神经网络模型上工作,该模型在还原过程中被合并,或者每个映射器都在操作一个跨节点持久化的共享对象?
都不是;每个计算节点有一个模型,所以有多个
映射器/线程共享一个模型,这就是为什么H2O不可复制的原因
除非使用一个小数据集并强制加载平衡=F或
可复制=T,有效地重新平衡到单个块和
只导致一个线程启动map()。当前的行为是
简单模型平均;通过“弹性”进行节点间模型平均
目前正在进行“平均化”
请将“另外,所有的运行都将大多数预测作为“1”类而不是“0”,他们是否有任何建议?”移至一个单独的问题(并提供一个可复制的示例)。谢谢。是的,当我设置repeatable=TRUE和seed=1时,它就起作用了。尽管这两个类在培训阶段是平衡的,但有人能建议我如何让结果不偏向某一类吗?