svm使用的一般步骤
LIBSVM 使用的一般步骤是:
1)准备数据集,转化为 LIBSVM支持的数据格式 :
[label] [index1]:[value1] [index2]:[value2] ...
即 [l类别标号] [特征1]:[特征值] [特征2]:[特征值] ...
2)对数据进行简单的缩放操作(scale);(为什么要scale,这里不解释了)
3)考虑选用核函数(通常选取径函数,程序默认);
4)采用交叉验证(一般采用5折交叉验证),选择最佳参数C与g ;
5)用得到的最佳参数C与g 对整个训练集进行训练得到SVM模型;
6)用得到的SVM模型进行测试
Libsvm 是一个简单的,易用的,高效的SVM分类和回归软件。它解决了 C-SVM 分类,nu-SVM 分类,
one-class-SVM,epsilon-SVM 回归,nu-SVM 回归(的问题)。它也提供了一个自动的 C-SVM 分类的模型选择工具。本文档解释了 Libsvm 的用法。
目录:
=======================
- 快速开始
- 安装与数据格式
- 使用 ‘svm-train’
- 使用 ‘svm-predict’
- 使用 ‘svm-scale’
- 实际应用的小贴士
- 例子
- 自定义核函数
- 库的使用
- Java 版本
- 编译 Windows 二进制文件
- 附加工具:Sub-sampling, Parameter Selection, Format checking, 等
- MATLAB/OCTAVE 接口
- Python 接口
- 补充
快速开始
=======================
如果你刚接触 SVM 并且数据不大,安装完毕之后请用 ‘tools' 文件夹下的 easy.py。它自动做好所有的事情——从数据缩放到参数选择。
安装和数据格式
=======================
在 Unix 系统中,键入 ‘make’ 编译 ‘svm-train’ 和 ‘smv-predict’ 程序。运行程序时不设参数可以显示它们的用法。
每一行包括一个实例(样本)并以 ‘\n’ 字符结束。对于分类,<label> 是一个整型数据,表示一个分类标签(支持多类分类)。对于回归,<label> 是一个可以为任意实数的目标值。对于 one-class SVM,它不被使用,所以可取任意值。一对 <index>:<value> 提供一个特征(属性)值:<index> 是从 1 开始的整型数据,<value> 是一个实数。唯一的例外是自定义核函数,<index> 从 0 开始;参见自 ‘定义核函数’ 部分。Indices 必须是单调增的顺序。测试文件中的 Labels 仅仅用于计算精度或误差。如果它们是未知量,只需在第一列任意填一个数。
这是一个缩放输入数据文件的工具(其实就是把属性值归一化)。
svm-toy:
这是一个简单的图形接口,它用一个平面展示 SVM 怎样将数据分开。你可以在窗口内点击来画出一些数据点,使用 ‘change’ 按钮来选择类别 1,2,3(即,最多支持三个类别),‘load’ 按钮用来载入文件中的数据,‘save’ 按钮用来保存数据到一个文件,‘run’ 按钮用来得到一个 SVM 模型,‘clear’ 按钮来清空窗口。
你需要 GTK+ 库来编译 GTK 版本。从 http://www.gtk.org 获取。
使用‘svm-train’
=======================
用法:svm-train [options] training_set_file [model_file]
options:
-s svm_type:设定SVM类型(默认为0)
-t kernel_type:设定核函数类型(默认为2)
-d degree:设定核函数的 degree 值(默认为 3)
-g gamma:设定核函数的 gamma 值(默认为 1/k)
-r coef0:设定核函数的 coef0 值(默认为 0)
-c cost:设定 C-SVC,epsilon-SVR,nu-SVR 的参数惩罚因子C值(默认为 1)
-g 选项中的的 k 为输入数据的属性数量。
-v 选项随机截取数据为 n 个部分,计算它们的交叉验证的精度或者均方误差。
关于输出的意义,参阅libsvm FAQ。
使用‘svm-predict’
用法:svm-predict [options] test_file model_file output_file
使用‘svm-scale’
=======================
=======================
> svm-scale -l -1 -u 1 -s range train > train.scale
缩放训练数据的每个特征值在 [-1,1] 内(训练数据文件为 train,缩放后的数据为 train.scale),缩放因子(就是一些参数)被存储在 range 文件中然后被用于缩放测试数据(测试数据文件为test,缩放后的数据为test.scale)。
> svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 data_file
用 RBF核函数 exp(-0.5|u-v|^2) 训练(data_file文件)得到一个分类器,C=10,终止允差为0.1。
用 线性核函数 u'v 解决 SVM 回归(问题),损失函数中 epsilon=0.1。
自定义核函数
=======================
svm使用的一般步骤的更多相关文章
- cs231n笔记:线性分类器
cs231n线性分类器学习笔记,非完全翻译,根据自己的学习情况总结出的内容: 线性分类 本节介绍线性分类器,该方法可以自然延伸到神经网络和卷积神经网络中,这类方法主要有两部分组成,一个是评分函数(sc ...
- Struck: Structrued Output Tracking with Kernels 论文笔记
Main idear Treat the tracking problem as a classification task and use online learning techniques to ...
- 斯坦福《机器学习》Lesson8感想-------1、SMO
从上一篇文章可知支持向量(supervector)就是指的离分隔超平面近期的那些点.整个SVM最须要的步骤是训练分类器.得到alpha,从而得到整个用于数据分类的分隔超平面.支持向量机(super v ...
- CNN结构:用于检测的CNN结构进化-分离式方法
前言: 原文链接:基于CNN的目标检测发展过程 文章有大量修改,如有不适,请移步原文. 参考文章:图像的全局特征--用于目标检测 目标的检测和定位中一个很困难的问题是,如何从数以万计的候选 ...
- 13 opencv训练器
https://blog.csdn.net/WZZ18191171661/article/details/91305466 https://blog.csdn.net/qq_25352981/arti ...
- Spark-Bench 测试教程
Spark-Bench 教程 本文原始地址:https://sitoi.cn/posts/19752.html 系统环境配置 操作系统:centos7 环境要求:安装 JDK, Hadoop, Spa ...
- 目标检测从入门到精通—R-CNN详细解析(二)
R-CNN目标检测详细解析 <Rich feature hierarchies for Accurate Object Detection and Segmentation> Author ...
- Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦
Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 + PPT 的下载地址:http ...
- SVM 实践步骤
主要公式步骤: 原距离问题的函数: 1.将SVM的距离问题转化为拉格朗日函数: 2.原函数问题化成如下问题: 3.对各非拉格朗日参数求偏导来求min值: 4.将上面 令各偏导等于0 的结果带回 拉 ...
随机推荐
- C#利用反射+特性实现简单的实体映射数据库操作类
附上源代码: using System; using System.Collections.Generic; using System.Data; using System.Linq; using S ...
- 浅谈web网站架构演变过程
前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...
- 成 功 的 背 后 !( 致给所有IT人员)
转载了这篇文章,希望能对自己和看到这篇博客的人有所激励. 成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走向成功的普通人. ------------------- ...
- No.007:Reverse Integer
问题: Reverse digits of an integer.Example1:x = 123, return 321Example2:x = -123, return -321 官方难度: Ea ...
- 14、ASP.NET MVC入门到精通——Ajax
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Unobtrusive Ajax使用方式(非入侵式) 非入侵式,通俗来讲:就是将嵌入在Html中的JavaScript全部取出来,放在单独的 ...
- 学习zepto.js(对象方法)[2]
今天来说下zepto那一套dom操作方法, prepend,append,prependTo,appendTo,before,after,insertBefore,insertAfter; 按着从内到 ...
- js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false
preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就 ...
- SharePoint 2013 版本功能对比
前言:在SharePoint使用中,经常纠结于版本问题,SharePoint 2013主要有免费的Foundation和收费的标准版.企业版三个版本,他们之间的功能上是不一样的,找了一些资料才发现下面 ...
- ionic day01教程第一天之多平台运行(ios & android)
一.创建项目 创建项目 ionic start myApp 运行项目 (1)通过浏览器运行项目 进入项目,后运行ionic serve cd myApp ionic serve 浏览器运行效果 二.多 ...
- Eclipse部署项目的原理简介eclipse,wtpwebapps,tomcat
转载请注明出处! http://www.cnblogs.com/libingbin/ 感谢您的阅读.如果文章对您有用,那么请轻轻点个赞,以资鼓励.