处理单个“项目”的“测试”预测问题(空值、标准化等)

数据挖掘 交叉验证 预言 正常化 缺失数据 数据插补
2022-02-19 14:12:32

我知道这是一个广泛的问题,但我试图搜索这个论坛和整个互联网,但对于这种特殊情况无济于事。因此,想象一下我有一个经过训练的模型,尽管最初的数据可能并不完整和干净,但我采取措施使数据符合模型要求(在适当的情况下没有异常值,必要时去偏斜,必要时进行标准化,null适当估算的值)。这是在交叉验证框架中完成的。所有这些东西都有效,并且在调整模型时绝对没问题,但是当我尝试从中做出单一预测时遇到问题(这意味着我有一个单一的“测试”记录 - 想想一些字段可以为空的 Web 服务) . 事实上,空值通常需要一个数据集来参考填充,以及标准化/异常值过程。

最初我考虑将这样的“测试”记录链接到“训练”数据集的一部分,这样我就不会遇到这个问题(这样的问题会得到解决),但那时会出现其他问题:我将如何选择这样的数据集? 如果我使用最新的数据,我会以某种方式对其产生偏差吗?在处理“大”数据时,使用整个数据集是不切实际的,并且可能不可行。

您是否碰巧知道该主题是否有一些最佳实践,或者您能否向我推荐处理这些问题的主题/关键字?

ps:对于问题的相关性,空值很可能会保留在那里(我无法在Web应用程序中预先强制它们以获得更流畅的用户体验)

1个回答

您需要保存执行这些预处理步骤的说明,不一定是您从中提取它们的数据集。

请参阅
获取训练/生产数据的一致单热编码
二进制分类 - 一种热编码阻止我使用测试集
单热编码分类数据给出错误

特别是,可以腌制 sklearn 预处理器,然后transform在生产中使用它们的方法,如果您可以在部署中使用 sklearn。PMML 还可以翻译大多数变压器。或者您可以编写自己的简单转换器。

至于使用更新的数据来返工转换器,那就更接近于再培训了;在大多数情况下,我会将其保存在与改装模型相同的位置:要么离线,要么都在线。