MATLAB曲面插值及交叉验证,Libsvm的MATLAB调用和交叉验证

今天听了一个师兄的讲课,才发现我一直在科研上特别差劲,主要表现在以下几个方面,(现在提出也为了督促自己在以后的学习工作道路上能够避免这些问题)

1、做事情总是有头无尾,致使知识点不能一次搞透,每次在用到相同知识点的时候才发现之前对这个知识了解的还是不透彻。

2、不善于总结,做的东西(如代码和论文)很多也比较杂,但是却没有记录每一项工作,致使到最后很难理清之前做过的东西。

3、检索能力较差,致使寻找自己需要的资料需要耗费太长的时间。

4、阅读文献的数量太少,因此很难提出新的想法和见解。

以上4点是我认为的科研和工作中主要需要提高的地方,我也从现在起开始逐条的改善,希望1个月之后的我可以养成良好的习惯,使得上面的缺陷得以修正。

下面就进行第一个改善:SVM接触时间很长了,理论和代码都研究和使用过,由于网上的资料整理的很多,自己就懒得整理,每次有问题就百度、谷歌一下基本都解决了,但是现在如果有人问我相关具体的内容,我还是很难答出来,毕竟别人的东西就是别人的,看了并不代表你掌握了,只有自己掌握的知识才是自己的,才能与人交流,并提出自己的见解。

一、SVM如何使用MATLAB调用

我之所以介绍这个,主要的原因是,大家在做机器视觉算法时使用最多的工具,而matlab中自带的svm工具箱又只能用于分两类的情况,而且不能进行交叉验证选择合适的参数,但是在正常的使用时不可避免的会遇到分多类的问题,而且选择合适的参数对于SVM也非常重要。下面介绍如何下载libsvm,配置matlab环境。

1. 参考网站:

2、配置MATLAB环境

A.设置path

File->set path ->add with subfolders->加入libsvm-3.11文件夹的路径

B. 在matlab中编译

目的:将libsvm-3.11\matlab 中 libsvmwrite.c 等 C++文件编译成 libsvmread.mexw32 等matlab文件,这样就可以在command window中被直接调用了。

操作如下:1、mex -setup

Please choose your compiler for building external interface (MEX) files:

Would you like mex to locate installed compilers [y]/n? y

Please choose your compiler for building external interface (MEX) files:

Would you like mex to locate installed compilers [y]/n? y

Select a compiler:

[1] Lcc-win32 C 2.4.1 in D:\MATLAB~1\sys\lcc

[2] Microsoft Visual C++ 6.0 in D:\Microsoft Visual Studio

[0] None

Compiler: (此处不同版本的MATLAB和自己安装的编译器的不同显示会有差别,因此只要选择你已经安装的编译器就好了)

Compiler: 2

Please verify your choices:

Compiler: Microsoft Visual C++ 6.0

Location: D:\Microsoft Visual Studio

Are these correct [y]/n? y

Trying to update options file: C:\Users\faruto\AppData\Roaming\MathWorks\MATLAB\R2009b\mexopts.bat

From template: D:\MATLAB~1\bin\win32\mexopts\msvc60opts.bat

Done . . .

2、make

make

此过程中一定要注意将路径转换到matlab路径下,这样才能调用make函数进行make.

上述需要注意的地方都已经指出来了,我也已经在matlab2012a和VS2010中测试过,好使。

操作结束就可以使用现成的数据集heart_scale来测试一下了,出现Accuracy = 86.6667% (234/270) (classification)

load('heart_scale')

model = svmtrain(heart_scale_label,heart_scale_inst);

[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);

其中的‘heart_scale’在libsvm中自带的mat文件。

二、如何参数寻优

%添加参数寻优代码

[bestacc,bestc,bestg] = SVMcg(heart_scale_label,heart_scale_inst,-,,-,,,,);

因为此测试用例并不规范,因此使用不能很好的体现参数寻优之后的优势。

