MATLAB中libsvm的svmtrain和svmpredict函数的使用方法与参数设置

1. svmtrain()使用方法

示例:

cmd = [' -t 2',' -s 3 -p 0.01'];
model = svmtrain(train_label,train_data,cmd)

(1).svmtrain函数输入参数设置

  • train_label:为训练集中的标签数据 y
  • train_data:为训练集中的输入数据 x
  • cmd:为svmtrain函数的重要参数设置,详细情况如下:
    ’-s’         svm类型:SVM设置类型(默认0)
           0 – C-SVC
           1 – v-SVC
           2 – 一类SVM
           3 – e -SVR
           4 – v-SVR。
    ’-t’         核函数类型:核函数设置类型(默认2),
                  0 – 线性核函数:u’v
        1 – 多项式核函数:(ru’v + coef0)^degree
        2 – RBF(径向基)核函数:exp(-r|u-v|^2)
        3 – sigmoid核函数:tanh(ru’v + coef0)。
    ’-d’         degree:核函数中的degree设置(针对多项式核函数)(默认3)。
    ’-g’         r(gamma):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/k,k为总类别数)。
    ’-r’         coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)。
    ’-c’         cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)。
    ’-n’         nu:设置v-SVC,一类SVM和v- SVR的参数(默认0.5)。
    ’-p’         p:设置e -SVR 中损失函数p的值(默认0.1)。
    ’-m’         cachesize:设置cache内存大小,以MB为单位(默认40)。
    ’-e’         eps:设置允许的终止判据(默认0.001)。
    ’-h’         shrinking:是否使用启发式,0或1(默认1)。
    ’-wi’         weight:设置第几类的参数C为weight*C (C-SVC中的C) (默认1)。
    ’-v’         n: n-fold交互检验模式,n为fold的个数,必须大于等于2。

(2).svmtrain函数返回值

  • model:为训练得到的模型,通常是一个结构体,包括参数,支持向量个数等等:
    MATLAB中libsvm的svmtrain和svmpredict函数的使用方法与参数设置_第1张图片
    注意: 在交叉验证选择最优超参数的过程中,也会用到trainsvm(),其中cmd参数设置中有 ‘-v’ ,返回值则不是模型结构体。如果是分类问题,则返回的是交叉验证下的分类准确率;如果是回归问题,则返回的是交叉验证下的均方误差。(分类问题还是回归问题取决于cmd参数设置中的 ‘-s’

2. svmpredict()使用方法

示例:

[yPred,accuracy,decisionValues] = svmpredict(test_label,test_data,model); 

(1).svmpredict函数输入参数设置

  • test_label:为测试集中的标签数据 y
  • test_data:为测试集中的输入数据 x
  • model:为svmtrain函数训练得到的modeol

(2).svmpredict函数返回值

  • yPred:为预测得到的标签数据 y
  • accuracy/mse:返回[a,b,c]三个列向量,a用于分类问题,表示分类准确率,b和c用于回归问题,b表示均方误差mse,c表示平方相关系数
  • decisionValues:不常用,可用~代替接受参数

你可能感兴趣的:(Matlab,支持向量机,机器学习,matlab,支持向量机)