我在使用Matlab的fitnet神经网络尝试拟合一些输入以预测输出,但我关心的是在神经网络训练之前,作为预处理步骤,找出哪个输入候选向量与输出相关性最高。
在下图中,黄色的输出有五个输入候选,我需要从中选择。Matlab中我应该使用什么命令,以及如何准备这些数据(重复大约1000次),以便我能清楚地看到输入候选与输出之间的相关性。
回答:
要找出给定特征与目标变量之间的相关性,你可以使用R = corrcoef(A,B)
,但是… 不要这样做!。
这个过程毫无意义,而且可能会对整个过程造成伤害。你将从数据中移除部分信息,只保留那些与目标变量有独立、线性关系的特征。随后,你将应用一个高度非线性的模型,该模型利用共现和特征相关性。这两个步骤是完全不兼容的。唯一有效的关系是 – 如果你的数据非常简单,可以用线性模型很好地拟合,那么神经网络也能工作。但如果是这样的话,首先就没有必要使用神经网络,只需应用线性回归。因此:除非你必须,否则不要进行特征选择。尝试在不进行特征选择的情况下构建一个好的模型,如果你必须移除一些特征(也许获取这些特征的过程很昂贵?),使用事后模型分析来移除该模型未使用的特征。如果没有必要,不要将你的问题分解为多个独立的过程(除非你能证明这种分解不会损害过程,但在特征选择+回归器的情况下,这不是真的,因为你无法在没有训练的回归器的情况下构建有效的特征选择监督)。