是否可以使用自动编码器根据功能的重要性对功能进行排名?

Is it possible to rank the features based on their importance using autoencoder?

我是第一次使用自动编码器。我已经知道它 降低维度 输入数据集。我不确定这到底是什么意思。它是否 select 来自输入特征的一些特定特征?是否可以使用自动编码器对特征进行排名?

我的数据如下所示:

age   height        weight     working_hour     rest_hour   Diabetic
54    152            72           8                 4         0
62    159            76           7                 3         0
85    157            79           7                 4         1
24    153            75           8                 4         0
50    153            79           8                 4         1
81    154            80           7                 3         1

特征是年龄、身高、体重、working_hour 和 rest_hour。目标列是糖尿病。这里我有 5 个特征,我想使用更少的特征。这就是为什么我想实现自动编码器以 select 预测的最佳特征。

一般情况下,普通自动编码器 (AE) 是不可能的。 AE 执行到隐藏维度并返回原始维度的非线性映射。但是,您没有机会解释此映射。您可以使用受限 AE,但我不建议您在第一次使用 AE 时使用它。

但是,您只想减少输入维度。您可以做的是训练嵌入。您在瓶颈中使用所需数量的节点训练 AE,并将编码器的输出用作其他算法的输入。

您可以将 AE 拆分为两个功能:编码器 (E) 和解码器 (D)。当 x 是您的输入时,您的前向传播就是 D(E(x))。完成 AE 训练后(具有合理的重建错误!),您仅预测 E(x) 并将其馈送到您的其他算法中。

另一种方法是 PCA,它基本上是线性 AE。您可以定义隐藏维度的最大数量并评估它们对重建错误的利害关系。此外,它更容易实现,您不需要了解 tensorflow 或 pytorch。