处理可变长度的特征向量

数据挖掘 机器学习 回归 线性回归
2021-09-23 09:43:41

如何处理大小可变的特征向量?

假设每个对象,我计算 4 个特征。为了解决某个回归问题,我可能有 1 个、2 个或更多这些对象(不超过 10 个)。因此,特征向量的长度为 4*N。这通常是如何解决的?

对象代表观察者的物理对象(例如其他人)。对于时间片,对象可以横向、纵向放置,具有一定的速度和一定的航向(4 个特征)。试图解决:一个人应该在哪里感到最舒服。在某些情况下,只有 1 个对象,但可以有 2 个或更多。

免责声明:我对 ML 方法的了解有限。几年前我在大学上过课,并在网上学习了 Andrew Ng 的 ML 课程作为进修,但在其他方面没有跟上进度。一个开始的地方看是赞赏。

2个回答

首先欢迎来到社区!

关于这个问题,我会说存在误解。您说您“每个对象”计算 4 个特征。这意味着每个数据点(对象)都用 4 个特征来描述。所以特征的长度没有区别。请注意,我这样说是因为“您为样本/数据点/对象计算特征”,所以这里的每个对象都是 4 维空间中的一个点。如果你的意思是别的,请纠正我。

换句话说,您有一个包含一些行(对象数)和 4 列的数据矩阵。

关于整个概念更笼统。不,这不是创建标准数据的有效方法。在标准数据中,列数始终相同,因为如果对象定义在不同的空间中,则无法研究它们。许多 ML 算法也适用于标准数据,这意味着如果特征向量的大小不同,您将无法使用它们。可以说更具概念性,您为对象计算的特征大小不能变化。如何?我想从人脸中提取特征。我说眼睛的颜色眼睛之间的距离和耳朵之间的距离。我有 3 个特征,对于任何来我研究的人,我都会计算出相同的特征集。如果特征提取过程是标准的,那么大小如何不同?

但是在非标准数据中,您最终可能会遇到这种情况。在这种情况下,您可以标准化这些功能。例如,作为一个小例子,想象具有不同数量的节点和边的不同图。您可以用平均度数平均路径长度节点数来描述每个图然后用 3 个特征描述每个图,您可以将其输入算法。

但是,如果您不想标准化数据(因为它通常会丢失信息),您需要找到量身定制的分析方法,您需要针对这些方法详细解释您的数据。

我希望它有帮助!

祝你好运!

好的,听起来您正在尝试将可变数量的对象的位置和速度编码到每个训练示例中。

一种方法是每个训练示例使用两个特征平面作为卷积神经网络的通道输入。第一个特征平面对每个对象在该对象位置的速度的 x 分量进行编码,第二个特征平面对 y 分量进行相同的编码。

由于您说位置是相对于观察者的,我假设观察者总是在同一个位置,所以不需要在输入中添加任何额外的信息。

我还将假设两个对象不能在同一个地方。

例如,假设您在一个 3x3 的世界中,并且您在 (0,1) 和 (2,2) 处有物体,速度分别为 (3,2) 和 (1,7)。此输入示例可以编码为:

[ 0 0 0
  3 0 0
  0 0 1 ]

[ 0 0 0
  2 0 0
  0 0 7 ]

如您所见,无论存在多少对象,输入大小始终相同。更多的对象只会导致更多的非零条目。

我建议使用卷积网络,因为它们特别适用于空间问题,但如果您想先尝试普通神经网络,则可以将输入形状从 (m,3,3,2) 展平到 (m,12)。