机器学习SVM支持向量机实验报告_第1页
机器学习SVM支持向量机实验报告_第2页
机器学习SVM支持向量机实验报告_第3页
机器学习SVM支持向量机实验报告_第4页
机器学习SVM支持向量机实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告实验名称:机器学习:线性支持向量机算法实现学 员:张麻子学 号: *个*个*培养类型:硕士年 级:专 业:所属学院:计算机学院指导教员:*职 称:副教授实验室:实验日期:一、实验目的和要求实验目的:验证SVM (支持向量机)机器学习算法学习情况 要求:自主完成。二、实验内容和原理支持向量机(Support Victor Machine, SVM)的基本模型是在特征空间上找到最 佳的分离超平面使得训练集上正负样本间隔最大。SVM是用来解决二分类问题的有 监督学习算法。通过引入了核方法之后SVM也可以用来解决非线性问题。但本次实验只针对线性二分类问题。SVM算法分割原则:最小间距最大化,即

2、找距离分割超平面最近的有效点距离 超平面距离和最大。对于线性问题:T:w x + b = 0假设存在超平面可最优分割样本集为两类,则样本集到超平面距离为:T|w k + b| aF =皿问苟-=甫需压求取:职同Ts,t yw x 4- b) a由于该问题为对偶问题,可变换为:12颁刑w |s.t y/wx + 1可用拉格朗日乘数法求解。但由于本实验中的数据集不可以完美的分为两类,即存在躁点。可引入正则化 参数C,用来调节模型的复杂度和训练误差。min |w|/+ C#Ts,t, yjw x + b) 1 - 0作出对应的拉格朗日乘式:1nj=n=1fl对应的KKT条件为:心=珀3因5Xi 值况

3、=o叫+伉=c= % V另(心丁构一占)=1 &= /3; = 0 V = 0故得出需求解的对偶问题:mm捉咿为曲)-%S.t.= o, c oti 0,本次实验使用python编译器,编写程序,数据集共有2 7 0个案例,挑选其中 70%作为训练数据,剩下30%作为测试数据。进行了两个实验,一个是取C值为1, 直接进行SVM训练;另外一个是利用交叉验证方法,求取在前面情况下的最优C 值。三、实验器材实验环境:windows7操作系统+python编译器。四、实验数据(关键源码附后)实验数据:来自UCI机器学习数据库,以Heart Disease数据集为例。五、操作方法与实验步骤1、选取C=1

4、,训练比例7:3,利用python库sklearn下的SVM()函数进 行训练,后对测试集进行测试;2、选取训练比例7:3,C=np.linspace(0.0001, 1, 30)。利用交叉验证方法 求出C值的最优解。六、实验结果与分析实验一得出结果:C值:1训练集正确率:0.测试集正确率:0. 82160493821605测试集预测结果: TOC o 1-5 h z L1.2./L1.1.1.1.L1.2如2.21.1.2.2.1.2.1.旗Z1,1.1.1.2,1.1.2,1.2.2.2.2.1,1.2.1.1.2.1.1.2.1,2.2.2.1.1.2.1.1.2.1.2.1.1.1.1

5、.1.2.2.2.1.1.1.1.2.1.2.1.2.1.1.2.2.测试集真实结果.Ltl.1,1.2.1.1.2.1.1.1.1,1.1.2.2.1.1.2.2.2.2.1.2.L2.1.1.1.1.2.1.1.2.1.2.2.2.2.1.2.2.1.L2.1.2.1.1.2.2.2.1.1.2.1.1.1.2.1.2.1.1.1.1.1.2.L2.1.1.1.1.2. 1. 2. 1. 2. 1. 1.2.可见,训练集的正确率是0.8677248677248677,小于1,说明训练集存在躁点, 需要选择性的排出,才能得到较好的训练效果,测试集正确率达到了 0.82716049382716

6、05,还须进一步提高。实验二得出结果:最优参数;JCJ : 0. 06905862068965518,1 kernel :1 linearprecisionrecall fl-scoresupport1. 00. S70.850. 864S2. 00. 790.820. 8133avg / total0. 840.040. 0481可见,在上述情况下,当C=0.06905862068965518时,可得到较好的训练效果。七、问题与建议(可选)本次实验只是对SVM在线性空间的应用,还有非线性问题,多分类问题等。通过研究了解到,对于非线性问题,需要加入核函数;对于多分类问题,需要重新 调整模型八、

7、附录(源代码)import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl from sklearn import svm from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.metrics import classification_report def LoadData(path):data = np.loadtxt(path dtype=float, d

8、elimiter=)return data def Once_SVM(data, c=0.1, train_rate=0.7):x, y = np.split(data, (13,), axis=1)x_train, x_test, y_train, y_test = train_test_split(x, y, random_stat =0, train_siz =train_rate)clf = svm.SVC( =c, kernel=linear, decision_function_shap =ovo)clf.fit(x_train, y_train.ravel()print (uC

9、值:,c)print(u训练集正确率:,clf.score(x_train, y_train) # 精度print(u测试集正确率:,clf.score(x_test, y_test)print(u测试集预测结果:)y_hat = clf.predict(x_test)print(y_hat)print(u测试集真实结果:)print (y_test.T)x_train, x_test, y_train, y_test = train_test_split(x, y, random_stat =0, train_siz =train_rate)tuned_parameters=kernel: linear, C : np.linspace(0.0001, 1, 30)#构造这个GridSearch的分类器,5-foldclf = GridSearchCV(svm.SVC(), tuned_parameters, cv=5, scoring=accuracy)clf.fit(x_train, y_train.ravel()(u最优参数:) print(clf.best_params_)y_true, y_pred = y_test, clf.predict(x_test) print(class

温馨提示

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

评论

0/150

提交评论