首页 > 解决方案 > 如何确定数据集中影响最大的输入变量?

问题描述

我有一个神经网络程序,旨在接收输入变量和输出变量,并使用预测数据根据预测数据预测输出变量应该是什么。运行这个程序后,我将得到一个输出向量的输出。例如,我的输入矩阵是 100 行和 10 列,我的输出矩阵是具有 100 个值的向量。如何确定 10 个变量(列)中的哪一个对我的输出影响最大?

我已经在我的每个变量(列)和我的输出之间进行了相关性分析,并创建了每个变量和输出之间最高相关性的列表,但我想知道是否有更好的方法来解决这个问题。

标签: pythoncorrelation

解决方案


如果你想知道的是模型选择,而不是研究你的特征与你的目标的相关性那么简单。要深入了解模型选择,我建议您阅读The Elements Statistical Learning的第 7 章。如果您正在寻找的是如何解释您的网络,那么您也将获得一种享受,我建议您先阅读这篇文章,尽管我自己不会深入探讨这个问题。

模型选择的朴素方法:

有很多方法可以做到这一点。
天真的方法是估计所有可能的模型,所以每个特征组合。由于您有 10 个特征,因此在计算上是不可行的。

另一种方法是取一个你认为是一个很好的预测变量的变量,然后训练只在那个变量上建模。计算训练数据的误差。随机取另一个变量,重新训练模型并重新计算训练数据的误差。如果它丢弃错误,请保留该变量。否则丢弃它。继续使用所有功能。

第三种方法是相反的。从在所有特征上训练模型开始,然后依次删除变量(一种不太天真的方法是删除你直觉认为没有什么解释能力的变量),计算训练数据的误差并比较以了解你是否保留了该特征。

有数百万种方法可以解决这个问题。我已经介绍了三个最简单的,但同样,您可以深入研究这个主题并找到各种不同的信息(这就是为什么我强烈建议您阅读该章:))。


推荐阅读