% SVM分类与回归
tic;
clear;
clc;
close all;
format compact;
%% 使用Libsvm进行分类的小例子
%{
一个班级里面有两个男生(男生1、男生2),两个女生(女生1、女生2),其中
男生1 身高:176cm 体重:70kg;
男生2 身高:180cm 体重:80kg;
女生1 身高:161cm 体重:45kg;
女生2 身高:163cm 体重:47kg;
如果我们将男生定义为1,女生定义为-1,并将上面的数据放入矩阵data中,
并在label中存入男女生类别标签(1、-1)
%}
data = [176 70;
180 80;
161 45;
163 47];
label = [1;1;-1;-1];
%{
这样上面的data矩阵就是一个属性矩阵,行数4代表有4个样本,列数2表示属性有两个,
label就是标签(1、-1表示有两个类别:男生、女生)。
%}
% 利用libsvm建立分类模型
model = svmtrain(label,data);
%{
此时该班级又转来一个新学生,其
身高190cm,体重85kg
我们想给出其标签(想知道其是男[1]还是女[-1])
由于其标签我们不知道,我们假设其标签为-1(也可以假设为1)
%}
testdata = [190 85];
testdatalabel = -1;
[predictlabel,accuracy] = svmpredict(testdatalabel,testdata,model);
predictlabel
if 1 == predictlabel
disp('==该生为男生');
end
if -1 == predictlabel
disp('==该生为女生');
end
% % 下面再使用libsvm工具箱本身带的测试数据heart_scale来进行一下测试
% 首先载入数据
load heart_scale;
data = heart_scale_inst;
label = heart_scale_label;
% 选取前200个数据作为训练集合,后70个数据作为测试集合
ind = 200;
traindata = data(1:ind,:);
trainlabel = label(1:ind,:);
testdata = data(ind+1:end,:);
testlabel = label(ind+1:end,:);
% 利用训练集合建立分类模型
model = svmtrain(trainlabel,traindata,'-s 0 -t 2 -c 1.2 -g 2.8');
% 利用建立的模型看其在训练集合上的分类效果
[ptrain,acctrain] = svmpredict(trainlabel,traindata,model);
% 预测测试集合标签
[ptest,acctest] = svmpredict(testlabel,testdata,model);
%% 使用Libsvm进行回归的小例子
% 生成待回归的数据
x = (-1:0.1:1)';
y = -x.^2;
% 建模回归模型
model = svmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');
% 利用建立的模型看其在训练集合上的回归效果
[py,mse] = svmpredict(y,x,model);
scrsz = get(0,'ScreenSize');
figure('Position',[scrsz(3)*1/4 scrsz(4)*1/6 scrsz(3)*4/5 scrsz(4)]*3/4);
plot(x,y,'o');
hold on;
plot(x,py,'r*');
legend('原始数据','回归数据');
grid on;
% 进行预测
testx = 1.1;
display('真实数据')
testy = -testx.^2
[ptesty,tmse] = svmpredict(testy,testx,model);
display('预测数据');
ptesty
%% Record Time
toc;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、资源内容:基于Matlab实现SVM分类与回归(源码+数据).rar 2、适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本资源作为“参考资料”而不是“定制需求”不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。
资源推荐
资源详情
资源评论
收起资源包目录
基于Matlab实现SVM分类与回归(源码+数据).rar (4个子文件)
基于Matlab实现SVM分类与回归(源码+数据)
img
Chapter_ClassifyRegressUsingLibsvm.png 2KB
Chapter_ClassifyRegressUsingLibsvm_01.png 9KB
Chapter_ClassifyRegressUsingLibsvm.m 2KB
heart_scale.mat 28KB
共 4 条
- 1
资源评论
Matlab仿真实验室
- 粉丝: 4w+
- 资源: 2431
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (179941432)基于MATLAB车牌识别系统【GUI含界面】.zip
- (179941434)基于MATLAB车牌识别系统【含界面GUI】.zip
- (178021462)基于Javaweb+ssm的医院在线挂号系统的设计与实现.zip
- (178047214)基于springboot图书管理系统.zip
- 张郅奇 的Python学习过程
- (23775420)欧姆龙PLC CP1H-E CP1L-E CJ2M CP1E 以太网通讯.zip
- (174590622)计算机课程设计-IP数据包解析
- (175550824)泛海三江全系调试软件PCSet-All2.0.3 1
- (172742832)实验1 - LC并联谐振回路仿真实验报告1
- 网络搭建练习题.pkt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功