1

我在partikit使用缺失值数据训练的加权条件树模型时遇到问题。

我通过在每个周期为观察值赋予不同的整数权重来手动创建袋装树模型。

但是当我使用自举模型进行预测时,我注意到其中一些模型返回的值少于输入数据行。有趣的是,在输入数据的 299 行中,预测的数据长度为 299 或 289。289 是删除具有缺失数据的预测变量后的行数。

挖掘问题我发现它来自三个组件的交互:

  • 在模型中使用权重;
  • 预测变量中缺少数据;
  • 在传递给的输入数据中使用字符变量而不是因子predict()

如果仅缺少这三个条件之一,则不会出现问题,并且所有树都返回 299 个值。

这是数据:https ://www.dropbox.com/s/98oriv2msce4wu5/anonym_data.rds?dl=0 这是重现问题的脚本:https ://www.dropbox.com/s/5y7g2dwt2838pbp/test .R?dl=0

4

1 回答 1

1

链接不再有效,但我认为您的意思是partykit. 尽管ctree模型可以处理缺失的数据,但使用predict.party. model.frame该代码使用默认调用na.actionto na.fail

我不足以说这是否是一个错误,但这对我来说似乎很奇怪,并且可能会解决您所看到的问题。您可以下载partykit源代码,修改此行,添加选项na.action = na.pass

虽然我希望你以后不会再有这个问题 1y 5m。

于 2022-02-23T05:10:47.663 回答