一、下载libsvm工具包
首先将libsvm工具包下载至svm example的目录下。
图片来源:中国慕课大学《机器学习概论》
然后将libsvm的路径加载至matlab的路径中,以使matlab可找到libsvm工具包中所有与matlab有接口的函数(个人理解:经过此步骤后,matlab可以调用libsvm工具包中的函数)。
图片来源:中国慕课大学《机器学习概论》
二、数据预处理
处理兵(车)王问题的matlab程序文件名称为:testsvmchesslibsvm.m。该matlab程序采用读文件的方式获取数据,并将六维数据(六维数据表示三个棋子的位置)存储于xapp中,一维数据(一维数据表示某一情况下,兵(车)王问题返回结果)存储于yapp中。
图片来源:中国慕课大学《机器学习概论》
获取数据后,首先需所有28056个数据顺序打乱,再将5000个数据作为训练集,将23056个数据作为测试集,以保证训练集和测试集的选择完全随机。之后将训练集和测试集归一化。
图片来源:中国慕课大学《机器学习概论》
该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”表示五折交叉验证。
图片来源:中国慕课大学《机器学习概论》
交叉验证在训练数据数量不变的情况下,保证采用更多的数据训练和估计识别率,从而估计出更准确的识别率。交叉验证的劣势是增加模型训练的时间。
交叉验证的形式之一是留一法(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。
图一,图片来源:中国慕课大学《机器学习概论》
最后,采用测试集的数据测试模型,得出识别率为99.61%。
艾普凌科新型汽车单芯片电源集成电路,具有电源电压监测功能
红外线触摸屏,什么是红外线触摸屏
针对4G/LTE智能手机的FBAR滤波器技术
intouch工控软件详解
Silicon Labs USB Type-C参考设计使开发人员快速上手
支持向量机(兵(车)王问题MATLAB程序)
汽车专用示波器初级点火电压信号测量分析
两电子科技公司总投资28亿元在黄石市建立工厂
美国运营商PTCRB认证PTCRB认证怎么做PTCRB认证是什么?
应对医疗智能化设计难题,ADI有何应对之策?
iPhone 4S水货1天跌破万元:32G版还未抵京
思科收购硅光子企业Acacia失败 双方各执一词中国躺枪
PCB过孔技术详解 PCB走线的阻抗设计
如何从Windows 10删除密码
TI音频运算放大器OPA1622的主要特性和应用优势分析
【Zigbee智慧厕所门方案】实现App实时查看开关门状态
功率放大器应用场景介绍 在压电叠堆大力矩微位移平台驱动中的应用
关于连接的问答:有关亚洲更快、更好地部署 Wi-Fi 的见解
2020年人类科技征程高光回眸
自动驾驶汽车带动行业链发展,到底是动了谁的奶酪?