SVM的主要思想是建立一个分类超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化。
SVM的理论基础是统计学习理论,更准确地说,是结构风险最小化的近似实现。
2.LIBSVM工具箱的主要函数
(1)训练函数 model =svmtrain(train_label,train_data,options);
输入:
—train_label:训练集标签,大小为nx1,n表示样本数,数据类型double.
—train_data:训练集属性矩阵,大小为nxm,n表示样本数,m表示属性数目(维数),数据类型double.
—options:参数选项,比如'-c 1-g 0.1'.
输出:
—model:训练得到的模型,是一个结构体。注意:使用-v参数时,返回的model不再是一个结构体,分类问题返回的是交叉验证下的平均分类准确率;回归问题返回的是交叉验证下的平均均方根误差(MSE).
(2)预测函数 [predict_label,accrucy/mse,dec_value]=svmpredict(test_label,test_data,model);
输入:
—test_label:测试集标签,大小为Nx1,N表示样本数,数据类型double。注意:如果没有测试集标签,可以用任意的Nx1的列向量代替即可,此时的输出 accyracy/mse就没有参考价值。
—test_data:测试集属性矩阵,大小为Nxm,N表示测试集样本数,m表示属性数目(维数),数据类型double.
—model: svmtrain训练得到的模型.
输出:
—predict_label:预测的测试集的标签,大小为Nx1,N表示样本数,数据类型为double.
—accuracy/mse:一个3x1的列向量,第一个数表示平均相关系数(回归问题使用)。注意:如果测试集的真实标签实现无法得知,此返回值没有参考价值。
—dec_value:决策值。
3.LIBSVM工具箱在MATLAB平台下的安装
安装LIBSVM工具箱是在MATLAB平台下使用LIBSVM的前提。