我正在构建大量的统计模型——文本分类器和序列标记器。统计模型在特征上是线性的——逻辑回归和线性链一阶 CRF。
这些模型经历了从粗略的初始版本到成熟的生产模型的几个阶段。给定一个规范和一些数据集(通常带有不完整的注释、嘈杂的标签和特征),我从一个小的手工标记数据集构建了第一个模型。然后通过添加更多标记示例(例如使用众包)迭代地增长该数据集。
然后是测试阶段。测试人员在更大的系统中积极评估统计模型。作为开发人员,我开始获取有关他们输入的失败报告。我应该修复模型,在系统中更新它并部署它。
每个单独的错误报告都相当小,无法手动检查并修复每个错误分类。显然,仅仅将带有正确标签的失败案例简单地添加到训练集中是不正确的。你永远不知道模型是否学会了这种新模式。我通过将失败案例与大量未标记示例数据集(实际使用数据但没有标签)进行比较并提取类似示例来做到这一点。我标记了那些类似的例子,添加到训练集中并重新训练模型。然后我检查新模型是否修复了最初报告的问题。
我的问题是:这是建立和不断改进统计模型的正确方法吗?可能有一些隐藏的警告会在某种意义上使我的模型产生偏差?