您好,欢迎访问三七文档
最优化方法综合训练一、实验目的通过matlab上机编程加深对线性规划问题的理解,初步认识线性支持向量机(LSVM)。二、实验要求线性支持向量机的数学模型如下:minwb、、、+C{ni1ξi}(1)s.t.(,)1iiiywxb,i=1,2,……liw,i=1,2,……l0i,i=1,2,……l其分类规则为:f(x)=sgn{*w,x+*b}(2)这里*w,*b是模型(1)的最优解,x是待预测类别标号的样本。要求生成训练集和测试集,根据给定的训练集,求解模型(1),并用分类规则(2)来预测测试集样本的类别,分别给出训练集和测试集的判准率,并给出所求得的*w,*b。三、实验步骤1.生成训练集和测试集。利用rand函数生成随机数,因为rand()生成的随机数是均匀分布的,随机数大于0.3的概率即为70%,小于等于0.3的概率为30%,同理可以处理分类时的80%概率。给定数据库规模为(m+m1)×n,其中m为训练样本数,m1为测试样本数,n为每个样本的属性个数。这里取m=200,m1=100,n=10。2.求解模型(1)。利用matlab的optim工具箱中的linprog()函数。其一般格式为:x=linprog(f,A,b,Aeq,beq,lb,ub)其中f为目标函数系数矩阵,A为约束条件系数矩阵,b为不等式约束右侧的常数矩阵,lb为变量的下界。Ub为变量的上界。给定的训练样本集数目为200,根据这200个求解方程(1),先确定解向量X的分量。根据题目给出的方程,解向量X的分量处理如下:1)分量1到分量10为iw,i=1……10;2)分量11为b;3)分量12为;3)分理13到分量212为i,i=1……200;即X有212个分量。又因为约束方程有220个,因此A为220x212矩阵,b为220x1矩阵,f为1x212矩阵。而上下限的约束,只有0ii=1,2,……200将f,A,b,lb代入linprog()函数即可求解。3.将求出的*w,*b代入方程(2)即可对测试样本进行分类。四、实验结果执行m文件main.m调用sample_data.m分别产生训练集和测试集,然后求解模型,得出训练集和测试集准确率可求得如下结果:Optimizationterminated.解出来的b和W:b=-0.1701W=1.37731.62301.53831.79491.33921.88802.26671.72631.67321.8615练样本集的判准率为:wright1=0.9350预测的判准率为:wright2=0.9500第二次实验结果:解出来的b和W:b=0.1974W=1.21992.12791.74910.98960.88841.91891.89521.82391.82041.8063训练样本集的判准率为:wright1=0.9350预测的判准率为:wright2=0.9100经过多次实验,发现预测的判准率和训练样本集的判准率基本上持平,有时甚至在训练样本集的判准率之上,这说明线性支持向量机在一定范围内是一种很好的分类器。
本文标题:最优化实验报告
链接地址:https://www.777doc.com/doc-2316907 .html