谷歌机器学习规则要点简析:43条黄金法则 (7)

“组合”方法是指组合两个或更多特征列。在 TensorFlow 中,特征列指的是同类特征集(例如,{男性, 女性}、{美国, 加拿大, 墨西哥} 等等)。组合指的是其中包含特征的新特征列,例如,{男性, 女性} × {美国, 加拿大, 墨西哥}。此新特征列将包含特征(男性, 加拿大)。如果您使用的是 TensorFlow,并让 TensorFlow 为您创建此组合,则此(男性, 加拿大)特征将存在于表示加拿大男性的样本中。请注意,您需要拥有大量数据,才能使用具有三个、四个或更多基准特征列的组合学习模型。

生成非常大的特征列的组合可能会过拟合。例如,假设您正在执行某种搜索,您的某个特征列包含查询中的字词,另一个特征列包含文档中的字词。这时,您可以使用“组合”方法将这些特征列组合起来,但最终会得到很多特征(请参阅第 21 条规则)。

处理文本时,有两种备用方法。最严苛的方法是点积。点积方法采用最简单的形式时,仅会计算查询和文档间共有字词的数量。然后将此特征离散化。另一种方法是交集:如果使用交集方法,当且仅当文档和查询中都包含“pony”一词时,才会出现一个特征;当且仅当文档和查询中都包含“the”一词时,才会出现另一个特征。

 21 条规则:您可以在线性模型中学习的特征权重数目与您拥有的数据量大致成正比。

 

关于模型的合适复杂度方面,有各种出色的统计学习理论成果,但您基本上只需要了解这条规则。在某次谈话中,曾有人表达过这样的疑虑:从一千个样本中是否能够学到任何东西,或者是否需要超过一百万个样本,他们之所以有这样的疑虑,是因为局限在了一种特定学习方式中。关键在于根据数据规模调整您的学习模型:

如果您正在构建搜索排名系统,文档和查询中有数百万个不同的字词,且您有 1000 个有标签样本,那么您应该在文档和查询特征、TF-IDF 和多个其他高度手动工程化的特征之间得出点积。您会有 1000 个样本,十多个特征。

如果您有一百万个样本,则使用正则化和特征选择(可能)使文档特征列和查询特征列相交。这样一来,您将获得数百万个特征;但如果使用正则化,则您获得的特征会有所减少。您会有千万个样本,可能会产生十万个特征。

如果您有数十亿或数千亿个样本,您可以使用特征选择和正则化,通过文档和查询标记组合特征列。您会有十亿个样本,一千万个特征。统计学习理论很少设定严格的限制,但能够提供很好的起点引导。

最后,请根据第 28 条规则决定要使用哪些特征。

 22 条规则:清理不再使用的特征。

未使用的特征会产生技术负债。如果您发现自己没有使用某个特征,而且将其与其他特征组合在一起不起作用,则将其从您的基础架构中删除。您需要让自己的基础架构保持简洁,以便尽可能快地尝试最有可能带来良好效果的特征。如有必要,他人可以随时将您的特征添加回来。

在决定要添加或保留哪些特征时,要考虑到覆盖率。即相应特征覆盖了多少个样本?例如,如果您有一些个性化特征,但只有8% 的用户有个性化特征,那效果就不会很好。

同时,有些特征可能会超出其权重。例如,如果您的某个特征只覆盖 1% 的数据,但 90% 具有该特征的样本都是正分类样本,那么这是一个可以添加的好特征。

对系统的人工分析

在继续探讨机器学习的第三阶段之前,请务必重点了解一下在任何机器学习课程中都无法学到的内容:如何检查现有模型并加以改善。这更像是一门艺术而非科学,但是有几个有必要避免的反模式。

 23 条规则:您不是典型的最终用户。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfxsz.html