我有一个包含40列和100万行的h2o数据表。我想随意选择30万行,无需更换。我在线查看的H2o.sample函数给出了错误(我已经启动了h2o集群)
Error: could not find function "h2o.sample"
我还有其他办法吗?提前谢谢!
答案 0 :(得分:6)
没有h2o.sample()
功能(也许在一个非常旧的H2O版本中?)。您可以使用h2o.splitFrame()
功能将框架拆分为多个部分。这也可以作为获取数据框的随机子集的方法(无需替换)。该函数实际上会创建两个(或更多)数据,所以如果你只需要30%,这里有一个例子在R中使用iris来获得行的~30%随机样本:
library(h2o)
h2o.init()
hf <- as.h2o(iris)
ss <- h2o.splitFrame(hf, ratios = c(0.3), seed = 1)
sub_hf <- ss[[1]] # will contain 30% of the rows
请注意,出于可伸缩性原因,h2o.splitFrame()
使用“近似拆分”,这意味着您不一定会获得30%的行。但是,预期值为30%,当数据更大时,它将更接近所需的百分比。虹膜是一个很小的150行数据集,因此存在更多的差异。