在此所说的归一化是指对特征的每一维度分别做归一化. 这里的归一化又称为标准化.SVM是线性分类器,貌似不对特征做归一化并不会对最终的实验结果产生较大影响. 可是在实验中可发现, 如果不同维特征量级相差过大,我们很可能会得到很差的测试结果. 有些人的看法很不错,认为在机器学习中对特征做归一化目的有:
1,避免训练得到的模型权重过小,引起数值计算不稳定;
2,使参数优化时能以较快的速度收敛.
归一化时可以采用对应维度均值与方差.如果采用matlab实现特征的标准化,可以利用命令zscore,.
Z = zscore(X)
[Z,mu,sigma] = zscore(X)
[...] = zscore(X,1)
[...] = zscore(X,flag,dim)
其中,X每一行对应一个样本,每一列对应一维特征.
参考网址:
http://stats.stackexchange.com/questions/77350/perform-feature-normalization-before-or-within-model-validation
http://stackoverflow.com/questions/20506682/normalizing-feature-values-for-svm