Answers:
几乎所有预测模型都可以采用的一种方法是,首先训练模型并找到其准确性,然后为一个输入添加一些噪声,然后再次检查准确性。对每个输入重复此操作,并观察噪声如何使预测恶化。如果输入很重要,则由于噪声引起的额外不确定性将是有害的。
请记住,将噪声的方差设置为与相关输入的方差成比例。
当然,噪声是随机的,并且您不希望由于随机效应而使一个输入显得不重要。如果您的训练示例很少,请考虑为每个训练示例重复计算准确性变化,并每次添加新的噪声。
针对评论:
也可以通过完全删除变量来完成此分析,但是与添加噪声相比,这有一些缺点。
假设您的输入之一是恒定的,它就像一个偏差项,因此它在预测中可以发挥一定的作用,但不会增加任何信息。如果完全删除此输入,则预测将变得不那么准确,因为感知器获得了错误的偏差。即使输入不添加任何信息,这也使输入看起来对预测很重要。添加噪音不会导致此问题。如果您已将所有输入标准化为均值为零,那么这第一点就不成问题。
如果两个输入相关,则有关一个输入的信息将给出有关另一个的信息。如果仅使用一个相关的输入,那么一个模型可以很好地训练,因此您希望分析发现一个输入无用。如果您只删除了其中一个输入,则就像第一个要点一样,预测准确性将大大降低,这表明它很重要。但是,添加噪音不会导致此问题。
也许检查这篇论文:https : //arxiv.org/pdf/1712.08645.pdf
他们使用辍学来对要素进行排名。
...在这项工作中,我们在输入要素图层上使用了Dropout概念,并优化了相应的按要素分类的辍学率。由于每个特征都是随机删除的,因此我们的方法产生了与特征装袋相似的效果(Ho,1995),并且比其他非装袋方法(如LASSO)能够更好地对相关特征进行排名。我们将我们的方法与随机森林(RF),LASSO,ElasticNet,边际排名和几种技术相比较,以得出DNN的重要性,例如深度特征选择和各种启发式算法。
看一下这篇文章:https : //medium.com/@a.mirzaei69/how-to-use-deep-learning-for-feature-selection-python-keras-24a68bef1e33
和这篇论文:https : //arxiv.org/pdf/1903.07045.pdf
他们为将深层模型应用于特征选择提供了一个不错的方案。