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:为训练得到的模型,通常是一个结构体,包括参数,支持向量个数等等:
注意: 在交叉验证选择最优超参数的过程中,也会用到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:不常用,可用~代替接受参数