libsvm 参数说明

libsvm 参数说明

作为机器学习很强大的一个分类器之一,研究一下如何使用。

libsvm 软件包简介

  libsvm工具箱是台湾大学林智仁(C.JLin)等人开发的一套简单的、易于使用的SVM模式识别与回归机软件包,该软件包利用收敛性证明的成果改进算法,取得了很好的结果。
  libsvm 共实现了5种类型的SVM:C-SVC,u-SVC,One Class-SVC,e-SVR和u-SVR等。下面将详细介绍libsvm软件包中主要函数的调用格式及注意事项。

SVM 训练函数:svmtrain

model = svmtrain(train_label, train_matrix, ['libsvm_options']);

输入:
- train_label:训练集的标签
- train_matrix:训练集的属性
- libsvm_options:一些选项参数

输出:
- model:训练得到的分类模型

值得一提的是,与BP神经网络及RBF神经网络不同,train_label及train_matrix为列向量(矩阵),每行对应一个训练样本。


SVM 预测函数:svmpredict

[predict_label, accurary]=svmpredict(test_label, test_matrix, model);

输入:
- test_label:测试集的标签
- test_matrix:测试集的属性
- model:由svmtrain得到的分类模型
- libsvm_options:一些选项参数
输出:
- predicted_label:预测得到的测试集的标签
- accuracy:分类准确率

需要说明的是,若测试集样本对应的类别标签 test_label未知,为了符合函数svmpredict 调用格式的要求,随机填写即可,在这种情况下,accuracy便没有具体的意义了,只需关注预测的类别标签 predict_label 即可。


svmtrain 参数简介

‘-s’ SVM 类型 SVM 模型类型(默认0)
-0 c-SVC(多类别分类)
-1 nu-SVC(多类别分类)
-2 one-class SVM (分类)
-3 epsilon-SVR(回归)
-4 v-SVR(回归)
‘-t’ 核函数类型 核函数设置类型(默认2)
-0 线性核函数: u’*v
-1 多项式核函数 : (gamma*u’*v + coef0)^degree
-2 RBF核函数 : exp(-gamma*|u-v|^2)
-3 sigmoid核函数 : tanh(gamma*u’*v + coef0)
-4 自定义核函数 (指定核矩阵)
其他参数简介
-d degree 核函数中的degree设置(针对多项式核函数)(默认3)
-g gama 核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/num_features,即属性数目的倒数)
-r coef0 核函数中的coef0设置(针对多项式/sigmoid核函数)(默认0)
-c cost 设置C-SVC,epsilon-SVR的参数(损失函数)(默认1)
-p epsilon 设置epsilon-SVR中损失函数epsilon的值(默认0.1)
-n nu 设置nu-SVC,one-class SVM和nu-SVR的参数(默认0.5)
-m cachesize 设置cache内存大小,以MB为单位(默认100)
-e epsilon 设置允许的终止判据(默认0.001)
-h shrinking 是否使用启发式,0或1(默认1)
-b probability_estimates 是否为概率估计训练一个SVC或SVR模型,0还是1(默认为0)
-wi weight 设置第几类的参数C为weight*C(C-SVC中的C)(默认1)
-v n n-fold交互检验模式,n为fold的个数,必须大于等于2
-q 安静模式(输出)

-s svm模型类型设置参数介绍和关联参数

-s 参数(默认0) 关联参数
0 – C-SVC -c(默认1)
1 – nu-SVC -n(默认0.5)
2 – one-class SVM -n(默认0.5)
3 – epsilon-SVR -c(默认1)、-p(默认0.1)
4 – nu-SVR -c(默认1)、-n(默认0.5)


致谢链接

LIBSVM学习(七)–参数解释
libsvm参数设置
SVM学习笔记(一):libsvm参数说明(转)

猜你喜欢

转载自blog.csdn.net/MissXy_/article/details/81252003