实验报告实验名称:机器学习:线性支持向量机算法实现学员:张麻子学号:***********培养类型:硕士年级:专业:_所属学院:计算机学院指导教员:******职称:副教授实验室:—实验日期:—一、实验目的和要求实验目的:验证 SVM(支持向量机)机器学习算法学习情况要求:自主完成。二、实验内容和原理支持向量机(SupportVectorMachine,SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。SVM 是用来解决二分类问题的有监督学习算法。通过引入了核方法之后 SVM 也可以用来解决非线性问题。但本次实验只针对线性二分类问题。SVM 算法分割原则:最小间距最大化,即找距离分割超平面最近的有效点距离超平面距离和最大。对于线性问题:wTx+b=0假设存在超平面可最优分割样本集为两类,则样本集到超平面距离为:•「任+兀 ap=讪下旷=TW需压求取:a1+Yi(wTx+b)a由于该问题为对偶问题,可变换为:min^llwll2s+1+yi(wTx+b)1可用拉格朗日乘数法求解。但由于本实验中的数据集不可以完美的分为两类,即存在躁点。可引入正则化参数 C,用来调节模型的复杂度和训练误差。min^l|w||2 十送 Eis+1+yi(wTx+b)>1-ft>0作出对应的拉格朗日乘式:i=inn-工化(X(wTXj+&)_]+&)_工陆j^li—\对应的 KKT 条件为:0 心£=d;—"二[aiytXj=0=>必=工二]山刃嘉=-h 珂片=05X1Q 滋=°▽&£=C—Qj—/5j=>CLj+0i=Cv(ctj(M(甘丁旳十 A)—1—$)=0mvyi(必丁科一/?)=1 一&Vz0 或=0=>/J;=0V=0故得出需求解的对偶问题:口iajyiy-b1S.t.Yai/j=0,CMaiM0,本次实验使用 python 编译器,编写程序,数据集共有 270 个案例,挑选其中70%作为训练数据,剩下 30%作为测试数据。进行了两个实验,一个是取 C 值为 1,直接进行 SVM训练;另外一个是利用交叉验证方法,求取在前面情况下的最优 C 值。三、实验器材实验环境:windows7 操作系统+python 编译器。四、实验数据(关键源码附后)实验数据:来自 UCI 机器学习数据库,以 HeartDisease 数据集为例。五、操作方法与实验步骤1、选取 C=1,训练比例 7:3,利用 python 库 sklearn 下的 SVM()函数进行训练,后对测试集进行测试;2、选取训练比例 7:3,C=,1,30)}。利用交叉验证方法求出 C 值的最优解。六、实验结果与分析实验一得出结果:吐:1训练冀 TF 萌率:0.S6^2^3677<-1S&77期试集 1E 賴卓:0.82^16049382^1605测试集预测结果:.1.1.2.2.1.1.1.1.1.1.1.2.2.2.2....