我应该对输入 CNN 的数据使用什么预处理?

数据挖掘 机器学习 神经网络 深度学习 美国有线电视新闻网 预处理
2022-02-28 18:06:44

我有一个 shape 数据集,105 x 501 x 266其中105是数据的数量,是数据501 x 266的形状,1即 labels_dataset 是 shape 105 x 1

的每个值501 x 266 matrix都是一个复数。

所以它本质上变成501 * 266 * 2了(数字的实部和虚部)

现在我必须将这些数据提供给 CNN。我是训练网络的新手。所以需要知道我的数据是否是 CNN 的最佳形式。

我已经打印出数据集的最大值、最小值、标准差、实部平均值、虚部和幅度以获取更多信息:

max real = 0.186396, min real = -0.204375
max imag = 0.166608, min imag = -0.159017
max abs = 0.219019, min abs = 2.33527e-10
mean real = 4.01718e-10, complex = 6.79294e-15, abs = 8.82916e-05
std dev real = 0.000442753, complex = 0.000400677, abs = 0.000590573

这是输入到 CNN 的一种很好的数据形式吗?有哪些选项可以使它更合适?

2个回答

您应该为不同的目的标准化您的输入数据。正如你可以从这里读到的,规范化数据是为了加速优化。如果你有不同尺度的特征,你的优化器函数将花费太多时间来找到最佳点。假设您的年龄特征可以在 0 到 150(!)之间变化,而薪水可以从 0 变化到任何值,例如 500,000,000 美元。如果可能的话,您在 ML 模型中使用的优化算法将花费太多时间来为每个特征找到合适的权重。此外,如果您不对数据进行缩放,您的 ML 算法可能会过于关注具有大规模的特征

您没有明确指定您的任务,如果它的分类,您可能需要将标签转换为 one-hot 编码版本,或者如果可能,您可能需要使用词嵌入来为不同类添加逻辑距离。如果您的任务是回归任务,您可能需要标准化您的输出在回归问题中,通常也会对输出进行归一化,因为输出和输入特征的规模可能不同。

通常,将数据集中在 0 并且标准差为 1 会有所帮助。我会重新调整它,使其标准差为 1。除此之外,一切看起来都很好。