我喜欢ml的h2o.ai工具。它是java,但它很熟悉,做得很好。
以下是关于分层拆分的一般信息:
- https://en.wikipedia.org/wiki/Stratified_sampling
- 分层拆分数据
我有一个非常不平衡的变量,所以我需要基于R-gui对该变量的数据进行分层拆分,在h2o.ai中。有办法做到吗?
用于在h2o.ai工具中拆分数据的R命令如下:
splits = h2o.splitFrame(mydata, ratios=myratio, destination_frames=...)
在splitframe变量中没有分层选项。我知道在Flow(运行java的web接口(工具中,它们允许在交叉验证的方法中使用平衡类,所以在其中的某个地方它正在进行分层拆分。
我不喜欢在基本R中这样做,因为R中的内存处理不如在h2o.ai中有效,而且我的数据量很大。
据我所知,您的问题是使用分层采样,因为您的数据严重不平衡
在创建模型时,您可以设置某些参数来实现这一点,例如
h2o.gbm(....., nfolds=n, fold_asssignment="Stratified", fold_column="Your Column")
或者你可以尝试设置
h2o.gbm(..., balance_classes=True, ...)
希望这将对您有所帮助,有关更多详细信息,请参阅https://docs.h2o.ai/h2o/latest-stable/h2o-r/h2o_package.pdf