热门标签 | 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


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文探讨了如何利用NFC技术,将存储在Android手机中的患者信息安全高效地传输到台式计算机。重点介绍了适用于医院场景的NFC USB读卡器(如ACR122U)的应用方法。 ... [详细]
  • 本文探讨了C++编程中理解代码执行期间复杂度的挑战,特别是编译器在程序运行时生成额外指令以确保对象构造、内存管理、类型转换及临时对象创建的安全性。 ... [详细]
  • 本文详细介绍了get和set方法的作用及其在编程中的实现方式,同时探讨了点语法的使用场景。通过具体示例,解释了属性声明与合成存取方法的概念,并补充了相关操作的最佳实践。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • Java 中重写与重载的区别
    本文详细解析了 Java 编程语言中重写(Override)和重载(Overload)的概念及其主要区别,帮助开发者更好地理解和应用这两种多态性机制。 ... [详细]
  • 云屏系统基于嵌入式微系统msOS,旨在解决当前嵌入式彩屏GUI编程中硬件要求高、软件开发复杂、界面效果不佳等问题。该系统通过结合MCU和Android技术,利用Html5+JavaScript实现高效、易用的图形用户界面开发,使嵌入式开发人员能够专注于业务逻辑。 ... [详细]
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社区 版权所有