【问题标题】:Multiple trained models vs Multple features and one model多个训练模型 vs 多个特征和一个模型
【发布时间】:2018-10-10 23:39:43
【问题描述】:

我正在尝试使用 tensorflow 构建基于回归的 M/L 模型。

我正在尝试根据以下内容估算对象的 ETA

  • 与目标的距离
  • 与目标的距离(X 分量)
  • 与目标的距离(Y 分量)
  • 速度

对象在特定的旅程中旅行。这可以表示为从 A->B 或从 A->C 或从 D->F (POINT 1 -> POINT 2)。有 500 个特定的旅程(在一组点之间)。 这些旅程并不完全是直线,而且每条旅程都是不同的(即所走路线的形状)。

我有两种方法可以解决这个问题:

  1. 我可以拥有 500 个具有 4 个特征和一个标签的不同模型(训练 ETA 数据)。
  2. 我可以拥有 1 个具有 5 个特征和一个标签的模型。

我的困境是,如果我使用选项 1,这会增加复杂性,但会更准确,因为每个模型都特定于每个旅程。

如果我使用选项 2,模型将非常简单,但我不知道它是否能正常工作。我要添加的新功能是 originCode+ destinationCode。不幸的是,这些都无法量化以产生任何数字意义或模式——它们只是定义旅程的文本(旅程 A->B,特征是“AB”)。

有什么方法可以让我使用一个模型,并对特征进行分类,使一个特征只是一个“分组”特征(以便将训练数据与旅程分开。

【问题讨论】:

  • 你对路线“形状”有任何了解吗?似乎可以从中收集到一些有趣的功能。
  • 另外,您的数据中每条路线有多少“行程”?
  • 看来“到目前为止在路线上花费的时间”也很有用。

标签: tensorflow machine-learning


【解决方案1】:

在 ML 中,我认为选项 2通常是更好的选择。我们更喜欢通用模型,而不是为特定任务定制许多模型,因为这非常接近硬编码,而这正是我们试图通过使用 ML 来摆脱的!

我认为,根据您可用的训练数据和模型大小,可以使用 one-hot 向量来描述模型的起点/终点。例如,假设我们有 5 个点(ABCDE),我们从位置 B 到位置 C,这可以用向量表示:

0100000100

如中,前五个值对应于起始点,而后五个值对应于目的地。如果您想将输入特征空间减少到:

01100

正如斯科特在 cmets 中所说,还有其他事情需要考虑:

  • 您有多少数据?也许这样的特征空间会太大,我不能确定。如果您有足够的数据,那么模型将直观地学习数据点之间的一般距离(不是实际上,而是数据中的固有距离)。 如果您有足够的数据,您甚至可以准确预测您没有数据的两点之间!
  • 如果归结为没有足够的数据,那么寻找旅程的代表性特征将开始使用,即。旅程的长度、旅程的形状、行进的海拔等。此外,原点行进的距离的度量也很有用。

祝你好运!

【讨论】:

    【解决方案2】:

    我会倾向于个人模型。这是因为,对于沿给定路线和恒定速度的给定位置,ETA 是时间的确定性函数。如果一个人沿着路线单调地靠近目标,它也是到目标距离的确定性函数。因此,没有信息可以从一条路线传输到下一条路线,即“集总”它们的参数不会提供先验优势。当然,这是假设您在每条路线上都有几次“旅行”价值的数据(即每分钟收集一次(距离、速度)或类似的数据)。例如,如果每条路线只有一个数据,那么将参数集中在一起是必须的。但是,在这种低数据情况下,我相信为“哪条路线”添加一个虚拟变量最终将是徒劳的,因为这会引入许多与您的数据集大小相媲美的参数。

    附带说明,您描述的模型都不能处理新路线。在数据量允许的情况下,我倾向于为每条路线构建一个单独的模型,以及一个完全忽略路线标识的单一模型,仅用于处理新路线,直到有足够的数据可用于为该路线构建模型。

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 2017-05-27
      • 1970-01-01
      • 2020-06-27
      • 2019-12-25
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多