0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

支持向量机(兵(车)王问题MATLAB程序)

RG15206629988 来源:行业学习与研究 2023-06-16 16:06 次阅读

一、下载LIBSVM工具包

首先将LIBSVM工具包下载至SVM EXAMPLE的目录下。

33ecb346-0c1c-11ee-962d-dac502259ad0.png

图片来源:中国慕课大学《机器学习概论》

然后将LIBSVM的路径加载至MATLAB的路径中,以使MATLAB可找到LIBSVM工具包中所有与MATLAB有接口的函数(个人理解:经过此步骤后,MATLAB可以调用LIBSVM工具包中的函数)。

3402b754-0c1c-11ee-962d-dac502259ad0.png

图片来源:中国慕课大学《机器学习概论》

二、数据预处理

处理兵(车)王问题的MATLAB程序文件名称为:testSVMChessLibSVM.m。该MATLAB程序采用读文件的方式获取数据,并将六维数据(六维数据表示三个棋子的位置)存储于xapp中,一维数据(一维数据表示某一情况下,兵(车)王问题返回结果)存储于yapp中。

343afcb8-0c1c-11ee-962d-dac502259ad0.png

图片来源:中国慕课大学《机器学习概论》

获取数据后,首先需所有28056个数据顺序打乱,再将5000个数据作为训练集,将23056个数据作为测试集,以保证训练集和测试集的选择完全随机。之后将训练集和测试集归一化。

3454b86a-0c1c-11ee-962d-dac502259ad0.png3484840a-0c1c-11ee-962d-dac502259ad0.png

图片来源:中国慕课大学《机器学习概论》

该MATLAB程序选择的核函数是RBF核函数(高斯径向基函数核),并根据LIBSVM网站,将超参数c的取值范围选定为2-5~215,超参数g(gamma,gamma代表RBF核函数中1/σ2的值)取值范围选定为2-15~23。

三、确定超参数c和g的值

在上述超参数c和g的取值范围内遍历所有c和g的组合,寻找识别率最大的c和g组合的机器学习模型。

为估计识别率,需要在5000个训练集中选取部分数据作为估计识别率的数据。所选取估计识别率的数据不能与训练机器学习模型的数据相同,否则会导致过拟合(OVERFITTING),从而导致估计识别率高于实际识别率。估计识别率的数据与训练机器学习模型的数据相同类似于学生考试的题目与日常练习题目相同,若学生考试的题目与日常练习题目相同,则学生的考试成绩将偏高。

为充分利用训练集数据,机器学习模型训练常采用交叉验证的方式估计识别率。在该MATLAB程序中,训练集数据被等分为5份,每份1000个数据,分别以A、B、C、D、E标号,然后进行下述训练和估计:

(1)采用A、B、C、D训练,采用E估计识别率;

(2)采用A、B、C、E训练,采用D估计识别率;

(3)采用A、B、D、E训练,采用C估计识别率;

(4)采用A、C、D、E训练,采用B估计识别率;

(5)采用B、C、D、E训练,采用A估计识别率; 最后将五个识别率取平均值,得出总识别率,该过程被称为五折交叉验证(5-fold cross validation),LIBSVM工具包中“-v 5”表示五折交叉验证。

34a6fefe-0c1c-11ee-962d-dac502259ad0.png

图片来源:中国慕课大学《机器学习概论》

交叉验证在训练数据数量不变的情况下,保证采用更多的数据训练和估计识别率,从而估计出更准确的识别率。交叉验证的劣势是增加模型训练的时间。

交叉验证的形式之一是留一法(LEAVE-ONE-OUT),即每次采用一个数据估计识别率,剩余数据均参与训练。留一法常被用于训练数据较少且需要精确估计识别率的情况。

在该MATLAB程序中,共包含两次交叉验证,第一次交叉验证初步确定超参数c和g的组合,第二次交叉验证更精确地确定超参数c和g的组合。
四、训练机器学习模型

