Logo林子越matlab下的LIBSVM的使用CompanyLogoContents1.简介2.安装3.使用4.总结CompanyLogo简介LIBSVM是台湾大学林智仁(LinChih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包。–该软件提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用–且对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题–并提供了交互检验(CrossValidation)的功能CompanyLogo该软件包可在~cjlin/免费获得。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。CompanyLogo安装下载之后设置路径–FILE——SetPath——Addwithsubfoders——选择所在文件夹CompanyLogo选择编译器libsvm的原始版本使用C++写的,为了在matlab平台下使用,需要用C++编译器编译,生成类似于.m文件的.mexw32文件。这里要说明matlab自带一个C编译器Lcc_win32C,但此处需要C++编译器。matlab支持的编译器列表:选择编译器mex-setup命令CompanyLogo编译make命令–编译后文件夹中会出现多个svmtrain.mexw32、svmpredict.mexw32等文件。–.mexw32文件是加密文件,打开为乱码。–运行help对这些函数无效然后便可使用工具箱CompanyLogo使用参数设置主要函数CompanyLogo主要参数设置-s(默认0)——SVM类型选择–0--CSVC(分类问题)–1--nu-SVC(分类问题,引入一个新的参数nu)–2--one-classSVM(做分布估计)–3--epsilon-SVR(回归问题)–4--nu-SVR-s参数相关参数0-c(默认1,范围(0,+))1-n(默认0.5,范围(0,1])2-n(默认0.5,范围(0,1])3-c(默认1,(0,+))-p(默认0.1,(0,+))4-c(默认1,(0,+))-n(默认0.5,(0,1])CompanyLogo主要参数设置-t(默认2)——选择核函数–0--线性核函数:u'*v–1--多项式核函数:(gamma*u'*v+coef0)^degree-ggamma(默认为属性数目的倒数)-rcoef0(默认0)-ddegree(默认3)–2--RBF核函数:exp(-gamma*|u-v|^2)-ggamma(默认为属性数目的倒数)——很敏感–3--sigmoid核函数:tanh(gamma*u'*v+coef0)-ggamma(默认为属性数目的倒数)-rcoef0(默认0)–4--预定义核函数(指定核矩阵)CompanyLogo主要参数设置-wi:(默认1)–只能在模型C-SVC模型中使用–设置第几类的参数C的weight*C(C-SVC中的C)–当某一类样本数目比较少时,可以给其设置较大的惩罚参数,提高这一类样本的分类准确率。–如model=svmtrain(label,data,'-c1-w12-w-10.5')标签1的样本惩罚参数为2标签为-1的样本惩罚参数为0.5CompanyLogo主要参数设置-v(一般选择5或10)–交叉检验,参数必须大于2–当使用此参数时,返回的结果不再是一个结构体model分类问题,返回的是交叉检验下的平均分类准且率回归问题,返回的是交叉检验下的平均均方差误差CompanyLogo测试数据及格式测试数据集–libsvm官方提供的测试数据格式是C++版本使用的,需要使用libsvmread进行格式转换–UCI数据集–等格式–标签属性编号1:属性值1属性编号2:属性值2–如:+11:0.782:13:1........CompanyLogo分类问题两个主要函数svmtrain–model=svmtrain(trainLabel,trainInstance,'参数')svmpredict–[predictLabel,accuracy,value]=svmpredict(testLabel,testInstance,model)CompanyLogo总结--未来计划精细的调节各种svm参数以达到更好的实验效果加入其他特征,并在试验阶段确定每种特征对于各个类别的不同的权重,并把此作为先验知识加入知识库。在后续的训练过程中,应用到知识库中的这个知识。Logo18以上有不当之处,请大家给与批评指正,谢谢大家!