基于SVM的数据分类预测——意大利葡萄酒种类识别
来源:互联网 发布:魔兽争霸3冰封王座mac 编辑:程序博客网 时间:2024/05/16 01:52
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;% 画出测试数据的分维可视化图figuresubplot(3,5,1);hold onfor run = 1:178 plot(run,wine_labels(run),'*');endxlabel('样本','FontSize',10);ylabel('类别标签','FontSize',10);title('class','FontSize',10);for run = 2:14 subplot(3,5,run); hold on; str = ['attrib ',num2str(run-1)]; for i = 1:178 plot(i,wine(i,run-1),'*'); end xlabel('样本','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),: );
<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
3 0
- 基于SVM的数据分类预测——意大利葡萄酒种类识别
- 数据挖掘之数据处理——SVM神经网络的数据分类预测-意大利葡萄酒种类识别
- 总结----意大利葡萄酒种类识别
- 基于SVM的分类识别 opencv3.1.0
- 基于SVM和KNN的手写数字的识别(分类)——小试牛刀篇
- 葡萄酒的分类
- 基于SVM的图像分类
- 数据挖掘笔记:分类和预测bayes,svm等
- 【大数据部落】基于ARIMA、SVM、随机森林销售的时间序列预测
- 基于数据挖掘SVM模型的pre-incident事故预防预测分析报告
- svm分类识别
- 基于SVM+HOG的花生品种识别
- 基于SVM和神经网络的车牌识别
- 基于SVM和神经网络的车牌识别
- 基于Gabor+PCA+SVM的性别识别
- #基于SVM的人脸识别
- opencv 基于SVM的几何形状识别
- 基于SVM的猫咪图片识别器
- hd1233还是畅通工程
- ubuntu12.04 vncserver
- 【学习笔记】C++高级程序设计:STL:Map 和 Multimap
- Perl ord()函数
- hdu 4944 FSF’s game 数学(公因子)+递推公式
- 基于SVM的数据分类预测——意大利葡萄酒种类识别
- vs2013编译程序不能在xp上运行的问题
- JAX-WS服务的简单示例
- 基于samba的windows与linux共享/基于cwRsyncServer的windows与linux共享
- php excel
- "=="和equals方法究竟有什么区别?
- UVA - 301 Transportation (回溯)
- 【HNOI(P) 2014】总结
- 人生是场马拉松