use*_*593 15 machine-learning svm computer-vision libsvm
我正在使用libSVM.假设我的功能值采用以下格式:
instance1 : f11, f12, f13, f14
instance2 : f21, f22, f23, f24
instance3 : f31, f32, f33, f34
instance4 : f41, f42, f43, f44
..............................
instanceN : fN1, fN2, fN3, fN4
Run Code Online (Sandbox Code Playgroud)
我认为可以应用两种缩放.
缩放每个实例向量,使得每个向量具有零均值和单位方差.
( (f11, f12, f13, f14) - mean((f11, f12, f13, f14) ). /std((f11, f12, f13, f14) )
Run Code Online (Sandbox Code Playgroud)将上述矩阵的每个列缩放到一个范围.例如[-1,1]
根据我对RBF内核(libSVM)的实验,我发现第二个缩放(2)将结果提高了大约10%.我不明白为什么(2)给我一个改进的结果.
任何人都可以解释一下应用缩放的原因是什么,为什么第二个选项会给我带来改进的结果?
小智 19
标准的做法是使每个维度(或属性或列(在您的示例中))具有零均值和单位方差.
这使得SVM的每个维度具有相同的幅度.来自http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf:
缩放的主要优点是避免较大数值范围内的属性占主导较小数值范围的属性.另一个优点是在计算过程中避免数字困难.因为内核值通常取决于特征向量的内积,例如线性内核和多项式内核,所以大的属性值可能会导致数值问题.我们建议将每个属性线性缩放到[-1,+ 1]或[0,1]范围.
| 归档时间: |
|
| 查看次数: |
16129 次 |
| 最近记录: |