1

在 Matlab(神经网络工具箱 + 图像处理工具箱)中,我编写了一个脚本来从图像中提取特征并构造一个“特征向量”。我的问题是某些功能比其他功能拥有更多的数据。我不希望这些功能比其他数据更少的功能更重要。

例如,我可能有一个由 9 个元素组成的特征向量:

hProjection = [12,45,19,10];
vProjection = [3,16,90,19];
area = 346;

特征向量 = [hProjection, vProjection, area];

如果我构建一个以 featureVector 作为输入的神经网络,则该区域仅占输入数据的 10%,并且不那么重要。

我正在使用具有 tansig 传递函数(模式识别网络)的前馈反向传播网络。

我该如何处理?

4

1 回答 1

3

当您将输入数据呈现给网络时,特征向量的每一列都会作为属性本身馈送到输入层。您需要担心的唯一偏差是每个的规模(即:我们通常将特征标准化为 [0,1] 范围)。

此外,如果您认为这些特征是相关的/相关的,您可能需要执行某种属性选择技术。在您的情况下,这取决于 hProj/vProj 功能的含义之一...


编辑:
我突然想到,作为特征选择的替代方法,您可以使用降技术(PCA/SVD,因子分析,ICA,...)。例如,因子分析可用于提取 hProj/vProj 所依赖的一组潜在隐藏变量。因此,代替这 8 个特征,您可以获得 2 个特征,使得原来的 8 个特征是新的两个特征的线性组合(加上一些误差项)。有关完整示例,请参阅此页面

于 2009-09-30T02:51:57.863 回答