在Matlab(神经网络工具箱+图像处理工具箱)中,我编写了一个脚本来从图像中提取特征并构建“特征向量”。我的问题是某些功能比其他功能拥有更多数据。我不希望这些功能比具有更少数据的其他功能更具意义。
例如,我可能有一个由9个元素组成的特征向量:
hProjection = [12,45,19,10];
vProjection = [3,16,90,19];
area = 346;
featureVector = [hProjection,vProjection,area];
如果我构建一个以featureVector作为输入的神经网络,该区域仅占输入数据的10%且不太重要。
我正在使用带有tansig传输功能(模式识别网络)的前馈反向传播网络。
我该如何处理?
答案 0 :(得分:3)
当您将输入数据呈现给网络时,要素矢量的每一列都将作为属性自身输入到输入图层。 您唯一需要担心的是每个的比例(即:我们通常将特征标准化为[0,1]范围)。
此外,如果您认为这些功能是相关的/相关的,您可能需要执行某种属性选择技术。在您的情况下,它取决于hProj / vProj功能的含义......
修改强>
我刚刚想到,作为 feature selection 的替代方案,您可以使用 dimensionality reduction 技术(PCA / SVD,因子分析,ICA, ...)。例如,factor analysis可用于提取hProj / vProj所依赖的一组潜在隐藏变量。因此,除了这8个功能之外,您还可以获得2个功能,使得原始8个功能是新两个功能的线性组合(加上一些错误术语)。有关完整示例,请参阅this page