购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.5.2 特征生成

从原始输入数据中提取特征信息是许多机器学习系统的一个典型部分,可能包括这些任务:

● 对文本描述中的单词进行标记。

● 从产品列表中提取价格信息。

● 将大气压力读数放入五个桶之一(通常称为 量化 )。

● 查询用户账户上次登录后的时间。

● 将系统时间戳转换为本地化的时间。

这些任务大多是一种数据类型向另一种数据类型的直接转换。它们可能像一个数字除以另一个数字那样简单,或者涉及复杂的逻辑或对其他子系统的请求。在任何情况下,重要的是要记住,特征生成中的错误可以说是机器学习系统中 唯一最常见的错误来源

特征生成是最容易发生问题的地方,有几个原因。首先,特征生成中的错误往往不能通过总的模型性能指标看出来,比如在保留的测试数据上的准确性。例如,如果温度传感器的读数有一个错误,它可能会少量地降低准确性,但我们的系统也可能学会通过更多地依赖其他特征来补偿这个错误。在已经于生产中运行了数月或数年而未被发现的特征生成代码中发现错误,可能是令人惊讶的事情。

特征生成错误的第二个来源是当同一逻辑特征在训练和服务时以不同方式计算而产生的。例如,如果我们的模型依赖于设备上的本地时间,那么在计算训练数据时,可能会通过一个全局批处理作业来计算,但在服务时可能会直接从设备上查询到。由于缺乏真实的验证标签,服务路径中的错误可能导致预测中的错误,而这些错误很难被发现。我们将在第9章介绍针对这一重要案例的一套监控最佳实践。

特征生成错误的第三个主要来源是,当我们的特征生成器依赖于上游的依赖关系,而该依赖关系出现问题或遭遇中断时,就会发生错误。例如,如果我们生成纱线购买预测的模型依赖于对另一个报告用户评论和满意度的服务的查询,那么当该服务突然离线或停止返回合理的响应时,我们的模型就会出现严重的问题。在现实世界的系统中,我们的上游依赖往往有自己的上游依赖,我们确实容易受到它们的影响。 +XSYXk0BTO+htQUrIZd6Q6je4kOqR0i1Uj9/jeYC+BfhUO1Chpl6GGqh1bOlwDBu

点击中间区域
呼出菜单
上一章
目录
下一章
×