机器学习——支持向量机SVM实例(兵王问题,SVM求解步骤以及思路,不求解不编程)

目录

 

一、问题描述(兵王问题)

二、步骤

1、获得数据

2、样本划分(训练样本和测试样本)

3、训练样本得到SVM模型

​ 1)数据处理

2)训练样本和测试样本归一化

3)选择核函数和调参

4)明确任务

5)训练方法——交叉验证

6)参数的设置

3、获得训练后的参数

>>>问题1:为什么要获得这些参数呢?

4、测试结果分析

1)二元分类一般要将测试结果分为四种情况(TP\FN\TN\FP)

2)测试样本测试结果

5、对模型系统进行评价——ROC曲线

1)测试数据的流程:

>>>问题2:若正样本数不够多该怎么办?

2)提升系统性能的办法

3)ROC曲线

>>>问题3:怎么通过ROC曲线去评价一个系统的优劣?

4)系统性能评价指标1:有一个指标就是当FP接近0的时候,TP的大小

5)系统性能评价指标2:曲线所包含的面积(AUC)

6)   系统性能评价指标3:等容错率(EER)


一、问题描述(兵王问题)

国际象棋中,一方一个王一个兵,另一方一个王,用SVM来解决是和局还是将死的结果

 

二、步骤

1、获得数据

这里使用的是早期别人用过的数据集

 

2、样本划分(训练样本和测试样本)

3、训练样本得到SVM模型

用下面的工具包对从总样本划分出来的训练样本进行训练

1)数据处理

因为电脑只认得数字所以,将a,b,c,d...用数字表示,如a=1,b=2,如此类推,标签也是:draw =  -1,one-fifteen = 1(-1表示和局,1表示将死)

2)训练样本和测试样本归一化

3)选择核函数和调参

当不知道选择什么核函数的时候,我们就选择高斯核

这里的参数有两个,一个是C,一个是gamma,如何确定这两个参数?通过对偶问题中的目标函数来对两个参数在他们的取值范围内按照一定的步长逐一进行测试,取最优作为两个参数的最终取值,如下C和gamma的组合有21x19,步长为2

4)明确任务

已知——5000个训练样本(包含样本数据和每个数据对应的标签)

未知、任务——C、gamma参数,通过训练样本训练出SVM模型

5)训练方法——交叉验证

将5000个样本随机均分为5组(5——fold),5组名字分别为a,b,c,d,e,每次拿4组数据作为训练模型,1组用于测试,每组数据进行轮换测试,最后模型的辨识率取五次测试辨识率的均值

组数越多,越精确,但是训练时间多,因此需要进行权衡

这里涉及到了两个循环,一个循环是遍历所有的C和gamma,一个循环是将训练样本分成5组轮换进行训练测试

6)参数的设置

3、获得训练后的参数

>>>问题1:为什么要获得这些参数呢?

答:C和gamma确定了对偶问题模型

支持向量的个数可以通过经验来判断训练的好坏,若支持向量过多则没有训练好

通过b和α我们可以对测试样本进行分类,其中α是通过对偶问题求解所得

4、测试结果分析

5000样本用于了训练,那么剩下的样本则用于测试,通常训练的样本不能拿来测试,因为模型本来就是通过训练样本进行创建的,我们的目的是用训练得到的模型对其他样本进行分类,考察的是模型的学习能力,类似于学习过程中的知识迁移

1)二元分类一般要将测试结果分为四种情况(TP\FN\TN\FP)

2)测试样本测试结果

识别率一般不用来作为系统优劣的判断依据,因为不够准确,一般是通过ROC来进行判断

5、对模型系统进行评价——ROC曲线


 

1)测试数据的流程:

>>>问题2:若正样本数不够多该怎么办?

答:将阈值调小,就会有更多被错误识别为负样本的正样本被正确地识别为正样本,即TP增大,同时NP也会增大,这样的话系统的性能也会得到提升

2)提升系统性能的办法

方法1:在模型还没有确定的情况下,通过寻找一组更好的α和b来创建模型;

方法2:在模型确定的情况下,即α和b一定的情况下,我们可以通过适当地调小阈值来达到系统性能提升的效果

3)ROC曲线

理论依据:

曲线绘制 :根据上图的①②③关系进行绘制TP-FP曲线

>>>问题3:怎么通过ROC曲线去评价一个系统的优劣?

答:在回答这个问题之前,我们得清楚TP和FP,TP指的是将正样本正确的识别为正样本,FP是将负样本错误地识别为正样本。

4)系统性能评价指标1:有一个指标就是当FP接近0的时候,TP的大小

指标1:有一个指标就是当FP接近0的时候,TP的大小可以用来评价一个系统的优劣,越大越好,因为识别率高。但是大多数情况下不能只看这一项指标,还要看一下总的走势,如下图所示:

在FP=0的时候,红色线系统TP很高,但是蓝线TP=0,而到了后面,相同的FP下,蓝色线的TP大于红色线的TP,这样的两个系统无法直接判断出哪个系统更优。

但是在兵王问题中的ROC曲线,对任意相同的FP下,蓝色线所代表的系统的TP都要大于等于其他系统,因此蓝色线所代表的系统肯定在这四个系统中是最优的!

5)系统性能评价指标2:曲线所包含的面积(AUC)

面积越大,系统越优

6)系统性能评价指标3:等容错率(EER)

