具有交叉验证的 DRF 检查点失败,并出现错误"ERRR: _weights_column: Weights column '__internal_cv_weights__' not found



已在28.0.2和最新30.0.1版本上试用。

创建第一个DRF:

rf1 <- h2o.randomForest(
model_id="first_drf1_x1",
x = f2,
y = r1,
training_frame = train1,
validation_frame = valid1,
ntrees = 49,
nfolds = 5,
seed = 1
)

训练它,他们试图从这个模型继续训练,就像这样:

rf2 <- h2o.randomForest(
model_id="second_drf1_x2",
x = f2,
y = r1,
training_frame = train2,
validation_frame = valid2,
ntrees = (49+50),
nfolds = 5,
checkpoint = "first_drf1_x1",
seed = 1
)

立即在日志中可以看到:

POST /3/ModelBuilders/drf, parms: {model_id=second_drf1_x2, validation_frame=RTMP_sid_aea1_16, response_column=pcs7_e_dt_4010u, training_frame=RTMP_sid_aea1_14, seed=1, nfolds=5, ntrees=99, ignored_columns=["ts","leve_batch_nbr"], checkpoint=first_drf1_x1}
04-30 10:20:34.601 127.0.0.1:54321       55804  FJ-1-5    INFO: Creating 5 cross-validation splits with random number seed: 1
04-30 10:20:34.612 127.0.0.1:54321       55804  FJ-1-5    ERRR: _weights_column: Weights column '__internal_cv_weights__' not found in the training frame

当创建第一个模型时,会创建5个CV模型,它们的内部字段设置如下:

“_weights_column":"internal_cv_weights",

但当主要的第一个模型被训练时:

Building main model.
...
“_weights_column":null,

我在h2o jira中打开了一个bug,但也许有人已经看到了这个问题,并有了解决方法。如果nfolds设置为0(禁用交叉验证(,则一切正常

您需要禁用nfolds。正如文档所说"交叉验证目前不支持检查点。">

如果您使用的是新数据,那么从DRF的旧模型开始可能没有多大意义。旧树/原始树(1-49(不会从新数据的额外观测中受益。检查点(50-99(之后的新树将具有额外的观测值。因此,你一半的树将缺乏一些预测信息,这可能会在你的评分中产生一些偏差。

最新更新