我在使用OpenCV的SVM进行字母分类时,对特征向量的归一化有疑问。我有两种归一化特征向量的方法,需要找出哪种方法在逻辑上是正确的归一化方法?
方法1
假设我有以下3个特征向量
[2, 3, 8, 5 ] -> 图像1[3, 5, 2, 5 ] -> 图像2[9, 3, 8, 5 ] -> 图像3
特征向量中的每个值是通过将像素与核进行卷积得到的。
目前我正在查找每列的最大值和最小值,并基于此进行归一化。
在上述情况下,第一列是 [2, 3, 9]
min = 2max = 9
并基于此对第一列进行归一化。同样,其他列也进行归一化
方法2
如果核如下所示
[-1 0 1][-1 0 1][-1 0 1]
那么通过与上述核进行卷积可以得到的最大值和最小值如下(8位图像-强度范围:0-255)
max val = 765min val = -765
并使用上述最大值和最小值对每个值进行归一化?
哪种方法在逻辑上是正确的归一化方法(方法1还是方法2)?
回答:
标准做法是方法1(参见这个问题的答案)。我还建议你阅读这篇论文,作为SVM训练的一个很好的参考。
然而,在你的情况下,使用相同核计算的所有特征的范围将是相似的,方法1可能弊大于利(例如,通过增加几乎恒定特征的噪声)。
所以我的建议是:测试这两种方法,并评估性能,看看在你的情况下哪种方法效果最好。