以上就是实验部分,通过小小的实验可以对SVM的工作有了大概的了解,同时也促进自己学习理论的动力,因此下面一片博客就主要介绍SVM理论方面的内容,因为SVM理论方面的介绍也非常多,因此我主要把那些好的参考内容进行整理,同时将自己的心得体会和理解写出来,方便自己查看,也方便大家交流。

MATLAB曲面插值及交叉验证

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点.插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值.曲面插值是对三维数据进行离 ...

如何调用sklearn模块做交叉验证

终于搞明白了如何用sklearn做交叉验证!!! 一般在建立完模型之后,我们要预测模型的好坏,为了试验的可靠性(排除一次测试的偶然性)我们要进行多次测试验证,这时就要用交叉验证. sklearn中的s ...

libsvm交叉验证与网格搜索(参数选择)

首先说交叉验证.交叉验证(Cross validation)是一种评估统计分析.机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 能够避免过拟合问题.交叉验证一般要尽量满足:1 ...

Matlab交叉验证函数——crossvalind

Generate cross-validation indices  生成交叉验证索引 Syntax语法 Indices = crossvalind('Kfold', N, K) %K折交叉验证   ...

Libsvm在matlab环境下使用指南

一.安装 http://www.csie.ntu.edu.tw/~cjlin/libsvm/matlab/.在这个地址上可以下的包含matlab接口的源程序.下载完后可以放到放到任意的盘上解压,最好建 ...

机器学习:weka中Evaluation类源码解析及输出AUC及交叉验证介绍

在机器学习分类结果的评估中,ROC曲线下的面积AOC是一个非常重要的指标.下面是调用weka类,输出AOC的源码: try { // 1.读入数据集 Instances data = new Inst ...

k-折交叉验证(k-fold crossValidation)

k-折交叉验证(k-fold crossValidation): 在机器学习中,将数据集A分为训练集(training set)B和测试集(test set)C,在样本量不充足的情况下,为了充分利用数 ...

交叉验证(cross validation)

转自:http://www.vanjor.org/blog/2010/10/cross-validation/ 交叉验证(Cross-Validation): 有时亦称循环估计, 是一种统计学上将数据 ...

机器学习——交叉验证,GridSearchCV,岭回归

0.交叉验证 交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set) ...

随机推荐

JS之Form表单相关操作

获取ID组件的值 var userid=document.getElementById('userid').value;var cdkey=document.getElementById('cdkey ...

【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局(转)

[jQuery插件]用jQuery Masonry快速构建一个pinterest网站布局 时间:2011年03月21日作者:愚人码头查看次数:29,744 views评论次数:25条评论 前段时间领导 ...

2014年度辛星css教程夏季版第二节

第一节我们简介了一下CSS的工作流程,我相信读者会有一个大体的认识,那么接下来我们将会深入的研究一下CSS的细节问题,这些问题的涉及将会使我们的工作更加完善. *************注释***** ...

python模块学习之random

模块源码: Source code: Lib/random.py 文档:http://docs.python.org/2/library/random.html 常用方法: random.random ...

oracle的rownum与having用法 去除重复 在重复情况用rownum

一般来说,大家会用rownum,也就是伪列来指定要显示多条数据, 比如 select linename from aced where rownum<3 但是,大家注意,如果取出来的数据有重复数 ...

ubuntu 部署 wiki&period;js

1. 安装node  (还是官网的东西靠谱,虽然是english)  https://github.com/nodesource/distributions/blob/master/README.md ...

&lpar;原&rpar;2018牛课多校第4场--G

传送门 /* 按值从大到小排序,记录下相应出现的次数并去重 枚举:从大到小枚举,如果能够通过删除其他数让当前这个数成为众数,则循环结束,输出此数,如果循环结束也没答案,输出-1 优先级:值优先 举例: ...

C语言中scanf函数的实现

接上一篇C语言中可变参数函数实现原理,从理论上详细介绍了C语言中可变参数函数的实现,这一篇从minix内核源码中的scanf函数入手,学习C语言经典可变参数函数的实现过程 在scanf.c文件中,可以 ...

POJ P3667 Hotel——solution

Description The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and e ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值