EER越小,系统性能越好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单摄像机对于二维平面的测量

二维平面测量 首先我们应该知道什么是二维平面,二维平面简单的说就是只含有x,y坐标系的平面,在z轴上没有当量。这种一般出现在对于一个平面的宽度,长度,变形的测量,一般应用较多的场合是对一个规则的机械零件进行尺寸…

十六进制,输出的时候怎样控制所输出字母的大小写。

the first:printf("%x",10);printf("%X",10); 可以用x的大小写来控制,所输出字符的大小写,真是一个巧妙的技能。转载于:https://www.cnblogs.com/A-FM/p/4970114.html

Django的安装

Django是Python的一款Web开源框架,所以Django是依赖于Python的,首先要安装Python。 Python安装 官网地址:http://www.python.org/download/ 在安装Python的时候,会有人纠结,是要安装Python2还是Python3呢?其…

机器学习——支持向量机SVM之多分类问题

目录 方法1:改造目标函数与限制条件 方法2:一类对其他类(类数为N,需要建立N个SVM模型) 情形1:多个SVM模型结果交集得出确切归类 情形2:多个SVM模型结果交集没有得出确切归类 方法3&#xff…

python3版本无法加载reload解决办法NameError: name 'reload' is not defined

很多人在运行八点法求基础矩阵问题时,都会遇到NameError: name ‘reload’ is not defined的错误 只需在最前面加上from imp import reload即可

hdu 2612 Find a way(bfs)

Problem DescriptionPass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in …

定义类或对象

学习总结: 工厂方式 原始的方式(对象创建后动态定义对象的属性) var oCar new Object; oCar.color "blue"; oCar.doors 4; oCar.mpg 25; oCar.showColor function() {alert(this.color); };创建对象 car,属性&…

七桥问题

怎么不重复地走完连接两座岛和陆地的七座桥? 简化为以下: 答案是不能走完的。 奇点:这个点有奇数条线汇聚于此 偶点:这个点有奇数条线汇聚于此 七桥问题——一笔画问题 若一个图形全部是偶点或者只有2个奇点(没有…

office2016打开PPT出现解决VBE6EXT.OLB不能被加载问题的解决办法

第一步 打开路径C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\VBA。找到VBA只要是默认安装路径均一样。 第二步 打开VBA6找到VBE6EXT.OLB将其复制到VBA7.1中。 第三步 打开VBA7.1找到VBE7.DLL将其复制到VBA6中。 第四步…

20151118小问题

1.模板引擎 百度百科:模板引擎(这里特指用于Web开发的模板引擎)是为了使 用户界面与业务数据(内容)分享而产生的,它或以生成特定格式的文档,用于网站的模板引擎就会产生一个标准的HTML文档. 目的:生成一个标准的HTML文档. 概念:模板引擎不属于特定技术领域,它是跨领域跨平台的概…

机器学习——人工神经网络之发展历史(神经元数学模型、感知器算法)

目录 一、神经元的数学模型 ​ 二、感知器算法(SVM算法前身) 1、目的 2、流程 >>>问题1:下图w和b的调整是什么意思? 3、算法的有效性验证 1)原算法 2)增广矩阵 3)修改后的算法…

PHP 基础知识-数组

PHP 的数组主要分为: 索引数组 - 带有数字索引的数组关联数组 - 带有指定键的数组多维数组 - 包含一个或多个数组的数组 索引数组:有两种创建索引数组的方法:索引是自动分配的(索引从 0 开始): 第一…

打开word2016总是出现很抱歉,此功能看似中断需要修复。。问题解决办法

第一步 打开运行窗口,在电脑桌面左下角有个圆圈点击进去,输入regedit,即可进入。 第二步 打开HKEY_CURRENT_USER中的SOFTWARE 第三步 找到HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Word\Options项如图红色箭头标示。然后点击O…

机器学习——人工神经网络之多层神经网络(多层与三层)

目录 一、多层神经网络 1、多层神经网络数学模型 2、数学模型中的非线性函数fai 1)非线性函数fai存在的意义 2)非线性函数fai具体是什么? 3、多层神经网络与单层神经网络的区别与改进 1)单层神经网络数学模型 2&#xff0…

noip2012-day2-t2

【问题描述】 在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租借教室的信息,我…

机器学习——人工神经网络之后向传播算法(BP算法)

目录 一、后向传播算法的本质——梯度下降法求局部极值 1、w迭代公式的合理性

获取视图的宽高

1 view.measure(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 2 int width view.getMeasuredWidth(); 3 int height view.getMeasuredHeight(); 转载于:https://www.cnblogs.com/cmgrass/p/4978222.html

排序算法02--冒泡排序

思路:冒泡排序 就是把大的数一个个沉到下面,当然也可以是把小的数一个个浮到上面。 在最外层需要比较n-1次,因为n-1个大的数被沉到了下面,剩下一个自然就是最小的数了。 在这n-1次的里层,还需要亮亮相互比较&#xff0…

机器学习——人工神经网络之参数设置(BP算法)

目录 一、复习(BP算法) 二、训练模型的建议 三、参数设置内容 1、随机梯度下降(SGD)

关于▲的各种交点

对于△ABC证明: ①三角形的三条中线交于一点: 等腰三角形:作中线BD、CE与AC、AB交于D、E,相交于O,连接AO并延长交BC于F; 证△ABD全等于△ACE,再证△EBO全等于△D…