matlab 林智仁,机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
简单介绍一下机器学习中的libsvm
libsvm工具箱在matlab下的安装
libsvm工具箱在matlab下的应用
libsvm的实际应用
小结
一、机器学习中的libsvm介绍
支持向量机(SUPPORT VECTOR MACHINE),是非常强大且流行的算法,在一些情况下,能面向一些复杂的非线性问题提供比逻辑回归或神经网络要更加简洁的解决方案。
下面具体讲一下SVM
LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。
下面一个网站里面是大牛写的关于libsvm的一些东西,可以看看 关于libsvm的那点破事
二、libsvm在matlab下的安装
1、首先下载libsvm工具箱
2、接着是将下载的工具箱安装
将libsvm-mat所在工具箱添加到matlab工作搜索目录
(File ——》
Set Path… ——》
Add with Subfolders…);
选择编译器(mex -setup);
编译文件(make)。
详细的步骤讲解请看 LIBSVM 在matlab下的安装
这里我只说我遇到的问题,在选择编译器的时候不管是 y还是n 都找不到自己所安装的编译器,有可能是安装顺序的问题,我所解决的方法是,讲编译器和matlab卸载,然后重新安装,重安装的时候注意先安装编译器,再安装matlab
在编译文件make的时候出现找不到文件,需要进入到libsvm-master>matlab 中再make就可以了
三、 libsvm工具箱在matlab下的应用
//%获取traindata、trainlabel,testdata、testlabel
traindata =[ train( : , 2 ), train( : , 4 ), train( : , 8 ), train( : , 10 )];
trainlabel = train( : , 14 );
testdata = [ test( : , 2 ), test( : , 4 ), test( : , 8 ), test( : , 10 ) ];
testlabel = test( : , 14 );
//%用traindata和trainlabel来训练出一个模型,引号里面参数的详细解释看上述网址的详解
model = svmtrain(trainlabel ,traindata,'-s 0 -t 2 -c 4 -g 1.2 -b 1');
save model model
//%用testdata、testlabel和训练出的模型进行做预测
[plabel, accuracy, dec_values] = svmpredict(testlabel,testdata,model,'-b 1');
save label.txt plabel -ascii
//%evaluate training results evaluate是自己写的一个评估函数
[TP,FN,FP,TN,POD,FAR,CSI,AUC,P,R,F] = Evaluate(plabel,testlabel);
save result P R F AUC CSI POD FAR TP FN FP TN dec_values
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
四、 libsvm的实际应用
1、获取原始数据
获取所需要的特征值和标签
2、将数据进行预处理
差分、归一化
(1)差分
由于气象中的特征,差分后的特征值会包含一些有用的信息,所以需要差分。新的特征值=原始特征值+差分(差分用的是向前差分d(t)=data(t)-data(t-1))
(2)归一化
现在的归一化方法有两种max_min归一化和mu_sigma归一化。公式如下:
new—data=(data-min)/(max-min)
new—data=(data-mu)/sigma
经对比结果发现第一种归一化方法更适用于我们的应用。
3、训练、预测
这里的训练、预测如‘三、libsvm工具箱在matlab下的应用’中的代码
4、评估
对评估结果分析发现POD、CSI、FAR达不到要求,分析可能是由于正例置信度为0.5,即:当某一个样例的概率大于50%,预测此样例为正样例。如果想要提高各项预测值,需要获得每个样本的预测概率以此来修改置信度。
具体解决方法如下
如上图椭圆框出来的,在训练 svmtrain和预测 svmpredict的时候都加上参数‘-b 1’会得到 dec_values。 在我们的实验中(二分,label 有1和-1)dec_values分为2列,第一列为样例预测为-1的概率,第二列为样例预测为1的概率。这样我们就可以根据dec_values来调整阈值(正例置信度),以达到提高精确度的效果。
五、小结
通过这一阶段的学习我发现,不能怕遇到问题,遇到问题后不能急仔细查找各种解决的方法。要仔细分析。。。心细。。。
matlab 林智仁,机器学习:林智仁libsvm 工具箱 在matlab下的应用总结相关推荐
- 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
简单介绍一下机器学习中的libsvm libsvm工具箱在matlab下的安装 libsvm工具箱在matlab下的应用 libsvm的实际应用 小结 一.机器学习中的libsvm介绍 支持向量机(S ...
- libsvm工具箱会和matlab,MATLAB实现多分类和libsvm工具箱的安装使用详解
首先告诉大家MATLAB现在可以实现多类分类的问题!但是需要借助工具箱! 下面介绍的是台湾林智仁教授的libsvm工具箱在MATLAB中的安装和使用: 安装环境:Win7.Microsoft Visu ...
- matlab中的分类工具箱svm,MATLAB实现多分类和libsvm工具箱的安装使用详解
首先告诉大家MATLAB现在可以实现多类分类的问题!但是需要借助工具箱! 下面介绍的是台湾林智仁教授的libsvm工具箱在MATLAB中的安装和使用: 安装环境:Win7.Microsoft Visu ...
- 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
红色石头的个人网站:redstonewill.com 关于台湾大学林轩田老师的<机器学习基石>课程,我们已经总结了16节课的笔记.这里附上基石第一节课的博客地址: 台湾大学林轩田机器学习基 ...
- 吴恩达机器学习+林轩田机器学习+高等数学和线性代数等视频领取
机器学习一直是一个热门的领域.这次小编应大家需求,整理了许多相关学习视频和书籍. 本次分享包含:台湾大学林轩田老师的[机器学习基石]和[机器学习技法]视频教学.吴恩达老师的机器学习分享.徐小湛的高等数 ...
- 独家干货 | 林轩田机器学习课程精炼笔记!
点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 台湾大学林轩田老师曾在coursera上开设了两门机器学习经典课程:<机器学习基石> ...
- 干货 | 林轩田机器学习「基石+技法」历史文章汇总
AI有道 一个有情怀的公众号 台湾大学林轩田机器学习经典课程:「机器学习基石」和「机器学习技法」.课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面,还包括了机器学习一些经典算法,包括支持向量机 ...
- 台湾大学林轩田机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Kernel SVM.先将特征转换和计算内积这两个步骤合并起来,简化计算.提高计算速度,再用Dual SVM的求解方法来解决. ...
- 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...
最新文章
- 6、计算机图形学——着色频率、插值与插值的矫正
- 诚毅学院全国计算机考试,集美大学2017年9月全国计算机等级考试报名时间
- AtCoder AGC038F Two Permutations (网络流、最小割)
- POJ-1384 Piggy-Bank 多重背包变形
- vp翻N_VP刀叨叨:如何让G胖给你唱生日歌
- python 颜色_Python可视化|matplotlib07自带颜色条Colormap(三)
- c语言期末考试题及其答案文档,c语言期末考试题及其答案
- SpringBoot系列: 与Spring Rest服务交互数据
- Springboot中使用websocket发送信息给指定用户和群发
- python--之Python内存监控模块memory_profiler测试
- Java架构师具备的特点有哪些?
- python中的itemgetter函数
- BZOJ3309 DZY Loves Math
- Linux驱动之定时器(mod_timer)
- VB.net小技巧系列目录
- 让SQL用户快速进入Hadoop大数据时代 —— Transwarp Inceptor是怎样炼成的
- 华为荣耀8青春版计算机在哪里,华为荣耀8青春版比荣耀8青春在哪里?
- 如何设计工作计划表格
- 具有Flash Access保护的HTTP Dynamic Streaming
- 京东AI加速器首出“成品”,“法咚咚”发布上线惊呆律师对手!