使用表征学习进行特征提取

时间:2020-12-29 14:50:20

标签: python feature-extraction feature-selection feature-engineering

我是机器学习的新手,我接到了一项任务,要求我使用表示学习(例如堆叠式自动编码器)从具有连续数据的数据集中提取特征。

然后我将这些提取的特征与数据集的原始特征结合起来,然后使用特征选择技术来确定进入我的预测模型的最终特征集。

谁能给我指点一些资源、演示或示例代码,让我了解如何开始这方面的工作?我很困惑从哪里开始,希望得到一些建议!

1 个答案:

答案 0 :(得分:1)

好的,假设您有(1000 个实例和 30 个特征)的输入。根据你告诉我们的,我会做的是:

训练一个自动编码器,一个压缩输入然后解压它的神经网络,它以你的原始输入为目标。压缩后的表示位于潜在空间中,并封装了人类无法直接访问的有关输入的信息。现在你可以在 tensorflow 或 pytorch 中找到这样的网络。 Tensorflow 更简单、更直接,因此它可能更适合您。我将提供此链接 (https://keras.io/examples/generative/vae/) 以获取可能为您完成这项工作的变分自动编码器。它具有 Conv2D 层,因此它对于图像数据的表现非常好,但您可以使用该架构。我不能告诉你更多,因为你没有为你的数据集提供更多信息。但是,重要的是以下几点:

在您的自动编码器经过正确训练并且您需要确保它(它充分重建输入)之后,您需要提取上述潜在输入(您会在链接中找到更多信息)。现在,让我们说 16 个数字,但你可以玩它。这 16 个数字旨在保留有关您输入的信息。你说你想将这些数字与你的输入结合起来,所以不妨这样做,最终得到 46 个输入特征。现在特征选择部分与选择对您的模型更有用的输入特征有关。这不是很有趣,您可能会发现更多信息 (https://towardsdatascience.com/feature-selection-techniques-in-machine-learning-with-python-f24e7da3f36e),并且选择特征的一种方法是通过训练具有不同特征子集的许多模型。请记住,PCA 等技术用于特征提取而不是选择。我无法提供任何可以完成整个事情的演示,但有一些资源可以提供帮助。请记住,您的自动编码器应该为每个训练示例返回 16 个数字。您的自动编码器仅针对您的火车数据进行训练,并将您的火车数据作为目标。