matlab中的libsvm怎么录入数据啊,LibSVM在MATLAB中使用时的几个问题

在科研中需要用到支持向量机(Support Vector Machines, SVM)来进行分类,而目前比较成熟的用于实现SVM的软件包则首推LibSVM。LibSVM目前的版本已经能直接在MATLAB中使用了,虽然MATLAB已经提供了诸如svmtrain等SVM相关的函数,可是相比LibSVM的易用性以及其强大的功能还是要差了不少。不仅如此,目前有关LibSVM的资料在互联网上也比较丰富,所以最终选择LibSVM在MATLAB环境下实现SVM分类样品会是一个很不错的选择。

LibSVM可以直接从其主页上下载到,我们所需要用到的就是MATLAB版本,不过仍然需要对其进行一个编译。这个过程十分简单,不过需要你已经安装了MATLAB的较新的版本(比如2009以后的版本,因为较旧的MATLAB版本不能识别较新的VS,而只能使用VC++ 6.0),以及Microsoft Visual Studio。

1.编译LibSVM的MATLAB版本

如果你的电脑上已经安装了如MATLAB的较新版本,以及Microsoft Visual Studio,那么你可以直接将下载的LibSVM解压出来并拷贝到MATLAB的工作目录下(这个过程不是必须,但会更为方便接下来的处理)。然后在MATLAB中将LibSVM目录添加到MATLAB的识别路径下(Add path),并将LibSVM下的MATLAB文件夹设置为MATLAB的当前工作目录。

接着在MATLAB命令行窗口中输入mex -setup,回车执行命令选择编译器。需要注意的是mex跟-setup之间有个空格。不要选择MATLAB的默认编译器,而手动选择Microsoft的VS编译器(只需告诉MATLAB其安装路径即可)。

设置好编译器,在MATLAB命令行窗口中输入make,即可开始对LibSVM进行编译了。如果没有什么错误提示,最终编译成功之后,在LibSVM文件夹下的MATLAB文件夹里将有四个以.mexw32结尾的编译完成的可执行文件。

2.加载数据集验证程序

编译完毕之后,我们可以加载数据集以验证程序是否编译成功。但是这里就出现了问题,如果使用以前的很多教程和文章中出现的诸如

load heart_scale

来载入heart_scale数据文件,将会出现如下所示的错误:

??? Error using ==> load

Number of columns on line 2 of ASCII file

…\MATLAB\libsvm\heart_scale

must be the same as previous lines.

有人说好像这是因为heart_scale数据集是一个C++类型的文件,所以使用MATLAB的load载入而不能成功。

所以,现在需要使用LibSVM提供的libsvmread函数来读取数据文件,读取格式如下:

[label_vector, instance_matrix] = libsvmread(‘heart_scale’);

问题是,这样仍然不能成功,而提示如下的错误:

can’t open input file heart_scale

但是我们可以解决这个问题,通过这样的方式:

1.将位于LibSVM文件夹下的heart_scale数据文件拷贝到当前工作目录(MATLAB)中;

2.将LibSVM文件夹设置为当前工作目录;

如此,再执行libsvmread命令,即可将数据文件读取进来进行一些基本的处理了,使用

model = svmtrain(label_vector,instance_matrix);

训练SVM模型;

使用

[predict_label, accuracy, decision_values] = svmpredict(label_vector,instance_matrix,model);

得到模型的预测结果:

Accuracy = 86.6667% (234/270) (classification)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA实现AES 解密报错Input length must be multiple of 16 when decrypting with padded cipher

