update:把程序源代码和数据集也附上http://download.csdn.net/detail/zjccoder/8832699

2015.6.24

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

wine数据来自于UCI数据库。记录的是意大利同一地区3中不同品种的葡萄酒13中化学成分含量,以期通过科学的方法,达到自己主动分类葡萄酒的目的。

本次分类的数据共同拥有178个样本,每一个样本有13个属性,并提供每一个样本的正确分类,用于检验SVM分类的准确定。

首先我们画出数据的可视化图:

% 加载測试数据wine,当中包括的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量
load chapter_WineClass.mat;% 画出測试数据的box可视化图
figure;
boxplot(wine,'orientation','horizontal','labels',categories);
title('wine数据的box可视化图','FontSize',12);
xlabel('属性值','FontSize',12);
grid on;% 画出測试数据的分维可视化图
figure
subplot(3,5,1);
hold on
for run = 1:178plot(run,wine_labels(run),'*');
end
xlabel('样本','FontSize',10);
ylabel('类别标签','FontSize',10);
title('class','FontSize',10);
for run = 2:14subplot(3,5,run);hold on;str = ['attrib ',num2str(run-1)];for i = 1:178plot(i,wine(i,run-1),'*');endxlabel('样本','FontSize',10);ylabel('属性值','FontSize',10);title(str,'FontSize',10);
end

(图1)

(图2)

图1是wine数据的box可视化图。图2是wine的箱式图。从图上我们非常难分出每一种葡萄酒是哪种类型。以下我们尝试用SVM来分类。


数据的预处理

% 选定训练集和測试集% 将第一类的1-30,第二类的60-95,第三类的131-153做为训练集
train_wine = [wine(1:30,:);wine(60:95,:);wine(131:153,:)];
% 对应的训练集的标签也要分离出来
train_wine_labels = [wine_labels(1:30);wine_labels(60:95);wine_labels(131:153)];
% 将第一类的31-59,第二类的96-130,第三类的154-178做为測试集
test_wine = [wine(31:59,:);wine(96:130,:);wine(154:178,:)];
% 对应的測试集的标签也要分离出来
test_wine_labels = [wine_labels(31:59);wine_labels(96:130);wine_labels(154:178)];<strong>%% 数据预处理</strong>
% 数据预处理,将训练集和測试集归一化到[0,1]区间[mtrain,ntrain] = size(train_wine);
[mtest,ntest] = size(test_wine);dataset = [train_wine;test_wine];
% mapminmax为MATLAB自带的归一化函数
[dataset_scale,ps] = mapminmax(dataset',0,1);
dataset_scale = dataset_scale';train_wine = dataset_scale(1:mtrain,:);
test_wine = dataset_scale( (mtrain+1):(mtrain+mtest),: );


SVM网络建立、训练和预測

<span style="font-size:12px;">%% SVM网络训练
model = svmtrain(train_wine_labels, train_wine, '-c 2 -g 1');%% SVM网络预測
[predict_label, accuracy,dec_value1] = svmpredict(test_wine_labels, test_wine, model);</span>


结果分析

%% 结果分析% 測试集的实际分类和预測分类图
% 通过图能够看出仅仅有一个測试样本是被错分的
figure;
hold on;
plot(test_wine_labels,'o');
plot(predict_label,'r*');
xlabel('測试集样本','FontSize',12);
ylabel('类别标签','FontSize',12);
legend('实际測试集分类','预測測试集分类');
title('測试集的实际分类和预測分类图','FontSize',12);
grid on;

利用svm分类的准确率达到了98.8764%,在89个測试样本中仅有一个被分类错误。可见SVM在数据分类方面的强大!

END



基于SVM的数据分类预測——意大利葡萄酒种类识别相关推荐

  1. 基于SVM的数据分类预测——意大利葡萄酒种类识别

    SVM的基础概念 SVM的主要思想是:建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化.SVM也是结构风险最小化方法的近似实现. SVM的分类和预测在现实生活中作用特别大,例如说今年的 ...

  2. LIBSVM (三) 葡萄酒种类识别

    转自大神Jack王 https://www.cnblogs.com/blogwww/p/9498343.html 3.1 原始数据分析 1)测试数据为:wine data set,储存在chapter ...

  3. LIBSVM 多分类问题- 葡萄酒种类识别

    3.1 原始数据分析 1)测试数据为:wine data set,储存在chapter_WineClass.mat.classnumer = 3;wine,记录了178个样本的13个属性:wine_l ...

  4. 【SVM分类】基于人工蜂群算法优化支持向量机SVM实现数据分类附Matlab代码

    1 简介 为确定合理的底板防水煤岩柱尺寸,减少底板突水安全事故的发生,利用支持向量机(SVM)与人工蜂群算法(ABCA)综合研究底板破坏深度问题.由于SVM训练参数惩罚因子C和核函数宽度g的选择对预测 ...

  5. python遥感影像分类代码_python,sklearn,svm,遥感数据分类,代码实例

    python,sklearn,svm,遥感数据分类,代码实例,数据,函数,精度,遥感,路径 python,sklearn,svm,遥感数据分类,代码实例 易采站长站,站长之家为您整理了python,s ...

  6. 基于svm图像分类C语言,基于SVM的图像分类算法与实现.PDF

    , ( ) 计算机工程与应用 40 ComputerEngineeringandApplications 基于SVM的图像分类算法与实现 张淑雅 赵一鸣 李均利 , , , , ZHANGShu-ya ...

  7. 基于SVM的猫咪图片识别器

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 基于SV ...

  8. 时间序列深度学习:状态 LSTM 模型预測太阳黑子(一)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/kMD8d5R/article/details/82111558 作者:徐瑞龙,量化分析师,R语言中文 ...

  9. Python 基于SVM和KNN算法的红酒分类

    Python 机器学习之红酒分类问题 文章目录 Python 机器学习之红酒分类问题 前言 一.问题和目标是什么 1.原题 2.题目分析 二.算法简介 三.代码实现 1.算法流程框架 2.第三方库调用 ...

  10. 基于支持向量机 (SVM) 和稀疏表示理论 (SRC) 的人脸识别比较

    一 背景 1.1 支持向量机简介 支持向量机(Support Vector Machine,SVM)是AT&TBell 实验室的V.Vapnik等人提出的一种机器学习算法,是迄今为止最重要的机 ...

