我有一个神经网络程序,旨在接收输入变量和输出变量,并使用预测数据根据预测数据预测输出变量应该是什么。运行该程序后,我将获得输出向量的输出。比方说,我的输入矩阵是100行10列,而我的输出矩阵是具有100个值的向量。如何确定我的10个变量(列)中哪个对我的输出影响最大?
我已经在每个变量(列)与输出之间进行了相关性分析,并创建了每个变量与输出之间具有最高相关性的列表,但我想知道是否有更好的方法可以解决此问题。
答案 0 :(得分:0)
如果您想知道的是模型选择,这并不像研究特征与目标的相关性那么简单。有关模型选择的深入,详尽的解释,建议您阅读The Elements Statistical Learning的第7章。如果您要寻找的是如何解释网络,那么您也可以请客,我建议阅读this入门文章,尽管我不会。不要自己去解决这个问题。
有很多方法可以做到这一点。
天真的方法是估计所有可能的模型,因此是功能的每种组合。由于您具有10个功能,因此在计算上不可行。
另一种方法是采用一个您认为是好的预测变量的变量,并训练它仅对该变量建模。计算训练数据上的错误。随机取另一个变量,重新训练模型并重新计算训练数据上的误差。如果它消除了错误,则保留变量。否则将其丢弃。继续使用所有功能。
第三种方法则相反。首先对模型的所有特征进行训练,然后依次删除变量(一种较幼稚的方法是删除您直觉上认为没有解释力的变量),计算训练数据上的误差,然后进行比较以了解是否保留特征。
有数百万种方法可以解决此问题。我已经介绍了其中三个最简单的方法,但是再次重申,您可以真正深入该主题并找到各种不同的信息(这就是为什么我强烈建议您阅读该章的原因:))。