LIBSVM入门

2023-11-14

一、引言:

LIBSVM提供了多语言(java、python和matlab)的SVM实现,可以便捷地处理分类或回归问题,本文记录基于matlab的LIBSVM学习笔记。

二、环境搭建:

LIBSVM下载链接:https://github.com/cjlin1/libsvm
Windows系统下安装:预编译的mex文件存放在’…/windows’,需要将其复制到matlab文件夹下
matlab软件中编译:首先将libsvm所在的matlab文件夹及其子文件夹添加到matlab搜索路径中;然后在命令行中输入make编译得到’libsvmread.mex’, ‘libsvmwrite.mex’, ‘svmtrain.mex’, and
'svmpredict.mex’文件。

三、使用:

1.数据说明及其读取方法

数据格式:[label] [index1]:[value1] [index2]:[value2] …
示例:

/*
0.099 1:5000 2:0.06 3:2 4:1
*/

数据读取方式

[label_train, inst_train] = libsvmread('filePath');

其中:

  • label_train:训练标签,m*1矩阵(m表示样本数),类型必须为double;
  • inst_train:训练实例,m*n矩阵(n表示样本的特征数),类型必须为double;

2.SVM模型训练

model = svmtrain(label_train, inst_train [, 'libsvm_options']);

其中:

  • libsvm_options:模型参数,string类型
libsvm_options
-s 设置svm类型:

0 – C-SVC
1 – v-SVC
2 – one-class-SVM
3 –ε-SVR
4 – n - SVR

-t 设置核函数类型,默认值为2

0 –线性核:u’v
1 –多项式核:(g
u’v+coef0)degree
2 – RBF核:exp(-γ
||u-v||2)
3 – sigmoid核:tanh(γ*u’*v+coef0)

其它设置
/**
-d degree:设置多项式核中degree的值,默认为3;
-g γ:设置核函数中γ的值,默认为1/k,k为特征(或者说是属性)数;
-r coef 0:设置核函数中的coef 0,默认值为0;
-c cost:设置C-SVC、ε-SVR、n - SVR中从惩罚系数C,默认值为1;
-n v:设置v-SVC、one-class-SVM与n - SVR中参数n,默认值0.5;
-p ε:设置v-SVR的损失函数中的e,默认值为0.1;
-m cachesize:设置cache内存大小,以MB为单位,默认值为40;
-e ε:设置终止准则中的可容忍偏差,默认值为0.001;
-h shrinking:是否使用启发式,可选值为0或1,默认值为1;
-b 概率估计:是否计算SVC或SVR的概率估计,可选值0或1,默认0;
-wi weight:对各类样本的惩罚系数C加权,默认值为1;
-v n:n折交叉验证模式;
*/

示例:

