图3.2.3分类准确率实验结果图
结果分析:从上图可以看出,测试集预测分类准确率达到97.7528%,及89个预测数据中有两个被错误分类(类别一、类别二分类均正确,有2个类别三的样本被错误分成了类别二),分类精度较高,实验结果较为满意。
2.3 ROC 图形分析
ROC曲线涉及FPR与TPR两个指标,FPR即负例预测错误的数量与所有负例的比值,也叫错误率,反映模型的特异性;TPR即正例预测正确的数量与所有正例的比值,也叫命中率,反映模型的灵敏度。ROC曲线以误检率为X轴,以检出率为Y轴,描绘了模型输出的收益和代价之间的关系。为了衡量不同训练样本的基础上得到的ROC曲线的效果,我们引入曲线下面积,曲线下面积越大,分类准确性越高。在ROC曲线上,最靠近坐标图左上方的点为敏感性和特异性均较高的临界值。
该实验将178个样本50%做为训练样本,另50%做为测试样本,用到的RBF核参数(c惩罚因子)和g(核参数)分别为2和1。
11
仿真结果:
图3.2.4ROC图形
结果分析:从上图可以看出本次试验ROC曲线下面积接近于1,尤其是第1分类ROC曲线下面积已经达到1,说明实验结果较理想。
2.4运用不同数量的训练样本及采用不同核函数的对比
此次实验运用不同数量的训练样本来计算分类准确率,该实验分别采用10、15、
12
20、 25 、30、35、40个训练样本。我们运用四种不同核函数的SVM来对比,分别为:
线性可分函数 K?x,y??x?y 多项式核函数 K?x,y???x,y?r??d
,y径向基(RBF)核函数 K?x??exp???x?y
2?Sigmoid核函数(多层感知器核函数) K?x,y??tanh
???x,y??r?
仿真结果:
图3.2.5运用不同数量的训练样本及采用不同核函数的对比
结果分析:
(1) 整体来说,随着训练样本数的增多,分类准确率也会提高,但是增加到一定程度后趋于稳定,甚至会出现局部下降。这可能是由于数据中可能会有一些类噪声的样本而影响了分类准确率。
(2) 从核函数的对比来说,采用RBF核的svm分类准确率最高,尤其当训练样本较大时,其分类准确率达到100%,如下图所示。
13
图3.2.6采用RBF核的svm分类准确率
(3) 采用sigmoid核的svm分类准确率最低,采用线性可分核和多项式核的svm分类准确率居于中间。
四、 总结
本文主要讲了支持向量机的基本原理以及分类的应用,还分析了核参数对分类准确率的影响。其实支持向量机不仅在分类问题上有很好的性能,它已经被应用于多个方面。在人脸识别,基于SVM识别率和识别时间等方面都取得了较好的效果。另外,在语音识别、文字识别和图像处理等方面,基于SVM方法也取得了很好的效果。在机器学习领域,SVM地位是至关重要的。
本次实验使用了libsvm工具箱对葡萄酒种类的预测问题进行了仿真分析,通过本次实验,更加深了对支持向量机(svm)的原理、性能等的认识。从上面的实验结果的分析可知,SVM方法已经达到了较高的分类准确率,ROC曲线性能较好。整体上来看,训练样本数量越多,分类准确率越高。采用不用核函数的SVM性能也不一样,对于wine的数据来说,采用RBF核函数的SVM性能最好。
提高:
在实验时,要先明确实验目的,掌握实验原理及方法,再进行编程及分析。
本次试验时,由于matlab版本不同,不同版本之间函数的使用方法有所变化,花费了较长的时间。今后,在实验时,要注意软件版本更新的内容及函数使用方法的变化,以达到事半功倍的效果。
五、 参考文献
[1]李国正,王猛,曾华军译. 支持向量机导论. 北京:电子工业出版社,2004
[2]刘志刚,李德仁,秦前清,史文中. 支持向量机在多类分类问题中的推广. 计算机工程与
14
应用,2004, 7:10-13 [3]赵晶,张旭东,高隽. 基于支持向量机的多类形状识别系统. 合肥工业大学学报(自然科学版),2004,27(1):23-26
[4]萧嵘,孙晨,王继成,张福炎一种具有容噪性能的SVM多值分类器. 计算机研究与发展,2000,37(9):1071-1075
[5] Thorsten,Joachims.Learning to Classify Text Using Support Vector Machines. Dissertation, Universitaet Dortmund, February 2001
[6]昕炜.支持向量机算法的研究及应用[D].浙江大学,2003
[7]王莉,林锦国.支持向量机的发展与应用[J].石油化工自动化,2006,(3):34-38
[8]黄勇,郑春颖,宋忠虎.多类支持向量机算法综述[J].计算机技术与自动化. 2005,24(4):61-64
六、 附录(matlab 程序代码)
实验一:
%% SVM--葡萄酒种类识别
%机器学习作业 实验一:实验数据分析 % 2015.6 lvyuxuan %
%% 清空环境变量 close all; clear; clc;
format compact; %% 数据提取
% 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量 load lyx_wine.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:178
plot(run,wine_labels(run),'*'); end
15