我正在尝试使用张量流构建基于回归的M / L模型。
我正在尝试根据以下条件估算对象的预计到达时间:
对象在特定旅程中行驶。这可以表示为A-> B或A-> C或D-> F(点1->点2)。有500个特定旅程(在一组点之间)。 这些旅程并不完全是直线,而且每次旅程都是不同的(即所走路线的形状)。
我有两种方法可以解决此问题:
我的困境是,如果我使用选项1,这会增加复杂性,但会更加精确,因为每种模型都将针对每个旅程。
如果使用选项2,该模型将非常简单,但是我不知道它是否可以正常工作。我要添加的新功能是 originCode + destinationCode 。不幸的是,这些数字无法量化以表示任何数字意义或样式-它们只是定义旅程的文本(旅程A-> B,功能为“ AB”)。
有某种方法可以使用一个模型,并对功能进行分类,以便一个功能只是一个“分组”功能(以针对旅程分开训练数据。
答案 0 :(得分:0)
在ML中,我认为选项2通常更好。我们更喜欢通用模型,而不是为特定任务定制许多模型,因为这样做很危险地接近硬编码,而这正是我们试图通过使用ML摆脱的硬编码!
我认为,根据可用的训练数据和模型大小,可以使用一个热向量来描述模型的起点/终点。例如,假设我们有5分(ABCDE),并且我们将从位置B移到位置C,这可以用向量表示:
如0100000100
所示,前五个值对应于起点,而后五个值是目的地。如果您想将输入要素空间减少为:
,也可以将它们组合在一起。01100
正如Scott在评论中所说的,还有其他事情要考虑:
祝你好运!
答案 1 :(得分:0)
我倾向于倾向于个别模型。这是因为,对于沿给定路线和给定速度的给定位置,ETA是时间的确定性函数。如果一个人沿路线单调地靠近目标,那也是到目标距离的确定性函数。因此,没有信息可以从一条路径传递到另一条路径,即“集总”其参数没有先验优势。当然,这是假设您沿每条路线有多个“行程”数据(例如,每分钟收集一次(距离,速度)等)。例如,如果每个路径只有一个基准,则必须对参数进行集中。但是,在这种数据量低的情况下,我相信为“哪条路线”添加一个虚拟变量最终将无济于事,因为这会引入许多与数据集大小相媲美的参数。
请注意,您所描述的模型中的任何一个都可以处理新路线。我倾向于为每个路线建立一个单独的模型,并在数据量允许的情况下建立一个单独的模型,而该模型完全忽略了路线标识,只是为了处理新路线,直到有足够的数据为该路线建立模型为止。