如何处理可能是可变长度的特征向量?

数据挖掘 特征工程 特征构造 特征
2022-02-22 16:05:53

我想训练一个机器学习模型,它有几个特征作为 X[] 的输入和一个输出作为 Y。例如,每个样本都有一个这样的数据框:X[0], X[1], X[2], X[3], X[4], Y

假设一个样本如下数据只有一个值:X[0], X[1], X[2], X[4], Y这是正常的机器训练问题。

但是现在,如果我想设置 X[3] 多个值,例如示例 1 数据是:

X[0] | X[1] | X[2] |         X[3]         | X[4] | Y
 10  |  5   |   6  | [10, 20, 30, 40, 50] |  7   | 90

样本 2 中的数据为:

X[0] | X[1] | X[2] |         X[3]         | X[4] | Y
 11  |  7   |   5  | [20, 30, 40, 50, 60] |  3   | 80

这是否可以遵循正常的机器训练过程并获得一个模型,该模型可以使用其他示例计算样本,例如:

X[0]   | X[1] |  X[2]  |         X[3]         | X[4] | Y
 10.5  |  6   |   5.5  | [15, 25, 35, 45, 55] |  5   | ???

如果每个 X[3] 的长度不长,则可以将 X[3] 划分为多个新特征,但如果 X[3] 的长度很长(len > 1000)且分布不同,则使得二进制也导致了太多的新特性。有什么方法可以直接处理 X[3] 而不添加新功能?

非常感谢您的帮助。

1个回答

有很多选择。

处理可变长度向量的最常用方法是填充向量。将零作为占位符添加到较短的长度向量,直到所有向量的长度相同。然后可以将其建模为类似于任何其他特征向量。

另一种选择是采用向量的范数这将产生一个可以在机器学习模型中使用的标量。

最终,处理可能是可变长度的特征向量的方式取决于特征表示的内容。