tensorflow - 多个训练模型 vs 多个特征和一个模型
问题描述
我正在尝试使用 tensorflow 构建基于回归的 M/L 模型。
我正在尝试根据以下内容估算对象的 ETA:
- 与目标的距离
- 与目标的距离(X 分量)
- 与目标的距离(Y 分量)
- 速度
该物体在特定的旅程中旅行。这可以表示为从 A->B 或从 A->C 或从 D->F (POINT 1 -> POINT 2)。有 500 个特定的旅程(在一组点之间)。这些旅程并不完全是直线,而且每条旅程都是不同的(即所走路线的形状)。
我有两种方法可以解决这个问题:
- 我可以拥有 500 个具有 4 个特征和一个标签的不同模型(训练 ETA 数据)。
- 我可以拥有 1 个具有 5 个功能和一个标签的模型。
我的困境是,如果我使用选项 1,这会增加复杂性,但会更准确,因为每个模型都特定于每个旅程。
如果我使用选项 2,模型将非常简单,但我不知道它是否能正常工作。我要添加的新功能是originCode + destinationCode。不幸的是,这些都无法量化以产生任何数字意义或模式 - 它们只是定义旅程的文本(旅程 A-> B,并且功能将是“AB”)。
有什么方法可以让我使用一个模型,并对特征进行分类,使一个特征只是一个“分组”特征(以便将训练数据与旅程分开。
解决方案
在 ML 中,我相信选项 2通常是更好的选择。我们更喜欢通用模型,而不是为特定任务定制许多模型,因为这非常接近硬编码,而这正是我们试图通过使用 ML 来摆脱的!
我认为,根据您可用的训练数据和模型大小,可以使用 one-hot 向量来描述模型的起点/终点。例如,假设我们有 5 个点 (ABCDE),我们从位置 B 到位置 C,这可以用向量表示:
0100000100
例如,前五个值对应于起点,而后五个值对应于目的地。如果您想将输入特征空间减少到:也可以将这些组合起来:
01100
正如斯科特在评论中所说,还有其他事情需要考虑:
- 你有多少数据?也许这样的特征空间会太大,我不能确定。如果您有足够的数据,那么模型将直观地学习数据点之间的一般距离(不是实际上,而是数据中的固有距离)。如果您有足够的数据,您甚至可以准确预测您没有数据的两点之间!
- 如果归结为没有足够的数据,那么寻找旅程的代表性特征将开始使用,即。旅程的长度,旅程的形状,行进的海拔等。从起点行进的距离的度量也是有用的。
祝你好运!
推荐阅读
- go - http.NewRequest 只允许一个重定向
- python - 如何在heroku中添加“json”库,也用于“时间”
- python - 在某个时间戳之前从 SQL lite 数据库中的所有表中删除记录
- reporting-services - 按日期和时间值从 SSRS 中的 DateTime 值以 24 小时格式分组
- r - 我需要帮助将值从一个向量放入 R 中的另一个向量
- c++ - C++ 中的编译器版本与预编译的 C 库
- c++ - 移动(或复制)捕获可变参数模板参数到 lambda
- python-3.x - 1 我在 google colab 上的这些代码行有问题
- python - 如何将 Pgzero(pygame 零)导出到 .exe?
- r - R中事件的概率