• 2025年8月19日 星期二

2.11兵王问题(Matlab程序)

8 月 16, 2025

0.代码演示(使用浙大版提供的代码,故此处不再给出):

图2.12.1-1 运行结果命令行

>> size(yapp)


ans =

1 28056

>> size(xapp)


ans =

6 28056

运行命令,可知是6维向量,28056个样本

查看每个向量:

>> xapp(:,1)//:维上所有的数,1:第一个向量


ans =

1
1
2
3
3
2

11:第1个棋子;23:第2个棋子;32:第3个棋子。一共28056个

查看y的第1个向量:

>> yapp(1)


ans =

1

图2.12.1-2 划分训练集和测试集区块
图2.12.1-3 训练集区块
图2.12.1-4 测试集区块

不能用训练支持向量机模型的样本来测试识别率–>过拟合

分成5份ABCDE,然后用1个测试(剩下4个训练),使ABCDE每个都成为1次测试集。然后将所得识别率求平均值即为总的识别率。(五折交叉验证)

练习操作:

在121行设置断点。找出最大的C和gamma γ:

>> maxC


maxC =

4096

>> maxGamma


maxGamma =

0.0359

最大识别率:

>> maxRecognitionRate


maxRecognitionRate =

99.3200

查看模型情况

>> model


model =

包含以下字段的 struct:

Parameters: [5×1 double]
nr_class: 2 //类数
totalSV: 208 //208个支持向量
rho: 61.5544 //b
Label: [2×1 double]
sv_indices: [208×1 double]
ProbA: []
ProbB: []
nSV: [2×1 double]
sv_coef: [208×1 double] //208个支持向量所对应的α
SVs: [208×6 double] //208个支持向量的数值

Avatar photo

李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。