libsvm参数说明

2023-05-16

因为要用svm做regression,所以看了一些关于libsvm,总结以备用

libsvm在训练model的时候,有如下参数要设置,当然有默认的参数,但是在具体应用方面效果会大大折扣。

Options:可用的选项即表示的涵义如下
  -s svm类型:SVM设置类型(默认0)
  0 -- C-SVC
  1 --v-SVC
  2 – 一类SVM
  3 -- e -SVR
  4 -- v-SVR


  -t 核函数类型:核函数设置类型(默认2)
  0 – 线性:u'v
  1 – 多项式:(r*u'v + coef0)^degree
  2 – RBF函数:exp(-gamma|u-v|^2)
  3 –sigmoid:tanh(r*u'v + coef0)


  -d degree:核函数中的degree设置(针对多项式核函数)(默认3)
  -g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k)
  -r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)
  -c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)
  -n nu:设置v-SVC,一类SVM和v- SVR的参数(默认0.5)
  -p p:设置e -SVR 中损失函数p的值(默认0.1)
  -m cachesize:设置cache内存大小,以MB为单位(默认40)
  -e eps:设置允许的终止判据(默认0.001)
  -h shrinking:是否使用启发式,0或1(默认1)
  -wi weight:设置第几类的参数C为weight*C(C-SVC中的C)(默认1)
  -v n: n-fold交互检验模式,n为fold的个数,必须大于等于2
  其中-g选项中的k是指输入数据中的属性数。option -v 随机地将数据剖分为n部

当构建完成model后,还要为上述参数选择合适的值,方法主要有Gridsearch,其他的感觉不常用,Gridsearch说白了就是穷举。


网格参数寻优函数(分类问题):SVMcgForClass
[bestCVaccuracy,bestc,bestg]=
SVMcgForClass(train_label,train,
cmin,cmax,gmin,gmax,v,cstep,gstep,accstep)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
cmin,cmax:惩罚参数c的变化范围,即在[2^cmin,2^cmax]范围内寻找最佳的参数c,默认值为cmin=-8,cmax=8,即默认惩罚参数c的范围是[2^(-8),2^8]。
gmin,gmax:RBF核参数g的变化范围,即在[2^gmin,2^gmax]范围内寻找最佳的RBF核参数g,默认值为gmin=-8,gmax=8,即默认RBF核参数g的范围是[2^(-8),2^8]。
v:进行Cross Validation过程中的参数,即对训练集进行v-fold Cross Validation,默认为3,即默认进行3折CV过程。
cstep,gstep:进行参数寻优是c和g的步进大小,即c的取值为2^cmin,2^(cmin+cstep),…,2^cmax,,g的取值为2^gmin,2^(gmin+gstep),…,2^gmax,默认取值为cstep=1,gstep=1。
accstep:最后参数选择结果图中准确率离散化显示的步进间隔大小([0,100]之间的一个数),默认为4.5。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。


网格参数寻优函数(回归问题):SVMcgForRegress
[bestCVmse,bestc,bestg]=
SVMcgForRegress(train_label,train,
cmin,cmax,gmin,gmax,v,cstep,gstep,msestep)
其输入输出与SVMcgForClass类似,这里不再赘述。


而当你训练完了model,在用它做classification或regression之前,应该知道model中的内容,以及其含义。

用来训练的是libsvm自带的heart数据

model =
    Parameters: [5x1 double]
      nr_class: 2
       totalSV: 259                   支持向量的数目
           rho: 0.0514               %  b
         Label: [2x1 double]     %  classification中标签的个数
         ProbA: []
         ProbB: []
           nSV: [2x1 double]     %  每类支持向量的个数
        sv_coef: [259x1 double]  %   支持向量对应的Wi

           SVs: [259x13 double]  %   装的是259个支持向量

model.Parameters参数意义从上到下依次为:
-s svm类型:SVM设置类型(默认0)
-t 核函数类型:核函数设置类型(默认2)
-d degree:核函数中的degree设置(针对多项式核函数)(默认3)
-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数) (默认类别数目的倒数)
-r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)


