我想创建一个深度学习模型,我知道如何使用简单的样本来实现,其中数据集的每一行代表一个样本,但我的样本是二维数字表。所有样本中的特征都是相同的,但它们的长度(行)因样本而异,如下表所示。
样品1:
特点1 | 特点2 | ... | 功能 | 结果 |
---|---|---|---|---|
第 1 行F1 | 第 1 行F2 | ... | 第 1 行Fn | S1 |
第2行F1 | 第2行F2 | ... | 第 2 行Fn | S1 |
... | ... | ... | ... | |
第 1000 行F1 | 第 1000 行F2 | ... | 第 1000 行Fn | S1 |
样本2:
特点1 | 特点2 | ... | 功能 | 结果 |
---|---|---|---|---|
第 1 行F1 | 第 1 行F2 | ... | 第 1 行Fn | S2 |
第2行F1 | 第2行F2 | ... | 第 2 行Fn | S2 |
... | ... | ... | ... | |
第 1200 行F1 | 第 1200 行F2 | ... | 第 1200 行Fn | S2 |
特征是相同的,例如假设特征1代表所有样本中的“姓名”,特征2代表“城市”等等;但每个样本中的行数各不相同。
我无法删除一些行以使样本长度相等,因为它们会影响结果。我也无法将行转换为新特征以将样本转换为一维数字数组,因为有太多行无法做到这一点。
(我正在使用 Python;我读到一种方法是使用 LSTM seq-2-seq 对样本进行编码和解码,但我不知道这是否是处理我的数据集的正确方法。)
提前致谢。
是否有深度学习模型可以像我的样本一样接受不同维度的输入?
我认为这种数据格式适合一维卷积网络。卷积网络能够处理长且不规则的序列,这两者都适用于这种情况。
我读到一种方法是使用 LSTM 对样本进行编码和解码
我认为超过几百步的序列长度对于 LSTM 来说被认为太长,因此 LSTM 不能直接在这里使用。但如果您首先使用卷积网络来压缩内容,那么您可以在该阶段使用 LSTM 进行后续操作。