兵王问题描述
如果黑方只剩一个王,白方剩一个兵,一个王
兵的升变:兵走至对方的底线,可以升变为除王以外的任意棋子。
逼和:一方的王未被将军,但移动到任意的地方都会被对方处死,则此时式和棋。
UCI Machine Learning 中的数据集krkopt.data
和棋(draw)yᵢ=+1
其他 (ONE-FIFTEEN) yᵢ=-1
第一步:对数据进行预处理
随机取5000个样本训练,其余测试
对训练样本归一化
在训练样本上,求出每个维度的均值和方差,在训练和测试样本上同时归一化
mean(X):均值,std(X)方差
注:训练样本归一化可以将输入特征每个维度限定在一个固定的范围内,从而减少不同维度由于动态范围不同而导致的误差
第二步:设置支持向量机的各种参数
-s表示svm不同形式,兵王问题中是二分类,使用的目标函数为
所以选择-s=0
-t选择了核函数K(x₁,x₂)
第一个只有理论意义,没有实际意义,使用核函数与不函数没有区别
第二个d越大,低维到高维的映射Φ(X)越高,调节指数d,调节复杂度
第三个σ为人为设置的超参数,Φ(X)为无限,有着众所周知的好性质,在实际中最长用的核函数,不知道改用什么核函数,首先用Rbf核函数
第四个B和b都是人为设定的超参数,Φ(X)为无限
-t 4为自定义的核函数
使用matlab
将libsvm的路径加载到matlab中:设置路径,将libsvm添加进matlab中