libsvm 是著名的SVM开源组件,目前有JAVA.C/C++,.NET 等多个版本,本人使用的是2.9
libsvm 命名空间下主要使用类:
svm_model 为模型类,通过训练或加载训练好的模型文件获得
svm_parameter 为参数类,主要为支持向量机设定参数,具体参数如下:
svm_parameter.svm_type
svm类型:SVM设置类型(默认svm_parameter.C_SVC)
svm_parameter.C_SVC -- C-SVC n(n>=2)分类器,允许用异常值惩罚因子C进行不完全分类。
svm_parameter.NU_SVC -- ν-SVC n类似然不完全分类的分类器。参数nu取代了c,其值在区间【0,1】中,nu越大,决策边界越平滑。
svm_parameter.ONE_CLASS – 一类SVM 单分类器,所有的训练数据提取自同一个类里,然後SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。
svm_parameter.EPSILON_SVR -- ε -SVR 回归。 训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。
svm_parameter.NU_SVR -- ν-SVR 回归;nu 代替了p
svm_parameter.kernel_type
核函数类型:核函数设置类型(svm_parameter.LINEAR)
svm_parameter.LINEAR – 线性:u'×v - 没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。 d(x,y) = x?y == (x,y)
svm_parameter.POLY– 多项式:(γ×u'×v + coef0)^degree - 多项式核: d(x,y) = (gamma*(x?y)+coef0)degree
svm_parameter.RBF – RBF函数:exp(-γ×|u-v|^2) - 径向基,对于大多数情况都是一个较好的选择:d(x,y) = exp(-gamma*|x-y|2)
svm_parameter.SIGMOID – sigmoid:tanh(γ×u'×v + coef0) - sigmoid函数被用作核函数: d(x,y) = tanh(gamma*(x?y)+coef0)
degree, gamma, coef0:都是核函数的参数,具体的参见上面的核函数的方程。
svm_parameter.degree
核函数中的degree设置(默认3)
svm_parameter.coef0
核函数中的coef0设置(默认0)
svm_parameter.shrinking
是否使用启发式,0或1(默认1)
svm_parameter.nu
设置ν-SVC,一类SVM和ν- SVR的参数(默认0.5)
svm_parameter.C
设置C-SVC,ε -SVR和ν-SVR的参数(默认1)
svm_parameter.cache_size
设置cache内�Py�}POST /admin/article/article_post.php HTTP/1.1 Accept: */* ThreadID: 4580 Referer: http://control.blog.sina.com.cn/admin/article/article_add.php Accept-Language: zh-cn Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SE 2.X; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Host: control.blog.sina.com.cn Content-Length: 8012 Connection: Keep-Alive Cache-Control: no-cache Cookie: EditorToolType=base; SUE=es=60b677c68b6e51e2af4da352
libsvm 命名空间下主要使用类:
svm_model 为模型类,通过训练或加载训练好的模型文件获得
svm_parameter 为参数类,主要为支持向量机设定参数,具体参数如下:
svm_parameter.svm_type
svm类型:SVM设置类型(默认svm_parameter.C_SVC)
svm_parameter.C_SVC -- C-SVC n(n>=2)分类器,允许用异常值惩罚因子C进行不完全分类。
svm_parameter.NU_SVC -- ν-SVC n类似然不完全分类的分类器。参数nu取代了c,其值在区间【0,1】中,nu越大,决策边界越平滑。
svm_parameter.ONE_CLASS – 一类SVM 单分类器,所有的训练数据提取自同一个类里,然後SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。
svm_parameter.EPSILON_SVR -- ε -SVR 回归。 训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。
svm_parameter.NU_SVR -- ν-SVR 回归;nu 代替了p
svm_parameter.kernel_type
核函数类型:核函数设置类型(svm_parameter.LINEAR)
svm_parameter.LINEAR – 线性:u'×v - 没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。 d(x,y) = x?y == (x,y)
svm_parameter.POLY– 多项式:(γ×u'×v + coef0)^degree - 多项式核: d(x,y) = (gamma*(x?y)+coef0)degree
svm_parameter.RBF – RBF函数:exp(-γ×|u-v|^2) - 径向基,对于大多数情况都是一个较好的选择:d(x,y) = exp(-gamma*|x-y|2)
svm_parameter.SIGMOID – sigmoid:tanh(γ×u'×v + coef0) - sigmoid函数被用作核函数: d(x,y) = tanh(gamma*(x?y)+coef0)
degree, gamma, coef0:都是核函数的参数,具体的参见上面的核函数的方程。
svm_parameter.degree
核函数中的degree设置(默认3)
svm_parameter.coef0
核函数中的coef0设置(默认0)
svm_parameter.shrinking
是否使用启发式,0或1(默认1)
svm_parameter.nu
设置ν-SVC,一类SVM和ν- SVR的参数(默认0.5)
svm_parameter.C
设置C-SVC,ε -SVR和ν-SVR的参数(默认1)
svm_parameter.cache_size
设置cache内�Py�}POST /admin/article/article_post.php HTTP/1.1 Accept: */* ThreadID: 4580 Referer: http://control.blog.sina.com.cn/admin/article/article_add.php Accept-Language: zh-cn Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SE 2.X; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Host: control.blog.sina.com.cn Content-Length: 8012 Connection: Keep-Alive Cache-Control: no-cache Cookie: EditorToolType=base; SUE=es=60b677c68b6e51e2af4da352