【发布时间】:2020-09-02 19:34:17
【问题描述】:
我在使用带有缺失值的数据训练的 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
【问题讨论】:
-
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
-
我尝试在 iris 数据集中随机缺失,其模式与我的数据相似,但我无法重现它
-
如果没有可重现的例子,很难说发生了什么。另外关于权重:请注意,
ctree()将weights参数视为案例权重(也称为频率)权重,因此需要非负整数权重。如果我理解正确,这似乎与您的用法有冲突。 -
为了制作一个可重复的示例,我需要提供数据,这不是我可以提供的,我将尝试将其匿名化。关于重量,所以不允许使用分数重量?总和到实际的行数。那么 ctree 是如何解释它们的呢? (我使用分数指数权重来执行贝叶斯引导)
-
我删除了分数权重并将它们转换为整数,但我仍然得到了 286 和 299 个预测行的交替。我会用完整的代码和数据更新问题...
标签: r prediction missing-data party ctree