在确定超参数c和g的组合后,使用该超参数c和g的组合和5000个训练样本得出最终的机器学习模型,图一为所得出的机器学习模型的参数,其中,“nr_class:2”表示此机器学习模型是二分类模型,“totalSV:220”表示此机器学习模型具有220个支持向量,“rho:39.9485”表示b的值为39.9485。

34cb82d8-0c1c-11ee-962d-dac502259ad0.png

图一,图片来源:中国慕课大学《机器学习概论》

最后,采用测试集的数据测试模型,得出识别率为99.61%。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7151

    浏览量

    162004
  • MATLAB仿真
    +关注

    关注

    4

    文章

    174

    浏览量

    19640
  • 机器学习
    +关注

    关注

    66

    文章

    8134

    浏览量

    130577
  • LibSvm
    +关注

    关注

    0

    文章

    3

    浏览量

    6417

原文标题:机器学习相关介绍(17)——支持向量机(兵(车)王问题MATLAB程序)

文章出处:【微信号:行业学习与研究,微信公众号:行业学习与研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 人工智能入门课程:15. [2.10.1]--支持向量问题描述)

    向量人工智能机器学习
    Mr_haohao
    发布于 :2022年09月21日 11:13:39

    #硬声创作季 人工智能入门课程:16. [2.11.1]--支持向量问题程序设计)

    向量人工智能机器学习
    Mr_haohao
    发布于 :2022年09月21日 11:14:16

    #硬声创作季 人工智能入门课程:67. 支持向量的应用 -- 问题(规则介绍)

    向量人工智能
    Mr_haohao
    发布于 :2022年09月21日 11:47:12

    #硬声创作季 人工智能入门课程:69. 支持向量的应用 – 问题 (测试结果)

    向量人工智能
    Mr_haohao
    发布于 :2022年09月21日 11:47:47

    四种支持向量用于函数拟合与模式识别的Matlab示例程序

    四种支持向量用于函数拟合与模式识别的Matlab示例程序,内容主要在四个文件夹里面[hide] [/hide]
    发表于 03-13 15:46

    MATLAB向量改变的问题!!!!!!!!求指导

    各位大侠你们好!本人是matlab的新手,现在有一个问题请教高手指导一下!先谢谢了!在matlab中怎么才能把几个长短不一样的向量,改为长度一样但是粗细不一样的向量!(也就是说把
    发表于 09-03 22:14

    基于支持向量的分类问题

    小菜鸟一枚 ,有哪位大神能提供部分基于支持向量积的分类鉴别问题的MATLAB编码,思路过程,不胜感激
    发表于 04-03 18:54

    组态怎么和matlab进行数据交互

    用组态做一个人机界面,在组态输入数据,数据传输到matlab中进行计算,随后matlab向组态传输计算结果,组态
    发表于 02-27 14:48

    支持向量是什么

    初步了解支持向量(SVM)-1
    发表于 09-03 09:59

    支持向量的SVM

    支持向量SVM
    发表于 05-20 10:21

    怎么理解支持向量SVM

    支持向量SVM理解篇
    发表于 06-14 09:05

    特征加权支持向量

    该文针对现有的加权支持向量机(WSVM)和模糊支持向量机(FSVM)只考虑样本重要性而没有考虑特征重要性对分类结果的影响的缺陷,提出了基于特征加权的
    发表于 11-21 11:15 15次下载

    MATLAB的循环向量化编程方法的详细资料研究

    在简要介绍MATLAB软件基础上,探讨了MABLAB传统循环结构编程思想及循环向量化编程思想。通过实例对循环结构编程与循环向量化编程进行比较。说明了循环向量化编程的优点。循环
    发表于 08-28 17:46 4次下载

    什么是支持向量机 什么是支持向量

    支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一 种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。
    发表于 01-28 16:01 2.1w次阅读
    什么是<b class='flag-5'>支持</b><b class='flag-5'>向量</b>机 什么是<b class='flag-5'>支持</b><b class='flag-5'>向量</b>

    支持向量机网络搜索优化应用程序下载

    支持向量机网络搜索优化应用程序下载
    发表于 04-20 09:51 0次下载