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

    文章

    7485

    浏览量

    163790
  • MATLAB仿真
    +关注

    关注

    4

    文章

    176

    浏览量

    19924
  • 机器学习
    +关注

    关注

    66

    文章

    8411

    浏览量

    132594
  • LibSvm
    +关注

    关注

    0

    文章

    3

    浏览量

    6449

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    基于支持向量的分类问题

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

    特征加权支持向量

    该文针对现有的加权支持向量(WSVM)和模糊支持向量(FSVM)只考虑样本重要性而没有考虑特
    发表于 11-21 11:15 15次下载

    基于改进支持向量的货币识别研究

    首先,预抽取支持向量以减少训练样本数量,大大缩减训练时间;然后,用缩减后的样本对改进后的分类支持向量进行货币识别,改进后的
    发表于 12-14 14:57 14次下载

    基于支持向量(SVM)的工业过程辨识

    支持向量应用到典型的时变、非线性工业过程 连续搅拌反应釜的辨识中, 并与BP 神经网络建模相比较, 仿真结果表明了支持向量
    发表于 03-30 16:12 42次下载
    基于<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>机</b>(SVM)的工业过程辨识

    基于支持向量的图书馆借阅量预测_丽华

    基于支持向量的图书馆借阅量预测_丽华
    发表于 03-16 08:59 0次下载

    支持向量的故障预测模型

    针对现有的故障预测技术无法从整体上反映系统性能下降趋势等问题,提出一种基于健康度分析的故障预测方法。首先,在支持向量回归算法基础上构造多输出支持
    发表于 12-29 11:24 0次下载

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

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

    OpenCV机器学习SVM支持向量的分类程序免费下载

    本文档的主要内容详细介绍的是OpenCV机器学习SVM支持向量的分类程序免费下载。
    发表于 10-09 11:45 5次下载

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

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

    支持向量(原问题和对偶问题)

    本文主要介绍原问题(PRIME PROBLEM)和对偶问题(DUAL PROBLEM),支持向量优化问题可通过原问题向对偶问题的转化求解。
    的头像 发表于 05-25 09:31 1351次阅读

    支持向量问题描述)

    本文主要内容为采用支持向量(SVM)解决国际象棋问题。
    的头像 发表于 06-09 17:52 1356次阅读
    <b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>机</b>(<b class='flag-5'>兵</b><b class='flag-5'>王</b>问题描述)

    支持向量问题程序设计)

    问题的样本数据集包含六个维度,六个维度代表三个棋子在棋盘中的位置。总样本数为28056个,其中,正样本(和棋)数量为2796个,负样本(白方胜)数量为25260个。
    的头像 发表于 06-12 16:06 614次阅读
    <b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>机</b>(<b class='flag-5'>兵</b>(<b class='flag-5'>车</b>)<b class='flag-5'>王</b>问题<b class='flag-5'>程序</b>设计)