SVM的详细说明可以参考http://blog.csdn.net/v_july_v/article/details/7624837
下面是对于SVM的一些浅显的认识,(可能是错误的)(关于epsilon-SVR)
从最终的判定结果去看:
令核函数前的系数为pi
取值其实是核函数K与系数pi的乘积累加的结果(忽略了b)。
对于核函数的一个理解可以是两个向量的相似程度,当越接近其值越大。如高斯核。
则系数pi则可以理解为对于训练向量xi的权重。即训练集中训练向量xi的重要程度。当pi不为0时,其为支持向量(SV),可以理解为其提供信息的。
由于核函数是训练之前就给定的,所以SVM的训练求解系数pi的。
SVM的训练方程:
在求解问题时,是求解每个特征的权重,而最终给出的是一个训练向量的权重。
工程应用上的一些注意点:
libSVM的来源:http://www.csie.ntu.edu.tw/~cjlin/libsvm/
1.对于下载过来的svm包中仅仅只有64位系统matlab对应的mexw64,对于32位系统需要自己重新生成,具体看matlab文件夹中的readme
2.在2010matlab中自带了svmtrain,所以如果调用函数的时候可能会调用到matlab自带的,所以需要将svmtrain的路径给屏蔽掉,即删除path
3.对于采用radial basis function: exp(-gamma*|u-v|^2)为核函数时,最好将vector转为[0,1]或者[-1,1]之间。简单讲一下:当gamma为1/num_features即默认值时,当vector为[0,1]时,其核函数取值范围为[0.3649,1]当vector为[-1,1]时,其核函数为[0.0183,1],而当vector为[0,100],其核函数范围为(0,1],无限接近于0,而且一个特征的差别比较大,将使得最终的结果的值变化非常大。
4.对于训练的特征,如果其拥有大量的一致性,即在空间上缩成一团,则在训练的效果将是比较好的。
5.在核函数的选择时,高斯核是作用是局部的。