《模式识别原理、应用及实现》 课件 4.10支持向量机-实验_第1页
《模式识别原理、应用及实现》 课件 4.10支持向量机-实验_第2页
《模式识别原理、应用及实现》 课件 4.10支持向量机-实验_第3页
《模式识别原理、应用及实现》 课件 4.10支持向量机-实验_第4页
《模式识别原理、应用及实现》 课件 4.10支持向量机-实验_第5页
已阅读5页,还剩28页未读, 继续免费阅读

下载本文档

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

文档简介

模式识别1/justinruan/Learning-ML学以致用,知行合一(实践篇)SVM编程算例2回顾SVM的三步曲

3

4.10.1sklearn里的SVMSVM算法在sklearn.svm工具包中,其中SVC类是用于进行分类任务,SVR是用来进行数值回归任务的。这里使用离散的数值计算来代替连续的数值回归classsklearn.svm.SVC(C=1.0,kernel='rbf',degree=3,gamma='auto',coef0=0.0,shrinking=True,probability=False,tol=0.001,cache_size=200,class_weight=None,verbose=False,max_iter=-1,decision_function_shape='ovr',random_state=None)首先需要选择SVM的核函数,参数kernel指定‘linear’,‘poly’,‘rbf’,‘sigmoid’,‘precomputed’oracallable.44.10.1sklearn里的SVM

5

示例1:两个特征,两个类别数据集生成一个有两个特征,两个类别的数据集,然后用线性核函数的SVM算法进行分类。6示例17画出支持向量生成数据网格预测数据网格画出分界线画出训练样本示例2:两个特征,三个类别数据集分别构造4个SVM算法来分割数据集,线性核,三阶多项式核,gamma=0.5的高斯核,gamma=0.1的高斯核。8示例2左上角:线性核右上角:三阶多项式核左下角:gamma=0.5的高斯核右下角:gamma=0.1的高斯核问题:为什么很多支持向量远离分隔超平面?94.10.2乳腺癌检测使用逻辑回归算法进行了乳腺癌检测模型的学习和训练,这里使用支持向量机来解决这个问题。1)载入数据10这里有569个样本,30个特征;数据集很小,高斯核函数太复杂,容易造成过拟合datashape:(569,30);no.positive:357;no.negative:2124.10.2乳腺癌检测生成训练集和测试集使用高斯核函数进行训练训练集近满分,测试集评分很低,过拟合现象。11参数优化使用GridSearchCV来自动选择gamma参数。12高斯核参数优化设定gamma=0.01,画出学习曲线13过拟合多项式核使用二阶多项式核函数来拟合模型14多项式核画出一阶多项式和二阶多项式的学习曲线15多项式核二阶多项式核的效果更好。16与逻辑回归的比较17SVMDegree=2LogisticDegree=1,penalty=L1LogisticDegree=2,penalty=L1LogisticDegree=1,penalty=L2LogisticDegree=2,penalty=L2最好的效果是Logistic,二阶多项式特征,L1范数的正则项。SVM,二阶多项式核次之。Logistic,二阶多项式特征,L2范数的正则项的效果最差。模型选择和模型参数调优的作用4.10.3人脸识别使用英国剑桥AT&T实验室的研究人员自拍的一组照片(AT&TLaboratoriesCambridge,1992~1994),来开发一个特定的人脸识别系统。181)加载数据集代码自动到网上下载人脸数据集到子目录datasets中,得到olivetti_py3.pkz文件。加载的图片保存到faces变量中。人脸数据集19原始图像是PGM格式,图像大小为92x112,256级灰度加载数据集整个数据集有400张人脸的缩略图,包含40位人员。每个人10张照片。这里sklearn已经把每张照片做了预处理,裁剪成64x64大小,且人脸居中显示。这一步至关重要,否则我们的模型将被大量的噪声,即图片背景干扰。因为人脸识别的关键是五官纹理和特征,每张照片的背景都不同,人的发型也可能经常变化,这些特征应该尽量排除在输入特征之外。20加载的图片保存到faces变量中。显示数据集21#从同一个人的照片中随机选出一张X=>Datasetshape:(400,4096)2)生成训练集和测试集3)使用支持向量机进行训练和识别这里可以指定参数class_weight=‘balanced’,让SVC模型根据训练样本的数量来均衡地权重。有利于目标人物的照片数量相差比较大的情况。224)分类结果:23precisionrecallf1-scoresupportavg/total0.810.690.67200尴尬!4)分类结果Confusionmatrixoftheclassifier混淆矩阵理想的输出,是矩阵的对角线上有数值(白色),其他地方都没有数值(黑色)24效果不好的原因分析把每个像素都作为一个输入特征来处理,这样的数据噪声太严重,总有4096个特征,可是数据集大小才400个,比特征个数还少,而且还需要把数据集分出50%来作为测试数据集,这样训练样本太小。模型根本没有办法对训练数据集进行拟合,无法进行准确地训练和预测。254.10.3使用PCA来处理数据集解决方法:PCA来降维,只选择前k个最重要的特征。在sklearn里,可以从PCA模型的explained_variance_ratio_变量里获取经PCA处理后的数据还原率,——方差比重。此方差比重之和就是所选择k个维的数据还原率,数值越大说明失真越小,越接近于1.尝试让k取值10~300之间,每隔30进行一次取样,并计算该k个维度所对应的数据还原率,即方差比重之和。然后,根据数据还原率,选择适合的k值。264.10.3使用PCA来处理数据集当k=140时,方差比重之和达到95%以上27不同数据还原率的图片显示当k=140时,数据还原率超过95%,与原图没有太大差异;当k=8时,图片依然能比较清楚地反映出人物的脸部特征轮廓。K=75,对应90%还原率K=37,对应80%还原率K=19,对应70%还原率K=8,对应于60%还原率284.10.4最终结果选择k=140作为PCA参数,进行降维,对训练集和测试集进行特征提取。29参数寻优使用GridSearchCV来选择一个最佳的SVC模型参数,然后用最佳参数对模型进行训练。30Bestparametersfoundbygridsearch:{'C':10,'gamma':0.0005}结果分析:成功!31

温馨提示

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

评论

0/150

提交评论