********************************************************

***数据集下载地址 :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代码的更多相关文章

  1. 如何加速MATLAB代码运行

    学习笔记 V1.0 2015/4/17 如何加速MATLAB代码运行 概述 本文源于LDPCC的MATLAB代码,即<CCSDS标准的LDPC编译码仿真>.由于代码的问题,在信息位长度很长 ...

  2. 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: ...

  3. 多分类问题中,实现不同分类区域颜色填充的MATLAB代码(demo:Random Forest)

    之前建立了一个SVM-based Ordinal regression模型,一种特殊的多分类模型,就想通过可视化的方式展示模型分类的效果,对各个分类区域用不同颜色表示.可是,也看了很多代码,但基本都是 ...

  4. Kmeans算法的应用实例(Matlab版本)

    K-means是一种经典的聚类算法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最 ...

  5. 卷积相关公式的matlab代码

    取半径=3 用matlab代码实现上式公式: length=3;for Ki = 1:length for Kj = 1:length for Kk = 1:length Ksigma(Ki,Kj,K ...

  6. C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)

       功能说明:C#创建一个windows服务,服务启动时D:\mcWindowsService.txt写入数据,服务运行期间每隔两秒写入当前时间. 原理这些就不说了,三语两语说不清楚,直接贴一个实例 ...

  7. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  8. OD调试9—实例:深入分析代码完成软件破解

    OD调试9—实例:深入分析代码完成软件破解  爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出 ...

  9. JAVA调用matlab代码

    做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1.    matlab版本:matlabR2014a ...

随机推荐

  1. Codeforces976E Well played! 【贪心】

    题目分析: 由于乘二的收获很大,所以我们可以证明乘的数一定是同一个,接着排序后依次选取,判断一下即可. 题目代码: #include<bits/stdc++.h> using namesp ...

  2. LOJ #2538. 「PKUWC 2018」Slay the Spire (期望dp)

    Update on 1.5 学了 zhou888 的写法,真是又短又快. 并且空间是 \(O(n)\) 的,速度十分优秀. 题意 LOJ #2538. 「PKUWC 2018」Slay the Spi ...

  3. 集成Android免费语音合成功能(在线、离线、离在线融合)

    集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没 ...

  4. 【BZOJ4555】求和(多种解法混合版本)

    [BZOJ4555]求和(多种解法混合版本) 题面 BZOJ 给定\(n\),求 \[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)\times 2^j \times ...

  5. luogu4932 浏览器 (拆)

    分析1的个数的奇偶性: 奇xor奇=偶xor偶=偶 奇xor偶=奇 所以只要统计1的个数是奇数的数的个数 和 是偶数的个数 乘一起就行了 直接用bitset来做,虽然常数很小/数据随机可以过,但复杂度 ...

  6. CAN总线中节点ID相同会怎样?

    CAN-bus网络中原则上不允许两个节点具有相同的ID段,但如果两个节点ID段相同会怎样呢? 实验前,我们首先要对CAN报文的结构组成.仲裁原理有清晰的认识. 一.CAN报文结构 目前使用最广泛的CA ...

  7. Spring Cloud学习(一)

    Spring Cloud是什么? Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载 ...

  8. C# ADO.NET与面向对象

    软件开发的三层:界面层,业务逻辑层,数据访问层: 数据访问层:项目添加App_Code文件夹: 实体类:根据数据库表结构,类名和数据库表名一致: 每个成员变量要与数据库表的列相对应,对象正好可以列为一 ...

  9. poj 2785(折半枚举+二分搜索)

    传送门:Problem 2785 题意: 给定 n 行数,每行都有 4 个数A,B,C,D. 要从每列中各抽取出一个数,问使四个数的和为0的所有方案数. 相同数字不同位置当作不同数字对待. 题解: 如 ...

  10. 搭建Spring4+Spring MVC web工程的最佳实践

    Spring是个非常非常非常优秀的java框架,主要是用它的IOC容器帮我们依赖注入和管理一些程序中的Bean组件,实现低耦合关联,最终提高系统可扩展性和可维护性,用它来辅助我们构建web工程将会感觉 ...