这是改进统计模型的正确方法吗?

数据挖掘 分类
2022-03-16 15:56:04

我正在构建大量的统计模型——文本分类器和序列标记器。统计模型在特征上是线性的——逻辑回归和线性链一阶 CRF。

这些模型经历了从粗略的初始版本到成熟的生产模型的几个阶段。给定一个规范和一些数据集(通常带有不完整的注释、嘈杂的标签和特征),我从一个小的手工标记数据集构建了第一个模型。然后通过添加更多标记示例(例如使用众包)迭代地增长该数据集。

然后是测试阶段。测试人员在更大的系统中积极评估统计模型。作为开发人员,我开始获取有关他们输入的失败报告。我应该修复模型,在系统中更新它并部署它。

每个单独的错误报告都相当小,无法手动检查并修复每个错误分类。显然,仅仅将带有正确标签的失败案例简单地添加到训练集中是不正确的。你永远不知道模型是否学会了这种新模式。我通过将失败案例与大量未标记示例数据集(实际使用数据但没有标签)进行比较并提取类似示例来做到这一点。我标记了那些类似的例子,添加到训练集中并重新训练模型。然后我检查新模型是否修复了最初报告的问题。

我的问题是:这是建立和不断改进统计模型的正确方法吗?可能有一些隐藏的警告会在某种意义上使我的模型产生偏差?

1个回答

无意冒犯,但让我猜猜,你在一家大公司工作,没有人完全了解监督这个过程的过程?我这样说是因为听起来好像测试人员希望您手动并有意地过度拟合您的模型。没有完美准确的模型。

是的,我会说您的模型构建存在偏见。新模型输入应该是随机选择,而不是通过查找和标记与错误分类相似的实例来进行。

你的生产模式会随着时间的推移而退化(人口分布已经改变)。你应该有一个阈值,一个错误率不再例外,你需要重新训练。要重新训练,您可以将随机选择的新标记数据添加到现有数据中,然后训练、验证、选择模型、部署和监控。

您可以通过新的再培训来“修复”错误报告,但不切实际的期望这也将涵盖所有以前的错误报告。您的模型需要泛化。看这里:

https://en.wikipedia.org/wiki/Test_set

看看底部的图像。本质上,如果您想创建绿色模型,则要求您创建橙色模型,该模型可以更好地推广到看不见的数据。