SVM实例及Matlab代码
********************************************************
***数据集下载地址 :http://pan.baidu.com/s/1geb8CQf****
*********************************************************
zhangtao1698@126.com
一次模式识别课中的关于SVM用法的一个简单的实例(训练集和测试集简单的划分):
一、实验目的
1.掌握支持向量机(SVM)的原理、核函数类型选择以及核参数选择原则等;
2.熟悉基于libSVM二分类的一般流程与方法;
二、实验内容
1.对“bedroom, forest”两组数据进行分类(二分类);
2.得到试验分类准确率;
三、实验条件
1.LibSVM软件包,3.17版本;
2. Matlab 2013a。
四、实验方法与流程
(1) 试验流程:
Step1: 根据给定的数据,选定训练集和测试集;
Step2: 为训练集与测试集选定标签集;
Step3: 利用训练集进行训练分类器得到model;
Step4: 根据model,对测试集进行测试集得到accuracyrate;
(2) 实验数据准备:
“bedroom.mat”10*15的矩阵,分别代表了不同的十张有关于bedroom的图片的15维属性;
“forest.mat”10*15矩阵,分别代表了不同的十张有关于forest的图片的15维属性特征;
训练集:trainset(); 分别取bedroom(1:5,:)和forse(1:5,:)作为训练集;
测试集:testset(); 分别取bedroom(6:10,:)和forse(6:10,:)作为测试集;
标签集:label(); 取bedroom的数据为正类标签为1;forse的数据为负类标签为-1.
(3) Matlab程序与实验结果:
附录:matlab代码
%% SVM数据分类预测---作业数据
%
%
%*****write by Taozhang 2014.04.16
%%
clear all;
clc;
%%
% 作业中提供的数据已做整理,不在单独导入;
load dataset.mat %导入要分类的数据集
load labelset.mat %导入分类集标签集
% 选定训练集和测试集
% 将第一类的1-5,第二类的11-15做为训练集
train_set =[dataset(1:5,:);dataset(11:15,:)];
% 相应的训练集的标签也要分离出来
train_set_labels =[lableset(1:5);lableset(11:15)];
% 将第一类的6-10,第二类的16-20,做为测试集
test_set =[dataset(6:10,:);dataset(16:20,:)];
% 相应的测试集的标签也要分离出来
test_set_labels =[lableset(6:10);lableset(16:20)];
% 数据预处理,将训练集和测试集归一化到[0,1]区间
[mtrain,ntrain] = size(train_set);
[mtest,ntest] = size(test_set);
test_dataset = [train_set;test_set];
% mapminmax为MATLAB自带的归一化函数
[dataset_scale,ps] =mapminmax(test_dataset',0,1);
dataset_scale = dataset_scale';
train_set = dataset_scale(1:mtrain,:);
test_set = dataset_scale((mtrain+1):(mtrain+mtest),: );
%% SVM网络训练
model = svmtrain(train_set_labels,train_set, '-s 2 -c 1 -g 0.07');
%% SVM网络预测
[predict_label] =svmpredict(test_set_labels, test_set, model);
%% 结果分析
% 测试集的实际分类和预测分类图
% 通过图可以看出只有一个测试样本是被错分的
figure;
hold on;
plot(test_set_labels,'o');
plot(predict_label,'r*');
xlabel('测试集样本','FontSize',12);
ylabel('类别标签','FontSize',12);
legend('实际测试集分类','预测测试集分类');
title('测试集的实际分类和预测分类图','FontSize',12);
grid on;
程序运行结果:
optimization finished, #iter = 5
nu = 0.643949
obj = -4.304693, rho = -0.008725
nSV = 8, nBSV = 6
Total nSV = 8
Accuracy = 100% (10/10) (classification)
关于支持向量机(SVM)的一个简单应用实例及matlab代码
SVM实例及Matlab代码的更多相关文章
- 如何加速MATLAB代码运行
学习笔记 V1.0 2015/4/17 如何加速MATLAB代码运行 概述 本文源于LDPCC的MATLAB代码,即<CCSDS标准的LDPC编译码仿真>.由于代码的问题,在信息位长度很长 ...
- spark Mllib SVM实例
Mllib SVM实例 1.数据 数据格式为:标签, 特征1 特征2 特征3…… 0 128:51 129:159 130:253 131:159 132:50 155:48 156:238 157: ...
- 多分类问题中,实现不同分类区域颜色填充的MATLAB代码(demo:Random Forest)
之前建立了一个SVM-based Ordinal regression模型,一种特殊的多分类模型,就想通过可视化的方式展示模型分类的效果,对各个分类区域用不同颜色表示.可是,也看了很多代码,但基本都是 ...
- Kmeans算法的应用实例(Matlab版本)
K-means是一种经典的聚类算法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最 ...
- 卷积相关公式的matlab代码
取半径=3 用matlab代码实现上式公式: length=3;for Ki = 1:length for Kj = 1:length for Kk = 1:length Ksigma(Ki,Kj,K ...
- C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)
功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间. 原理这些就不说了,三语两语说不清楚,直接贴一个实例 ...
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- OD调试9—实例:深入分析代码完成软件破解
OD调试9—实例:深入分析代码完成软件破解 爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出 ...
- JAVA调用matlab代码
做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1. matlab版本:matlabR2014a ...
随机推荐
- LightOJ - 1341 Aladdin and the Flying Carpet (算术基本定理)
题意: 就是....求a的所有大于b的因子有多少对 算术基本定理求 所有因子 阿欧...偷张图. 注意范围 就好 ..... 解析: 在1 -1012的范围内求大于b的所有a的因子的对数(有几对) ...
- MT【61】含参数二次函数最大最小值
评:此类题目在高考中作为压轴题也曾考过,一般通性通法都如上面的做法,但是我们如果可以站在包络的角度,很多问题将变得很清晰:
- Python的单向链表实现
思路 链表由节点组成,先规定节点(Node),包含data和指向下个节点的next 初始化 data当然就是传入的data了,next指向None 添加 分两种情况: 链表为空,那么头节点和尾节点都指 ...
- 自学Zabbix13.1 分布式监控proxy介绍
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix13.1 分布式监控proxy介绍 zabbix2.4版本之前,zabbix提供了 ...
- 搭建gulp脚手架
前段时间刚好在开发公司的首页,使用的是gulp工作流,gulp相对于webpack而言,配置简单,也更加直观(很符合直觉),日常开发一些静态页面.html5专题也足够,这里把遇到的坑与实践经验记录一下 ...
- module 'scipy.misc' has no attribute 'toimage',python
anaconda环境下: 错误:python 命令行运行出错:module 'scipy.misc' has no attribute 'toimage' 解决:打开Anaconda prompt,输 ...
- redis 一主二从三哨兵
总体部署 一主二从三哨兵 ip地址分配分别为 主 127.0.0.1:6379 从 127.0.0.1:6389 从 127.0.0.1:6399 哨兵 127.0.0.1:26379 哨兵 127. ...
- CSS的显示模式
div与span div与span有什么区别 div单独占一行,span不会单独占一行 div是容器级的标签,而span是一个文本级的标签 容器级的标签有:div , h , ul , ol , dl ...
- Eclipse启动时出现错误 An internal error occurred during: "Updating indexes"
在Eclipse的workspace下有个.metadata文件夹,Eclipse出现异常的log文件就在这个目录下. 最近出现了这样的错误: 查看日志文件发现: !ENTRY org.ecl ...
- 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数
over(Partition by...) 一个超级牛皮的ORACLE特有函数. 天天都用ORACLE,用了快2年了.最近才接触到这个功能强大而灵活的函数.真实惭愧啊! oracle的分析函数over ...