model = svmtrain(label_train, inst_train, '-s 4 -t 2');
3.预测
[predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(label_test, inst_test, model [, 'libsvm_options']);

示例:

[label_predicted, accuracy, dec_values] = svmpredict(label_test, inst_test, model)

参考:

[1] 勉旃,LIBSVM使用方法
[2] AlanDreamer,matlab安装LIBSVM

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LIBSVM入门 的相关文章

  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 如何以编程方式指定 MATLAB 编辑器键绑定

    我想将键盘键绑定设置为Windows 默认设置我想在启动时使用startup m因为我希望在大量系统上设置此设置 首选项对话框中的等效设置是 MATLAB gt Keyboard gt Shortcuts gt Active Setting
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 通过傅里叶空间填充进行插值

    我最近尝试在 matlab 上实现一个在傅立叶域中使用零填充的插值方法的简单示例 但我无法正常工作 我总是有一个小的频移 在傅里叶空间中几乎不可见 但它在时空上产生了巨大的误差 由于傅里叶空间中的零填充似乎是一种常见 且快速 的插值方法 因
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 选择 c 和 gamma 值

    您好 我正在使用 SMO 执行 SVM 分类 其中我的内核是 RBF 现在我想选择c and sigma值 使用网格搜索和交叉验证 我是内核函数的新手 请帮助 一步一步的过程 选择一些您认为有趣的 C 和 sigma 值 例如 C 1 10
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0

随机推荐

  • Flutter 信息贴

    框架学习 在 Flutter 中构建绘图应用程序 了解如何在 Flutter 中创建绘图应用程序 并探索 Flutter 在 CustomPaint 小部件的帮助下渲染和控制自定义 UI 的能力 在 Flutter 中创建可重用的自定义小部
  • 【IntelliJ IDEA学习之七】maven专题

    版本 IntelliJIDEA2018 1 4 一 maven全局设置 设置Runner 运行VM参数 Xms128m Xmx512m Duser language zh Dfile encoding UTF 8 二 maven项目 参考
  • 手把手教你springboot企业微信开发(一)

    手把手教你springboot企业微信开发 一 1 配置企业号 2 Springboot配置企业号 1 配置企业号 企业号登录 设置 网址是 https work weixin qq com wework admin loginpage w
  • 三天打鱼两天晒网C语言代码

    include
  • mongodb 正则-不区分大小写匹配

    1 正则查询 不区分大小写 i 设置开始字段 结束字段 其中某段匹配任意字段 name regex lslad cn options i 或者 name lslad cn i 2 踩坑记录 java中使用正则查询 name lslad cn
  • 使用 jQuery 创建滚动视图

    jQuery 是一个流行的 JavaScript 库 它简化了 JavaScript 编程 并提供了许多实用的功能和方法 在 jQuery 中 你可以使用 scroll 方法来创建滚动视图 下面是一个详细的教程 帮助你了解如何使用 jQue
  • 再谈Jquery Ajax方法传递到action

    之前写过一篇文章 Jquery Ajax方法传值到action 本文是对该文的补充 假设 controller中的方法是如下 public ActionResult ReadPerson PersonModel model string s
  • 计组(唐第三版)

    目录 前言 讲解问题 1 快速理解基本的电路符号 a 高低电平 b 高电平有效和低电平有效的理解及表示 c 基本的门元件 2 数电小白也能看得懂的74138译码器 c 74138译码器结构功能 c 74138译码器具体结构 3 唐书例4 1
  • 最详细的Python安装+Pycharm安装配置教程,从下载到安装配置

    最详细的Python安装 Pycharm安装配置教程 从下载到安装配置 本章节我们将向大家介绍如何在本地搭建Python开发环境 Python可应用于多平台包括 Linux 和 Mac OS X 你可以通过终端窗口输入 python 命令来
  • docker-compose实现容器任务编排

    项目开发中 往往都需要启动多个容器 容器之间又相互依赖 存在着启动的顺序 docker compose就是可以通过命令控制依次启动容器 容器编排工具可以帮助我们批量地创建 调度和管理容器 帮助我们解决规模化容器的部署问题 Docker 三种
  • PyQt5 按钮Buttons样式设计

    效果截图 PyQt 模型设计 PyQt 设计器截图 ui 源码
  • 存储IOPS指标说明

    二 IOPS 说明 2 1 IOPS Input OutputPer Second IOPS 即每秒的输入输出量 或读写次数 是衡量磁盘性能的主要指标之一 IOPS是指单位时间内系统能处理的I O请求数量 一般以每秒处理的I O请求数量为单
  • 材料阅读 - 四散的安全

    20201005 阅读了三篇与安全相关的文章 这里记录一下 1 以 威胁应对 为中心 看企业信息安全能力建设 这篇文章发表在了很多地方 发表的念头也比较早了 都过了两年了 对企业的安全能力 从架构上 最后到以后的安全产品都进行了介绍 同时也
  • 多态性 - C++中实现运行时多态的方式

    一 概述 C 中的多态性是指同一个函数可以有多种不同的实现方式 并且在运行时根据实际情况进行选择执行 在C 中实现多态有两种方式 静态多态和动态多态 静态多态是指在编译时确定函数的实现 包括函数重载和模板函数 动态多态是指在运行时根据对象的
  • 针对无人机航拍视频中动态背景下的目标检测

    目录 目录 传统目标检测技术 传统目标检测技术 1 帧间差分 通过连续两帧相同位置像素点间的灰度差来确定目标移动 但只适用于静态背景和目标单一条件的目标检测 仅适用于无人机悬停状态下的目标检测 2 背景差分法 通过预先设置背景 然后通过对检
  • “体育游戏第一股”投资未来,望尘科技走向价值兑现周期

    2022年的游戏市场 遗憾以疲弱之势落下帷幕 游戏市场规模与用户数量 均出现了小幅下降 显示出存量市场的典型特征 但与此同时 更多垂直领域的拳头产品 响应市场需求的精品游戏 却屡屡掀起热潮 去年随世界杯而来的 最佳球会 就是一例 最佳球会
  • C# 基础知识 (四).C#简介及托管代码

    暑假转瞬即逝 从10天的支教生活到1周的江浙沪旅游 在这个漫长的暑假中我经历了很多东西 也学到了很多东西 也认识到了很多不足之处 闲暇之余我准备重新进一步巩固C 相关知识 包括C 入门知识 C 并行开发 ASP网站等 这篇文章我介绍的是书籍
  • JS 地址截取 省市区 (含自治区,直辖市,县,自治县)

    方法一 通过js处理 var str 湖北省武汉市江夏区文化大道110号 var str 内蒙古自治区乌兰浩特市二区 var str 重庆市渝中区中兴路 var str 湖北省黄石市阳新县 var str 湖北省宜昌市长阳土家族自治县 va
  • 同步与异步的区别

    同步与异步的区别 最近在学习ajax 而ajax Asynchronous JavaScript and XML 是一种异步的JavaScript和XML技术 鉴于此 就先来了解下同步与异步的思想和区别 一 同步与异步 同步 同步是指一个进
  • LIBSVM入门

    一 引言 LIBSVM提供了多语言 java python和matlab 的SVM实现 可以便捷地处理分类或回归问题 本文记录基于matlab的LIBSVM学习笔记 二 环境搭建 LIBSVM下载链接 https github com cj