如何规范化用于从图像中提取特征的向量?

时间:2017-06-18 13:32:49

标签: image matlab vector normalize

我的实际向量有110个元素,我将用它来从matlab中提取图像中的特征,我采用了这个(tb)来简化

tb=[22.9 30.0 30.3 27.8 24.1 28.2 26.4 12.6 39.7 38.0];
normalized_V = tb/norm(tb);
I = mat2gray(tb);

对于normalized_v我得到0.2503 0.3280 0.3312 0.3039 0.2635 0.3083 0.2886 0.1377 0.4340 0.4154

I对于0.3801 0.6421 0.6531 0.5609 0.4244 0.5756 0.5092 0 1.0000 0.9373我得到了{{1}}如果这两种方法中的任何一种我应该使用哪一种,为什么,我应该在提取后将特征向量转换为1个元素以获得更好的训练,或者将其保留为110元素向量。

1 个答案:

答案 0 :(得分:1)

可以通过多种方式执行规范化,例如:

  • 将矢量标准化为0到1之间。在这种情况下,只需使用:(tb-min(tb))/max(tb)
  • 将最高点设为1。在这种情况下,只需使用:tb/max(tb)(这是之前使用过的方法)。
  • 将均值0和标准差设为1。这是将返回值用作分类过程中的功能的最常用方法,因此,我认为它是您的那个立即使用:zscore(tb)(或(tb-mean(tb))/std(tb))。

所以,你的最终价值是:

zscore(tb)

ans =
-0.6664
 0.2613
 0.3005
-0.0261
-0.5096
 0.0261
-0.2091
-2.0121
 1.5287
 1.3066

修改

关于你的第二个问题,这取决于观察的数量。每个分类器都使用MxN数据矩阵和Mx1标签向量作为输入。在这种情况下,M表示观察次数,而N表示要素的数量。通常,为了避免过度拟合,建议使用少于观察数量的十分之一的许多特征(即,观察的数量必须是M > 10N)。

因此,在您的情况下,如果您使用整套110套特征,则应至少观察1100次,否则可能会出现过度拟合问题。