机器学习实训实验报告(三)专业班级学号姓名实验项目名称:支持向量机:以SOM算法优化求解实验内容:1、理解支持向量机的概念,以及相关理论知识2、了解SMO算法概念,及在支持向量机上的应用3、理解核函数概念,理解核函数将数据映射到高维空间实验过程:算法分析:SMO算法:1、概述SMO算法在支持向量机中用来求解“对偶问题,即iEL询碣卿时-a,在这个问题中,变量是拉格朗日乘子a,—个ai对应一个样本点(xi,yi),变量总数等于样本数量NoSMO算法是一个启发式的算法,它的基本思路是:如果所有变量的解都满足KKT条件,即:f>0阳吊J一1亠£上0J6伽九巧)—1十£)=01W>0&>0-o如果所有变量的解都慢着KKT条件,那么这个最优化问题的解就得到了,因为KKT条件是这个最优化问题的充分必要条件
否则选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题,这个二次规划问题的关于这两个变量的解应该更接近原始二次规划问题的解,重要的是,这两个变量可以通过解析方法来求解
整个SMO算法有两大部分组成,第一部分就是选择这两个变量的启发式的方法,第二部分是求解这两个变量的解析方法
源程序代码:fromtimeimportsleepimportmatplotlib
pyplotaspitimportnumpyasnpimportrandomimporttypesfromnumpyimport*#函数说明:读取数据defloadDataSet(fileName):dataMat=[];labelMat=[]fr=open(fileName)forlineinfr
readlines():#逐行读取,滤除空格等lineArr=line
strip()
split('\t')dataMat
append([float(lineArr[0]),float(lineAr