LIBSVM中的SVM类型、核函数及相关参数简介

来源:互联网 发布:照片处理器软件下载 编辑:程序博客网 时间:2024/06/05 06:55

使用LIBSVM训练时,要用到svm-train,svm-train默认是使用C-SVC和RBF核函数,使用方法如下:

svm-train [可选参数] 训练文件 [模型文件]

可选参数:
-s svm_type : set type of SVM (default 0)//-s用于设置SVM的类型
0 -- C-SVC (multi-class classification)//硬间隔及软间隔或核函数,最基本的SVM,C表示惩罚因子,C越大表示对错误分类的惩罚越大
1 -- nu-SVC (multi-class classification)//和C_SVC相同
2 -- one-class SVM//不需要类标号,用于支持向量的密度估计和聚类.
3 -- epsilon-SVR(regression)//回归
4 -- nu-SVR (regression)//回归
-t kernel_type : set type of kernel function (default 2)
0 -- linear: u'*v//线性核函数   不需要参数
1 -- polynomial: (gamma*u'*v + coef0)^degree   // 多项式核函数,三个参数,(gamma、coef0、degree)
2 -- radial basis function: exp(-gamma*|u-v|^2)// 径向基函数,一个参数(gamma)
3 -- sigmoid: tanh(gamma*u'*v + coef0)    // sigmoid核函数,两个参数(gamma、coef0) 
4 -- precomputed kernel (kernel values in training_set_file)
-d degree : set degree in kernel function (default 3)            //用于多项式核函数,默认值是3
-g gamma : set gamma in kernel function (default 1/num_features)  //多项式核函数、RBF核函数、sigmoid核函数。默认是1/num_features,因为特征往往比较多,所以使用时为0
-r coef0 : set coef0 in kernel function (default 0)                //多项式核函数、sigmoid核函数。默认是0
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)// C-SVC使用的惩罚因子C,epsilon-SVR, and nu-SVR中也使用 ,默认值为1
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)  //nu-SVC, one-class SVM, and nu-SVR使用的参数nu。默认值为0.5
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)  //epsilon-SVR的损失函数所用参数,默认0.1
-m cachesize : set cache memory size in MB (default 100) //设置缓存大小,默认100M
-e epsilon : set tolerance of termination criterion (default 0.001)//终止标准公差,默认0.001
-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)//是否使用缩减的启发式
-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)//是否训练SVC或SVR模型进行概率估计,0或1(默认为0)
-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)//C-SVC
-v n: n-fold cross validation mode  //n-折交叉验证,必须大于等于2
-q : quiet mode (no outputs) 

The k in the -g option means the number of attributes in the input data.//-g选项中的k表示输入数据中的属性数。

option -v randomly splits the data into n parts and calculates cross
validation accuracy/mean squared error on them.//选项-v随机将数据分解为n个部分,并计算交叉验证精度/均方误差。