机器学习的静态特征和动态特征


在设计机器学习系统时,了解静态和动态特征之间的区别很重要,因为它可能会成败您将 ML 模型发布到生产中的努力。 

静态特征:

  • 这些特征是由不经常变化的数据产生的。
  • 这些数据很可能与你的数据模型中的维度相似。
  • 数据以一定的时间间隔被刷新。例如,每2小时,每天。
  •  例子。仓库中的库存属性。

动态特征:

  • 数据经常变化,或者可能暂时存在一个背景。
  • 数据将类似于你的数据模型中的事实或事件。
  • 特征是通过聚合事件或事实实时生成的。
  •  例子。用户在过去2分钟内的点击次数。

案例:

  1. 所有的数据最终都是实时产生的,所以在这个例子中,我们从CDC流中收集数据,或者直接从应用中发射事件。我们将这些数据推送到Kafka主题。
  2. 数据被推送到一个对象存储中,以加载到数据仓库。
  3. 数据被加载到数据仓库中,进行转换。
  4. 我们对数据仓库内的数据进行建模,为特征工程做准备。
  5. 我们将所需的数据检索到ML管道中,该管道生成一个模型工件并将其推送到模型注册中心。
  6. 我们执行相同的特征工程逻辑,并将批量特征推送到低延迟的存储中,如Redis。
  7. 如果我们需要实时动态特征--我们用Flink应用实时执行ML管道中的特征工程。
  8. 我们将生成的特征推送到Redis。

现在我们可以从模型注册表中部署模型并从 Redis 中获取所有特征了