现代机器学习理论大作业_第1页
现代机器学习理论大作业_第2页
现代机器学习理论大作业_第3页
现代机器学习理论大作业_第4页
现代机器学习理论大作业_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现代机器学习理论大作业现代机器学习理论大作业20/20现代机器学习理论大作业现代机器学习理论大作业题目:葡萄酒的种类辨别鉴于支持向量机〔SVM〕的数据分类展望学院:姓名:学号:1?现代机器学习理论?葡萄酒的种类辨别鉴于支持向量机〔SVM〕的数据分类展望一、理论知识1、支持向量机〔SVM〕简介支持向量机〔SVM〕是Vapnik等人依据统计学习理论提出的一种学习方法,近来几年来在模式辨别、回归剖析、图像办理和数据发掘等方面获得了宽泛应用。支持向量机方法依据Vapnik的结构风险最小化原那么,尽量提升学习机的泛化能力,即由有限训练样本获得的决策规那么,对独立的测试集还能够获得小的偏差。其余,支持向量机算法是一个凸二次优化问题,能够保证找到的极值解就是全局最优解。这些特色使支持向量机成为一种优异的学习算法。当前在外国,SVM是一个研究的热点,并目已经获得了一些成就。这一点能够从近几年外国发布的学术论文看出,IEEETransactionsonNeuralNetworks也已经第一版了对于VC理论和SVM方面的专集。自从90年月初经典SVM的提出,因为其完好的理论框架和在实质应用中获得的好多好的成效,在机器学习领域遇到了宽泛的重视。其理论和应用在横向和纵向上都有了展开。当前对SVM的理论研究与进展主要包含:模糊支持向量机;最小二乘支持向量机;加权支持向量机;主动学习的支持向量机等。而对算法的改进主要内容有:降低计算量;自适应算法的研究;噪声数据办理;核函数的结构和参数的选择理论研究;主动学习策略的应用;增量学习等。固然SVM方法在理论上拥有很突出的优势,但与其理论研究对比,应用研究相对比拟落伍。近来几年,应用研究才渐渐地多起来。在模式辨别领域,包含手写体数字辨别、人脸检测、语音辨别、目表记别、文安分类等方面,获得了必定的成就。其余,支持向量机拥有调理参数少,运算速度快,时间代价小的长处,跟着支持向量机理论研究的逐渐深入,支持向量机在模式辨别、回归预计、概率密度函数预计等问题上的研究也逐渐深入,势必成为各国研究者的研究热点。2、支持向量机〔SVM〕原理2支持向量机(SupportVectorMachine,简称SVM)是成立在统计学习理论的VC维理论和结构风险最小原理的根基上展开起来的一种机器学习方法。支持向量机集成了最大间隔超平面、Mercer核、凸二次规划、稀少解和废弛变量等多项技术。支持向量机的学习目标就是结构一个决议函数,能够将数据点尽可能多的正确分开。2.1线性可分问题在好多现真相况下,训练样本数据拥有噪声,特色空间一般不可以线性分开,不行能成立一个不拥有分类偏差的分类超平面。以以下图所示,希望找到一个最优超平面,对整个训练会合均匀的分类偏差的概率抵达最小。图1.2.1线性不行分表示图我们在原有根基上引入了废弛变量i0,i能够用来胸怀样本xi违犯拘束条件的程度,在同意必定的程度上违犯间隔拘束。拘束条件就变成yiWTxib1i,i1,2,L,n对于0i1,样本x落入分离地区的内部,挡在分类面的正确一侧,对于i1,i那么i能够用来胸怀样本xi违犯拘束条件的程度,在同意必定的程度上违犯间隔拘束。拘束条件就变成yiWTxib1i,i1,2,L,n3那么问题的目标函数和拘束条件就为min12nCWi0,i1,2,L,n2i1此中is..tyiWTxib1in2C为处罚参数,它的作用是控制i提现了经验风险,此中W表达了表达能力,i1对错分样本的处罚程度,实此刻错分样本的比率与最大分类间隔之间的折中,C数值越大,那么对错误的处罚越重,这个值得选用依靠于经验或经过实验确立。相应地,也能够经过拉格朗日函数来求参数。线性不行分的拘束最优化问题中W和b的最优值的计算和线性可分状况中的过程是相同的,所以线性可分能够看作是线性不行分的特例。线性可分和线性不行分也不过区分在它们的拘束条件不同,线性可分的拘束条件是i0,而线性不行分的拘束条件是0iC。2.2非线性支持向量机在上述议论的支持向量机一定所有的训练样本能够被线性分开,结构出最优分类面,很多实质状况中训练样本是不可以够被线性分开的,就引出了非线性支持向量机。非线性支持向量机的实现就是经过某种预先选择的非线性映照(核函数)将输入向量映照到一个高维特色空间中,在这个空间中结构最优分类超平面。假定有非线性映照:RnH,将输入向量从原始的低维空间Rn映照到新的高维空间中去,而后在高维特色空间中利用二次规划的方法找寻最优超平面。这就意味着成立非线性学习器分为两步:第一使用一个非线性映照将训练样本数据变换到一个特色空间中,然后在这个特色空间使用线性学习分类器分类。图1.2.2展现了样本从二维输入空间映照到二维特色空间,在输入空间数据不可以经过线性函数分开,可是在特色空间是能够的。图1.2.2特色的映照4在上边的线性支持向量机对偶问题中,不论是目标函数仍是分类函数都只波及到训练样本之间的内积运算xi,xj,假如有一种方式能够在高维特色空间中直接计算内积,就防备了复杂的高维运算。就像在原始输入点的函数中同样,就有可能将两个步骤交融到一同成立一个非线性的学习器。所以,我们只需能够找到一个核函数K使得Kxi,xjxi,xj。依据泛函的有关理论,只需核函数知足Mercer条件,就对应某一变换空间的内积。所以,在最优分类面中采纳知足Mercer条件的内积函数Kxi,xj就能够实现某一非线性变换后的线性分类,而计算复杂度却没有增添。将核函数Kxi,xj带入原问题中,即可获得用于分类的非线性的支持向量机12nC2minWi2i1s..tyiWTgxib1i求解最优决议方法与线性的近似。训练样本数据映照到高维特色空间中,在求解最优化问题和计算决议函数时其实不需要显式计算该非线性函数,而只需计算核函数,进而防备了特色空间的维数灾害。核函数是输入空间和特色空间之间的映照,核函数的选择对非线性支持向量机的建立起着至关重要的作用,核函数的选择是一个难题,下边列出了几种常用的核函数:线性可分Kx,yxy多项式核函数dKx,yx,yr径向基(RBF)核函数2Kx,yexpxySigmoid核函数(多层感知器核函数)Kx,ytanhx,yr正那么傅里叶核函数1y2Kx,yy2212cosx52.3支持向量机复杂度使用SVM进行分类的时候,其实是训练和分类两个完好不同的过程,因此议论复杂度就不可以混为一谈,我们这里所说的主假如训练阶段的复杂度,即解那个二次规划问题的复杂度。对这个问题的解,根本上要区分为两大块,分析解和数值解。分析解就是理论上的解,它的形式是表达式,所以它是精准的,一个问题只需有解,那它的分析解是必定存在的。自然存在是一回事,能够解出来,或许能够在能够承受的时间范围内解出来,就是另一回事了。对SVM来说,求得分析解的时间复杂度最坏能够抵达O(Nsv3),此中Nsv是支持向量的个数,而固然没有固定的比率,但支持向量的个数多少也和训练集的大小有关。3、多类分类问题经典的支持向量机主要解决的是二分类问题,而在实质问题中,除了二分类问题,还有好多是多类分类问题。为实现多分类的问题,SVM应用不同的组合策略抵达多分类的目的。3.1一对一组合一对一分类法[2,3,4](One-Versus-One,简称OVO)也称为成对分类法,是一种将多分类问题分解为多个两分类子问题,每次不过选用此中的两类训练样本,在随意两类间建立分类超平面,假定有n类问题,总合需要结构n(n一1)/2个二值SVM分类器。如图图1.3.1一对一多分类表示图当对一个未知样本进行分类时,使用投票法:每个分类器都对其类型进行判断,并为相应的类型投上一票,最后得票最多的类型即作为该未知样本的类型。3.2一对多组合分类一对多组合分类法(OneVersusRest,简称OVR)是最早的多类分类算法,该方法的根本6思想就是先将每一类训练样本同其余所有类其余训练样本区分开来,结构所有可能的两分类SVM,再采纳某种联合策略将训练获得的所有两分类SVM组合起来解决多分类问题。以下图所示。对n类问题,该方法需结构n个二类支持向量机,每个支持向量机分别把某一类数据从其余类型中分离出来。图1.3.2一对多多分类表示图对随意一个未知样本的鉴别方法,就是将样本点分别代入上述的n个分类决议函数中,拥有最大分类函数值关(x)的那个类,即为样本点的类型。二、实现方法获得数据实验用的数据来自UCI数据集的wine的数据。在葡萄酒制造业中,对于葡萄酒的分类具有很粗心义,因为这波及到不同种类的葡萄酒的寄存以及销售价钱,采纳SVM做为分类器可以有效展望有关葡萄酒的种类,从UCI数据库中获得wine数据记录的是在乎大利某一地域同一地区上三种不同品种的葡萄酒的化学成分剖析,数据里含有178个样安分别属于三个类型(类型标签已给),每个样本含有13个特色重量(化学成分)。测试数据整体数据储存在lyx_wine.mat中。数据内容以下:Classnumber=3,记录类型数目〔用1,2,3取代〕;Wine,178*13的一个double型的矩阵,记录178个样本的13个属性,以以下图所示;Wine_lable,178*1的一个double型的列向量,记录178个样本各自的类型标签〔用1,2,3〕标志。7图2.1.1lyx_wine.mat数据表示图图2.1.2wine数据表示图数据详尽描述从UCI数据库中获得wine数据记录的是在乎大利某一地域同一地区上三种不同品种的葡萄酒的化学成分剖析,数据里含有178个样安分别属于三个类型(类型标签已给),每个样本含有13个特色重量(化学成分),以下:图2.1.3数据中13个特色重量含义表示图8实验模型成立本次实验大概分为4局部,分别为:实验数据剖析、成立分类模型,进行类型标签展望、ROC图形剖析以及运用不同数目的训练样本及采纳不同核函数的对比。三、实验仿真及编程1.实验仿真环境本实验的运转环境为〔R2021a〕,此中svm的实现采纳的是libsvm工具箱。2.实验内容2.1实验数据剖析对wine数据进行剖析,获得wine数据的可视化图和wine数据的分维可视化图。仿真结果:wine数据的box可视化图ProlineOD280/OD315ofdilutedwinesHueColorintensitysProanthocyaninsNonflavanoidphenolsFlavanoidsTotalphenolsMagnesiumAlcalinityofashAshMalicacidAlcohol050010001500属性值图3.2.1wine数据的可视化图9图3.2.2wine数据的分维可视化图结果剖析:从上图能够看出wine数据里含有178个样安分别属于三个类型(类型标签已给),每个样本含有13个特色重量(化学成分),且散布较均匀。2.2成立分类模型,进行类型标签展望将这178个样本50%做为训练样本,另50%做为测试样本,用训练样本对SVM分类器进行训练,用获得的模型对测试样本的进行分类标签展望。第一需要从原始数据里把训练集和测试集提拿出来,而后进行必定的预办理,以后用训练集对SVM进行训练,再用获得的模型来展望测试集的分类标签,即流程以下:1〕选定训练集和测试集2〕数据预办理3〕训练SVM4〕展望5〕分类正确率仿真结果:10图3.2.3分类正确率实验结果图结果剖析:从上图能够看出,测试集展望分类正确率抵达97.7528%,及89个展望数据中有两个被错误分类(类型一、类型二分类均正确,有2个类型三的样本被错误分红了类型二),分类精度较高,实验结果较为满意。2.3ROC图形剖析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、1220、25、30、35、40个训练样本。我们运用四种不同核函数的SVM来对比,分别为:线性可分函数Kx,yxyKx,yx,yd多项式核函数r径向基(RBF)核函数Kx,yexpx2ySigmoid核函数(多层感知器核函数)Kx,ytanhx,yr仿真结果:图3.2.5运用不同数目的训练样本及采纳不同核函数的对比结果剖析:整体来说,跟着训练样本数的增加,分类正确率也会提升,可是增添到必定程度后趋于稳固,甚至会出现局部降落。这可能是因为数据中可能会有一些类噪声的样本而影响了分类正确率。从核函数的对比来说,采纳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版本不同,不同版本之间函数的使用方法有所变化,花销了较长的时间。此后,在实验时,要注意软件版本更新的内容及函数使用方法的变化,以抵达事半功倍的成效。五、参照文件李国正,王猛,曾华军译.支持向量机导论.北京:电子工业第一版社,2004刘志刚,李德仁,秦前清,史文中.支持向量机在多类分类问题中的推行.计算机工程与14应用,2004,7:10-13赵晶,张旭东,高隽.鉴于支持向量机的多类形状辨别系统.合肥工业大学学报(自然科学版),2004,27(1):23-26[4]萧嵘,孙晨,王继成,张福炎一种拥有容噪性能的SVM多值分类器.计算机研究与展开,2000,37(9):1071-1075[5]Thorsten,Joachims.LearningtoClassifyTextUsingSupportVectorMachines.Dissertation,UniversitaetDortmund,February2001[6]昕炜.支持向量机算法的研究及应用[D].浙江大学,2003王莉,林锦国.支持向量机的展开与应用[J].石油化工自动化,2006,(3):34-38[8]黄勇,郑春颖,宋忠虎.多类支持向量机算法综述[J].计算机技术与自动化.2005,24(4):61-64六、附录〔matlab程序代码〕实验一:SVM--葡萄酒种类辨别%机器学习作业实验一:实验数据剖析%lvyuxuan%清空环境变量closeall;clear;clc;formatcompact;数据提取%载入测试数据wine,此中包含的数据为classnumber=3,wine:178*13的矩阵,wine_labes:178*1的列向量loadlyx_wine.mat;画出测试数据的box可视化图figure;boxplot(wine,'orientation','horizontal','labels',categories);title('wine数据的box可视化图','FontSize',12);xlabel('属性值','FontSize',12);gridon;画出测试数据的分维可视化图figuresubplot(3,5,1);holdonforrun=1:178plot(run,wine_labels(run),'*');end15xlabel('样本','FontSize',10);ylabel('类型标签','FontSize',10);title('class','FontSize',10);forrun=2:14subplot(3,5,run);holdon;str=['attrib',num2str(run-1)];fori=1:178plot(i,wine(i,run-1),'*');endxlabel('样本','FontSize',10);ylabel('属性值','FontSize',10);title(str,'FontSize',10);End实验二:SVM--葡萄酒种类辨别%机器学习作业实验二:成立分类模型,进行类型标签展望%lvyuxuan%清空环境变量closeall;clear;clc;formatcompact;数据提取%载入测试数据wine,此中包含的数据为classnumber=3,wine:178*13的矩阵,wine_labes:178*1的列向量loadlyx_wine.mat;选定训练集和测试集将第一类的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)];数据预办理%数据预办理,将训练集和测试集归一化到[0,1]区间16[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网络训练model=svmtrain(train_wine_labels,train_wine,'-c2-g1');SVM网络展望[predict_label,accuracy]=svmpredict(test_wine_labels,test_wine,model);结果剖析测试集的实质分类和展望分类图figure;holdon;plot(test_wine_labels,'o');plot(predict_label,'r*');xlabel('测试集样本','FontSize',12);ylabel('类型标签','FontSize',12);legend('实质测试集分类','展望测试集分类');title('测试集的实质分类和展望分类图','FontSize',12);gridon;实验三:SVM--葡萄酒种类辨别%机器学习作业实验三:ROC图形剖析%lvyuxuan%清空环境变量closeall;clear;clc;formatcompact;数据提取%载入测试数据wine,此中包含的数据为classnumber=3,wine:178*13的矩17阵,wine_labes:178*1的列向量loadlyx_wine.mat;选定训练集和测试集将第一类的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)];数据预办理数据预办理,将训练集和测试集归一化到[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网络训练option=['-t''2''-c''2''-g''1''-b''1'];model=svmtrain(train_wine_labels,train_wine,option);SVM网络展望[predict_label,accuracy,dec_values]=svmpredict(test_wine_labels,test_wine,model,'-b1');%[predictlabel,accuracy,]=svmpredict(testlabel,test,model,'-b1');结果剖析plotSVMroc(test_wine_labels,dec_values,3);实验四:SVM--葡萄酒种类辨别%机器学习作业实验四:运用不同数目的训练样本及采纳不同核函数的对比%lvyuxuan%18清空环境变量closeall;clear;clc;formatcompact;数据提取载入测试数据wine,此中包含的数据为classnumber=3,wine:178*13的矩阵,wine_labes:178*1的列向量loadlyx_wine.mat;选定训练集和测试集x1=[10152025303540];x2=[69747984899499];x3=[140145150155160165170];saccuracy1=[];saccuracy2=[];saccuracy3=[];saccuracy4=[];i=1;%每类有i个训练数据%每类有10个训练数据fori=1:7%将第一类的1-10/15/20/25/30/35/40,第二类的60-69/74/79/84/89/94/99,第三类的131-140/145/150/155/160/165/170做为训练集train_wine=[wine(1:x1(i),:);wine(60:x2(i),:);wine(131:x3(i),:)];相应的训练集的标签也要分离出来train_wine_labels=[wine_labels(1:x1(i));wine_labels(60:x2(i));wine_labels(131:x3(i))];%将第一类的11-59,第二类的80-130,第三类的141-178做为测试集test_wine=[wine(x1(i)+1:59,:);wine(x2(i)+1:130,:);wine(x3(i)+1:178,:)];相应的测试集的标签也要分离出来test_wine_labels=[wine_labels(x1(i)+1:59);wine_labels(x2(i)+1:130);wine_labels(x3(i)+1:178)];数据预办理数据预办理,将训练集和测试集归一化到[0,1]区间[mtrain,ntrain]=size(train_wine);[mtest,ntest]=size(test_wine);19dataset=[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网络训练model1=svmtrain(train_wine_labels,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论