SVM 怎样能得到好的结果

1.    对数据做归一化(simple scaling

2.    应用 RBF kernel

3.    cross-validationgrid-search得到最优的cg

4.    用得到的最优cg训练训练数据

5.    测试







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

libsvm参数说明 的相关文章

  • USB3.0的物理层测试探讨

    USB简介 USB Universal Serial Bus 即通用串行总线 xff0c 用于把键盘 鼠标 打印机 扫描仪 数码相机 MP3 U盘等外围设备连接到计算机 xff0c 它使计算机与周边设备的接口标准化 在USB1 1版本中支持
  • ARM SoC漫谈

    作者 xff1a 重走此间路 链接 xff1a https zhuanlan zhihu com p 24878742 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 芯片厂商向客户介
  • linux下实现生产者消费者问题

    生产者 xff08 producer xff09 和消费者 xff08 consumer xff09 问题是并发处理中最常见的一类问题 xff0c 是一个多线程同步问题的经典案例 可以这样描述这个问题 xff0c 有一个或者多个生产者产生某
  • 解决Ubuntu下每隔几分钟自动锁屏,需要重新输入密码的问题

    看到这篇文章 xff0c 很实用 xff0c mark xff01 http www cnblogs com lanxuezaipiao p 3617436 html
  • Android NFC详解

    1 NFC概览 NFC xff0c 全称是Near Field Communication xff0c 中为近场通信 xff0c 也叫做近距离无线通信技术 使用了NFC技术的设备 xff08 例如移动电话 xff09 可以在彼此靠近的情况下
  • Microsoft VBScript 运行时错误 错误 '800a01a8' 缺少对象: ''

    Microsoft VBScript 运行时错误 错误 39 800a01a8 39 缺少对象 39 39 通常是这个对象已经关闭了 xff0c 你现在又关闭一次 xff01 xff01
  • 0/1背包问题之穷举解法

    0 1背包问题 有一个背包 xff0c 背包容量是M 61 150kg 有7个物品 xff0c 物品不可以分割成任意大小 xff08 这句很重要 xff09 要求尽可能让装入背包中的物品总价值最大 xff0c 但不能超过总容量 物品 A B
  • 把数据转换成json格式的字符串

    最近写程序遇到一个问题 xff0c 把一些数据转换成json格式的字符串保存起来 xff0c 这些数据有普通的键值对 xff0c 还有列表类型的 xff0c 下面写了一个小例子 xff0c 列表数据以复选框CheckBox形式来展示 xff
  • 解决Ubuntu12.04循环登录的问题

    今天用VMvare登录Ubuntu xff0c 发现用户名密码正确的情况下 xff0c 登录不进去 xff0c 循环出现登录界面 xff0c 但是guset可以登录 xff0c 在网上查找资料 xff0c 找到了解决的办法 xff1a 1
  • 美团2018春招笔试题

    任意一个正整数可以用字符 0 9 表示出来 但是当这些字符每种字符数量有限时 xff0c 可能有些正整数表示不出来 比如有两个 1 xff0c 一个 2 xff0c 能表示出11 12 112等等 xff0c 但是无法表示出10 122 2
  • GooglePlay - 排行榜及支付接入

    前言 Google Play应用商店在国外Android市场中地位基本与AppStore在IOS中的地位一致 xff0c 为此考虑国外的应用时 xff0c Android首要考虑的是接入GooglePlay的排行榜等支持 同样的由于Goog
  • 极光推送-点击通知栏跳到指定页面

    在MyReceiver接收器里面 xff0c 添加以下代码 xff1a if JPushInterface ACTION NOTIFICATION OPENED equals intent getAction Log d TAG 34 My
  • Android 5.0以上Button去掉阴影

    1 xff0c 在Button标签中直接添加以下属性 style 61 android attr borderlessButtonStyle 2 xff0c 有的Button的属性已经抽成style 此时直接在style时添加上parent
  • Tinker接入小白教程

    在这里先给大家拜个晚年 xff0c 虽然说新已经过了 本文是今天第一篇文章 xff0c 已经有好长时间没总结了 xff0c 算了给2017开个好头吧 之前一直搞不懂什么是热修复 xff1f 其实热修复就是在应用不用重新安装的情况下更新应用
  • 扫盲Android Studio 仓库jCenter并发布自己的开源库

    AS从哪里获取到开源库 首先我们在使用第三方开源库时 xff0c 直接在项目的 gradle 文件中添加这样一行代码 xff1a compile 39 com jakewharton butterknife 7 0 1 39 添加完之后 x
  • Mac安装android studio后卡在building gradle project info的解决方法

    1 找到 gradle目录 xff0c 一般在 User lt 用户名 gt 下 macOS Sierra 10 12 3可以直接快捷键 shift 43 command 43 显示隐藏的文件即可看到 gradle文件夹 2 进入 grad
  • 动态规划

    动态规划是20世纪50年代由Richard Bellman发明的 不像贪婪算法 xff0c 回溯算法等 xff0c 单从名字上根本理解不了这是什么鬼 Bellman自己也说了 xff0c 这个名字完全是为了申请经费搞出来的 xff08 囧
  • 使用ItemTouchHelper拖拽时两个item跟着动解决方法

    使用ItemTouchHelper时 xff0c 当RecyclerView的item数只有三个时 xff0c 拖动第二个item并拖出边界时 xff0c 第三个item就会往右边动 xff08 按照正常逻辑 xff0c 第三个item是不
  • 仿微信朋友圈发表图片拖拽和删除功能

    小窥朋友圈实现原理 我们使用Android Device Monitor来分析朋友圈发布图片的界面实现原理 如果需要分析其他应用的界面实现也是采用这种方法哦 打开Android Device Monitor xff0c 选择DDMS xff
  • mac ssh记住密码

    以下方法只针对已生成ssh密码的情况 1 cd ssh 2 cp id rsa pub authorized keys 3 有无默认端口号 xff1a xff08 1 xff09 默认端口号为22 xff1a ssh copy id i s

随机推荐

  • idea启动项目启动一半总是卡住不动原因以及解决办法?

    idea 有时出现项目启动运行一半就卡住 xff0c 也不报错 xff0c 你是不是很纳闷 xff1f 其实可能是 你的 断点打的多或者打到方法名上了 解决办法 xff1a 1 找到下图圈出来的按钮 xff0c 这是查看当前项目所有断点的地
  • springsecurity设置用户登录状态过期,让其重新登录

    手动程序让session过期 xff0c 使用户重新登录 判断是否过期 Object expireDate 61 redisTemplate opsForValue get username 43 34 expireDate 34 if e
  • vue如何避免变量赋值后双向绑定

    如 xff1a this list 61 this list2 结果在list改变后 list2也改变 xff0c 这不是我们想要的效果 第一种 xff1a 利用 JSON parse 和 JSON stringify this list
  • 快速部署PaddleHub使用PaddleOCR

    创建虚拟环境 xff1a conda create name hubocr python 61 3 7 安装paddlepaddle pip install paddlepaddle 61 61 2 0 0rc i https mirror
  • 整蛊:聊天中,连续发送消息的vbs脚本

    如何实现连续发送消息呢 xff1f 准备工作 xff1a 只要我们将下面这段代码复制放在记事本里 xff0c 然后保存退出将记事本文件后缀名改为 vbs就可以了 On Error Resume Next Dim wsh s xTimes t
  • 如何处理从application.properties配置文件获取的汉字乱码问题

    平时从配置文件各种读取配置参数都正常 xff0c 但是有时候放了个中文就乱码 xff0c 你肯定试过网上好多方法 xff0c 都没解决 xff0c 那么来看下面 xff0c 恭喜你终于找这里了 这里 xff0c 我们以springboot框
  • mybatis使用相关问题汇总——持续更新中

    1 疑问 xff1a 怎样让表字段和实体类里的驼峰命名字段对应尼 xff1f 解决方案 xff1a 以下配置可让表字段和实体类的字段相对应 1 此方法只针对 39 user name 39 变 userName 这种驼峰有效 xff0c 但
  • 五大常用算法总结

    引言 据说有人归纳了计算机的五大常用算法 xff0c 它们是贪婪算法 xff0c 动态规划算法 xff0c 分治算法 xff0c 回溯算法以及分支限界算法 虽然不知道为何要将这五个算法归为最常用的算法 xff0c 但是毫无疑问 xff0c
  • android 下载应用 通知栏显示进度 下完之后点击安装 (很实用)

    先看效果图 xff1a 这是本人的习惯 xff0c 先上图显示效果 xff0c 看是否是想要的 xff0c 再看代码 有图有真相 代码 xff1a Main package com gem hsx appupdate import andr
  • 轻松解决vscode官网下载慢问题

    下载vscode安装包时 xff0c 都习惯去官网下载 xff0c 但是会如下图第一次下载那样缓慢 xff0c 对着下载处右击 xff0c 复制出下载链接 xff0c 把下载链接中code visualstudio com换成vscode
  • redis获取缓存对象bean时报:SerializationException: Could not read JSON: Could not resolve type

    一 在单个应用内进行 存 取 工作中的问题场景 xff1a 将一个实体类对象set存入 redis中 xff0c 用的时候去get时 xff0c 报错提示 xff1a SerializationException Could not rea
  • window 2012 R2 忘记密码处理方案

    方案一 xff1a 你是否开启了内置管理员 xff0c 或是还建立了其他的管理员账户 如果有的话 xff0c 请先以其他管理员账户登入电脑 xff0c 在本地计算机和组中 xff0c 更改你的账户密码 方案二 xff1a 如果没有的话 xf
  • 达梦数据库不同模式导入时系统提示字符集异常的解决办法

    近期参加了达梦DCA的培训 xff0c 练习的时候遇到一个问题 xff1a 同一模式导出导入正常 xff0c 但是在将DMTEST模式导出的dmp文件导入DMTEST02时 xff0c 遇到了如下报错 xff1a 提示本地编码 PG UTF
  • gradle 插件与gradle版本对应关系

    https developer android google cn studio releases gradle plugin html updating gradle 插件版本所需的Gradle版本1 0 0 1 1 3 2 2 1 2
  • 程序员的硬件设备

    程序员的硬件设备 程序员的工作台 很多人从网上 或者公司里 xff0c 看到程序员开发的工作台是这样的 其实这是个误区 xff0c 不同的人习惯不一样 xff0c 对于程序员来说 xff0c 一台性能好点的电脑就做够了 市场上有很多驻场外包
  • scp 本地复制文件到服务器

    1 本地复制文件到服务器 scp Users guolm Desktop ROOT war root 64 192 168 1 228 opt tomcat webapps 2 服务器到本地文件 scp root 64 192 168 1
  • Wireshark 认识捕获的分析数据包(及各个分层协议的介绍)

    综述 xff1a 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了 xff0c 学会捕获数据了 xff0c 接下来就该去认识这些捕获的数据包了 Wireshark将从网络中捕获到的二进制数据按照不同的协议包
  • 禁用virtualbox自带的dhcp服务

    在你安装虚拟机的系统上面 xff0c 打开cmd xff1a cd D cd D softInstall VMvirtualbox6 D softInstall VMvirtualbox6 gt VBoxManage list dhcpse
  • MATLAB并行计算

    先上图 xff0c 图中求500次随机矩阵的特征值 xff0c 串行14 85s xff0c 并行3 63s 串行计算 tic S1 61 1 for i 61 1 500 S1 61 S1 43 max eig rand i end di
  • libsvm参数说明

    因为要用svm做regression xff0c 所以看了一些关于libsvm xff0c 总结以备用 libsvm在训练model的时候 xff0c 有如下参数要设置 xff0c 当然有默认的参数 xff0c 但是在具体应用方面效果会大大