最新文章

  1. Taro+react开发(45)taro中组件生命周期
  2. Linux LiveCD:从CD光盘运行Linux
  3. 阿里云服务使用docker安装mysql
  4. ReportMachine 打印机横向
  5. 重新学习FPGA(一):EDA技术
  6. 计算机代码查重软件,文件查重程序
  7. Lempel-Ziv algorithm realization
  8. PDF转长图片怎么转?不妨试试这个方法
  9. isin函数及其反函数
  10. Ubuntu 16.04安装Fcitx拼音输入法
  11. MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介)
  12. python语言最早的可用版本诞生于几几年_python语言公开发行版本诞生于哪年
  13. 我想学单片机,但不知从何下手
  14. 使用MindStudio的HPO界面工具进行调优
  15. math.pow 和 Math.sqrt函数
  16. macOS Xcode C语言使用延时函数
  17. 编译安装常用包+阿里镜像源-常用资源-系统-下载-科莱软件下载-docker仓库包-安全圈-杏雨梨云-图形界面安装...
  18. 用什么条码标签制作软件批量打印产品吊牌?
  19. OPencv--基于Hu矩的轮廓匹配
  20. C#使用委托实现在Form2中调用Form1中的控件

热门文章

  1. 淘宝评论API接口,item_review-获得淘宝商品评论API接口接入说明
  2. 请没有买房和买车的朋友一定认真的看一下(转)
  3. 985学生:为什么现在学校还在教C语言?| 文末送书
  4. 计算机等级考试四级网络工程师真题,计算机四级网络工程师试题及答案
  5. VS2015基于对话框的MFC倒计时器
  6. AcWing 1183电力(Tarjan求割点)
  7. 1962年 电影版 越剧红楼梦 剧本
  8. 世界杯梦幻阵容HTML5代码,2018俄罗斯世界杯法国队23人大名单一览表
  9. MOTO 国行ME525升级Android2.3.4教程
  10. travis ci java_[转]Travis Ci的最接底气的中文使用教程