热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab开发笔记:使用svmlib工具包进行机器学习

虽然网络上已经有了很多的类似的东西了吧。但是呢,我自己还是要写一写的。 安装:对于libsvm工具包,我

虽然网络上已经有了很多的类似的东西了吧。但是呢,我自己还是要写一写的。

 

安装:

对于 libsvm工具包,我们可以去官方网站下载,网址为:http://www.csie.ntu.edu.tw/~cjlin/libsvm/,这上面有很好的介绍。

我下载的版本为 libsvm-3.22。下载完了以后,可以查看到文件夹里面的内容。(其中,的一个heart_scale的matlab格式的文件是我自己在网上下载的)

技术分享

里面的 matlab文件夹里的内容就是我们要用到的内容(里面有的文件我已经编译好了,即 .mexw64的相关文件)。里面有一个README 的文件,可以读读,作出了相关的介绍。

技术分享

虽然在windows文件夹下有给出了 .mexw64的文件,但是我偿试过,没有办法用,所以呢,对于用c++下的 svmtrain.c、svmpredict、libsvmread.c、libsvmwrite.c(这四个文件是主要的)文件我们要把它编译成matlab可以使用的以.mexw64的文件。。(注意,在64位下是以.mexw64结尾,在32位下应该是以.mexw32结尾).

 

以上简单说了一下 文件夹内的东西,现在正式说说安装过程吧。

1. 下载工具包;(可以在官网下载,我同时也提供了我下载的并且我编译过的工具包,http://pan.baidu.com/s/1hsmR1li)

2. 我们把工具包里的 matlab 文件夹下的的.c文件编译为matlab软件可以使用的.mexw64文件.   

我们要做的是在matlab里编译c++文件,我们要配置matlab的编译器,matlab自身好像自代了一个 lcc的编译器,不过我的没有。如果你的电脑安装了其它的编译器,我们就可以使用它。(注意一点,matlab支持的编译器必须低于当前的matlab的版本,例如我的matlab为2012b版本,它就不支持vs2012版本,我又安装了vs2010版本,它就支持了,通过https://cn.mathworks.com/support/sysreq/previous_releases.html可以自己查看下自己的版本以及支持的编译器)。如何配置:

1)在matlab中输入:

mex –setup

再选择 y, 会出现这样的:

技术分享

然后选择一个默认的编译器就可以了,我这里只有 visual c++ 2010,也只能选择它了。

2)配置完默认的编译器,我们就编译我们的在matlab文件夹下的 .c 文件吧。。让我们把当前目录切换到 matlab文件夹下,里面有一个 make.m 的文件,里面的内容就是编译的指令,我们直接运行它就可以(你可以选中文件右击选择run,也可以在命令窗口直接输入make 回车)。运行完了以后呢,就生成了 .mexw64的文件了。

3. 对于要不要设置matlab的搜索路经的问题,可以设置,也可以直接把matlab文件夹作用当前目录使用 svmtrain等函数。 我使用的后者。(另外注意一点,在matlab的自代工具箱里面也有一个svmtrain的函数,如果你设置了路经,记得把我们下载的工具箱的路经设在第一位置了,要不会调用错的)

4. 验证一下能否使用。

在下载的工具箱文件夹里面有一个 heart_scale的文件,这个是c++能打开的文件,我们直接使用load搞不定的。把这个文件复制到matlab文件夹下,使用 libsvmread 载入;方法为:

[label_vector, instance_matrix] = libsvmread(filename)

另个有我的文件包里面也包含了 heart_scale.mat文件,可以直接用load 载入的,下图为直接load 载入:

技术分享

有了数据集,我们就那建立模型,用于分类预测:

model = svmtrain(heart_scale_label, heart_scale_inst);

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

下图为输出:

技术分享

5 ,搞定。

 

工具箱的简单使用:

http://blog.csdn.net/bryan__/article/details/51506801


推荐阅读
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 本文详细介绍了如何在最新版本的Xcode中重命名iOS项目,包括项目名称、应用名称及相关的文件夹和配置文件。通过本文,开发者可以轻松完成项目的重命名工作。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 本文详细介绍如何在 Apache 中设置虚拟主机,包括基本配置和高级设置,帮助用户更好地理解和使用虚拟主机功能。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • Nginx 启动命令及 Systemctl 配置详解
    本文详细介绍了在未配置和已配置 Systemctl 的情况下启动 Nginx 的方法,并提供了详细的配置步骤和命令示例。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
author-avatar
怕疼不怕死
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有