加密代码 /*** 加密* * param content 需要加密的内容* param password 加密密码* return*/public static byte[] encrypt(String content, String password) {try { KeyGenerator kgen KeyGenerator.getInstance("AES");kgen.init(128, new SecureRando…

python 判断时间是否大于6点_python中判断时间间隔的问题

展开全部代码有点烂,不过还算能解决问题注释比较详细了# -*- coding: utf-8 -*-import datetime__author__ lpe234__date__ 2015-04-26f file(1.txt)file_content f.readlines()all_lines len(file_content)def get_(content):"""递归调用:para…

迁移学习让深度学习更容易

深度学习在一些传统方法难以处理的领域有了很大的进展。这种成功是由于改变了传统机器学习的几个出发点,使其在应用于非结构化数据时性能很好。如今深度学习模型可以玩游戏,检测癌症,和人类交谈,自动驾驶。 深度学习变得强大的同…

java多线程系列:通过对战游戏学习CyclicBarrier

CyclicBarrier是java.util.concurrent包下面的一个工具类,字面意思是可循环使用(Cyclic)的屏障(Barrier),通过它可以实现让一组线程到达一个屏障(也可以叫同步点)时被阻塞&#xff0…

Wi-Fi 6到底有什么特别?

戳蓝字“CSDN云计算”关注我们哦!作者 | 甜草莓责编 | 阿秃▋ 什么是Wi-Fi 6 ?Wi-Fi 6,是Wi-Fi联盟给IEEE Std. P802.11ax起的别名。众所周知,以前我们的Wi-Fi都是叫作802.11a/b/n/g/ac/ax之类的名字。这种命名方式实在容易让人…

matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计

目录直流电机双闭环PID调速系统仿真1 转速、电流双闭环直流调速系统的组成及工作原理2 双闭环调速系统的动态数学模型3 调节器的设计3.1 电流调节器的设计3.2 转速调节器的设计4 搭建模型5 参数计算5.1 参数的直接计算5仿真具体参数6 仿真结果7 结束语8 参考文献摘要在工程的应…

【小技巧】桌面图标出现蓝色问号的怎么办?

【背景】 今天因为要联调前端所以用SVN更新了一下前端的代码,结果没想到桌面图标全部变成了带着蓝色问号的,吓了自己一跳。查了一下之后顺利解决了,不过以防万一记录一下解决方法。 【内容】 解决步骤:首先确定是SVN的问题导致了…

恒强制版系统980_速来围观 | 恒强制版小图高级功能讲解

点击蓝字关注我们 Spring comes小图是用自定义的动作来定义使用者色码(120-183)。小图的主要构成如下图:1. 模块色数属性模块色数有如下规则:(1) 小于100(一般填1)的小图为普通小图【980修改】;(2) 小于200大于100(一般填101)的小图为提花小图…

读懂这篇文章,你的阿里技术面就可以过关了 | Apache RocketMQ 101

在美国的大学课程中,101是所有课程中的第一门,是新生入学后的必修课程。阿里巴巴中间件技术专家刘振东在上周的Apache RocketMQ开发者沙龙北京站的活动上,进行了主题为《ApacheRocketMQ 101》的分享,帮助开发者从0开始学习 Apache…

HttpClient4.5 简单入门实例(一)

一、所需要的jar包 httpclient-4.5.jar httpcore-4.4.1.jar httpmime-4.5.jar 二、实例 package com.gblfy.test;import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util…

Nacos 计划发布v0.2版本,进一步融合Dubbo和SpringCloud生态

在近期的Aliware Open Source 成都站的活动上,阿里巴巴高级工程师邢学超(于怀)分享了Nacos v0.2的规划和进度,并对Nacos v0.3的控制台进行了预览。Nacos v0.2将进一步融入Duboo和Spring Cloud生态,帮助开发者更好的在微…

你还在疯狂加班打码?兄dei,不如跟我学做超融合吧!

纵观过去十年,媒体、娱乐、交通、银行、保险、医疗、旅游、物流等行业,无一不打上了数字化的烙印。据统计,一百多年前,公司的平均寿命是67年;而在当今的数字化时代,则锐减至15年。 除此之外,更有…

apache禁止多目录运行php文件下载,Nginx Apache下如何禁止指定目录运行PHP脚本

网站程序的上传目录通常是不需要PHP执行权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率。下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限。Apache下禁止指定目录运行PHP脚本在虚拟主机配置文件中增加php_fla…

python加载模型包占用内存多大_如何保持Keras模型加载到内存中并在需要时使用它? - python...

我正在阅读Keras blog讲解如何使用Flask创建简单的图像分类器Restful API。我想知道如何在不使用python的其他Web框架中实现加载模型的相同方法。在下面的代码中,将在服务器启动之前将模型加载到内存中,直到服务器处于活动状态,它才会运行&am…

你只差这两步 | 将Sentinel 控制台应用于生产环境

这是围绕 Sentinel 的使用场景、技术对比和实现、开发者实践等维度推出的系列文章的第四篇。 第一篇回顾: Dubbo 的流量防卫兵 | Sentinel如何通过限流实现服务的高可用性 - 传送门 第二篇回顾: RocketMQ 的保险丝| Sentinel 如何通过匀速请求和冷启动…

win10日常操作

C:\Windows\System32\drivers\etc

eclipse分级,分级列表显示 - bieshixuan的个人博客 - OSCHINA - 中文开源技术交流社区...

这是个效果图设计思想是,使用左右两个tableview分别展示NSArray * _allArr;NSMutableArray * _rightArr;UITableView * _leftTableView;UITableView * _rightTableView;初始化_arr [{"全部":[ "棉花", "小麦", "水稻", &q…

python如何实时捕捉cmd显示_如何从Python脚本中捕获Python解释器和/或CMD.EXE的输出? -问答-阿里云开发者社区-阿里云...

如果您正在谈论python解释器或CMD.exe,它是您脚本的“父”,那么不可能。在每个类似POSIX的系统中(现在你正在运行Windows,看起来可能有一些我不知道的怪癖,YMMV)每个进程都有三个流,标准输入,标准输出和标准…

分布式消息规范 OpenMessaging 1.0.0-preview 发布

OpenMessaging 是由阿里巴巴牵头发起,由 Yahoo、滴滴、Streamlio、微众银行、Datapipeline 等公司共同发起创建的分布式消息规范,其目标在于打造厂商中立,面向 Cloud Native ,同时对流计算以及大数据生态友好的下一代分布式消息标…

腾讯云重磅发布系列自研产品,自研服务器星星海为云而生

今日在腾讯全球数字生态大会成都峰会上,腾讯云重磅发布系列自研产品,包括腾讯自研第四代数据中心T-block产品家族、第一款真正为云而生的自研服务器“星星海”等基础产品,结合现场发布的弹性容器服务、无服务器等自研产品,腾讯云正…