无法解决 kaggle 内核中发生的 h2o 错误

Posted

技术标签:

【中文标题】无法解决 kaggle 内核中发生的 h2o 错误【英文标题】:Unable to solve error In h2o happening in kaggle kernels 【发布时间】:2018-07-23 12:51:32 【问题描述】:

我正在尝试在 H2o 中运行算法,因为数据集非常大并且它是一个回归问题

我正在参加一个名为 Mercari 价格建议挑战 的纯内核竞赛,因此它只需要在 Kaggle 内核中运行和检查代码。

我正在使用具有 8 GB RAM 的 R 语言

最初我能够运行 glm 模型并保存输出 csv 使用以下代码

library(glm2)
glm.model2 <- h2o.glm( y = y.dep, x = x.indep, training_frame = train1.h2o, validation_frame = valid1.h2o
,family = "gaussian")

Glm 在 12 秒内快速运行而不会产生错误,但只要我尝试运行

无论是 gbm 还是基本的深度学习模型都会产生错误

library(gbm)
h2o.gbm(y=y.dep, x=x.indep, training_frame = train1.h2o,validation_frame = valid1.h2o, ntrees = 2000, max_depth = 4, learn_rate = 0.01)

library(randomForest)
rforest.model <- h2o.randomForest(y=y.dep, x=x.indep, training_frame = train1.h2o,validation_frame = valid1.h2o, ntrees = 1000, mtries = 3, max_depth = 4, seed = 1122)


 dlearning.model <- h2o.deeplearning(y = y.dep,
                                      x = x.indep,
                                       training_frame = train1.h2o,
                                       validation_frame = valid1.h2o,
                                       epoch = 60,
                                       hidden = c(100,100),
                                       activation = "Rectifier",
                                       seed = 1122
  )

我一次又一次地收到以下错误。 请建议可以做些什么来解决这个问题,因为 glm 运行得很好,但所有其他的都没有运行

Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = urlSuffix, : Unexpected CURL error: Failed to connect to localhost port 54321: Connection refused
Traceback:

即使在两个模型都达到 10% 到 11% 后它也失败了,我想知道是否有任何破解或任何措施,所以我至少可以运行这些算法,以便我可以提交我的结果。由于这一切,我无法建立一个集成模型。

任何可以使用的度量,因为我只在 kaggle 内核中运行它们

【问题讨论】:

标签“ML”涉及编程语言,而不是机器“学习”。 我使用了标签“机器学习”而不是“ML” 不,你没有。看起来你这样做了,因为我在几个小时前为你更换了它。 谢谢@molbdnilo。欣赏它 如果你使用 h2o,我认为你不需要 gbm、glm 或 randomFrrest 包。你输入了library(h2o); localH2O = h2o.init(nthreads = -1) ; 之类的东西吗? 【参考方案1】:

您无法连接到服务器,因为kernels don't have an internet connection。 :)

更新:我做了更多的挖掘工作,互联网访问不应该是这里的问题。我会提交一个错误。

【讨论】:

【参考方案2】:

Failed to connect to localhost port 54321: Connection refused

这是由 Kaggle 如何在其内核(可能是 Docker 镜像)中运行 H2O 引起的。 H2O R 客户端无法连接到在 localhost:54321 运行的本地 H2O 服务器。

您可以尝试在不同的端口上启动 H2O 集群。因此,不要运行h2o.init(),而是执行h2o.init(port=44444) 之类的操作。如果他们允许许多人在同一台机器/端口上启动 H2O 集群,这可能会导致一些问题。如果您已在会话中连接到 H2O 集群,请先运行 h2o.shutdown(prompt = FALSE),然后在其他端口上重新启动 H2O。

我还建议您联系 Kaggle 管理员,看看他们是否可以帮助调试问题。我们之前在 Kaggle 内核中遇到过类似的问题。

【讨论】:

以上是关于无法解决 kaggle 内核中发生的 h2o 错误的主要内容,如果未能解决你的问题,请参考以下文章

无法使用usb的通用内核启动Linux

模拟器错误:此 AVD 的配置缺少内核文件

kaggle 预测房价竞赛总结 动手学深度学习v2 pytorch

如何将kaggle上的Ipython内核转换为pdf并下载?

pycaret 和 H2O 的异常检测结果不同

无法将数据框转换为 h2o 对象