如何使用神经网络的隐藏层输出进行特征工程?

数据挖掘 机器学习 神经网络 特征选择 特征工程
2022-01-24 15:57:19

我想知道我们如何使用经过训练的神经网络模型的权重或隐藏层输出来解决简单的分类问题,然后将它们用于特征工程并在新的工程特征上实现一些提升算法。

假设,如果我们有 100 行 5 个特征 (100x5) 矩阵。

data:
      X                 Y
x1,x2,x3,x4,x5          y1  y2
0,1,2,3,4               0   1
3,2,5,6,4               1   0

网络:2 层,输入和 softmax 输出,使用交叉熵编译。

我们可以利用上述网络的训练权重或隐藏层输出并将其用于原始数据集的特征工程,然后在修改后的数据集上应用一些增强算法,它会提高准确性吗?

1个回答

TL;DR: 是的。你可以(iiuc)

更长的版本: 事实上,这就是 Word2Vec 和 AutoEncoders 等许多流行算法所做的。(关于隐藏层输出)

Word2Vec:给定一个输入词('chicken'),模型尝试预测相邻词('wings')它的任务。

最后,我们只删除最后一层,并使用单词的隐藏层表示作为它的维向量。N

嵌入式表示是我们使用的

所以基本上,我们对词向量进行了特征工程。

对于自动编码器,它以作为输入并尝试再次预测,在此过程中学习输入信号 X 的潜在表示。L2 层中的输入隐藏表示用于其他任务。(注:这里X和X帽子是一样的) XXL2在此处输入图像描述

(实际上,您可以使用 CNN 学习到的特征并将它们输入 SVM 并获得良好的结果)

与您相关: 您可以在给定数据上训练您的模型,最后切断最后一个预测层并将中间层的输出用作特征。我相信这应该可行,因为它适用于我上面解释的许多任务。

来源:

  1. 通过在 Word2Vec 中实现它来学习 Word2Vec:我的一篇解释 word2vec 的文章。(这里无耻的自我广告,但我觉得这篇文章很好而且相关)

  2. Andrew Ng 的无监督特征学习网站