机器学习7_支持向量机_兵王问题

embedded/2024/12/27 4:02:18/

兵王问题描述

用SVM解决问题

国际象棋的规则:

        兵:第一次向前可以走一格或两格,以后每次只能向前走一格,不能后退。

        王:王被将死即告负。每次只能走一格。

兵王问题:

棋局上,黑方只剩一个王,白方剩一个兵,一个王

结局有两种可能:

  • 白方将死黑方,白方获胜。
  • 和棋

国际象棋详细规则:

【兵的升变】:兵走至对方的底线,可以升变为除王以外的任意棋子。

【逼和】:一方的王未被将军,但移动到任意的地方都会被对方将死,则此时是和棋。

判断兵王问题

可以在UCI MACHINE LEARNING网站上下载数据集,文件名——krkopt.data

这个文件的每一行,就是一个训练样本

首先给出三个字棋子的坐标,例如,第一行,a,1,b,3,c,2,draw。表示黑方的王在a1的位置,白方的王在b3的位置,白方的兵在c2的位置,这时,黑方的王处于无路可走的状态,是和棋,那么这一行最后一个单词是标签做中文,意思是和棋。

例如下面,如d,1,e,3,f,1,six。意思是如果这三个子处于这样的位置,白方最多六步就能将死黑方。

在这里,我们用支持向量机处理这个问题。

把【和棋】当作一类设定  \Rightarrow y_i=+1

把【其他标签(one到fifteen)】当作另一类设定  \Rightarrow y_i=-1

在这个数据集中,总样本个数为28,056个,其中正样本 y_i=+1 ,和棋个数为2,796个,其他都是负样本,也就是负样本 y_i=-1 的集合个数为25,260个。

支持向量机程序进行训练

使用LIBSVM工具包 下载的网址


兵王问题程序设计

第一步:对数据的预处理

  • 总样本数:28,056,其中正样本2,796,负样本25,260。
  • 随机取5,000个样本训练,其余测试。

对训练样本归一化

在训练样本上,求出每个维度的均值和方差,在训练和测试样本上同时归一化。

newX=\frac{X-mean(X)}{std(X)}

训练样本归一化(Normalization Of Training Data):是构建机器学习分类时常用的技术,它可以将输入特征每个维度限定在一个固定的范围内,从而减少不同维度由于动态范围不同导致的训练误差。

第二步:设置支持向量机的各种参数

目标函数:\frac{1}{2}\left \| \omega \right \|^2+C\sum_{i=1}^{N}\delta _i

这里用到-s 0,S=1~4可以查询LIBSVM工具包和其他资料加以了解。

核函数 K(X_1,X_2)

LIBSVM支持的几个核函数,如下:

支持向量机的优化问题如下:

最大化:\theta (\alpha ,\beta )=\sum_{i=1}^{N}\alpha _i-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}y_i y_j\alpha _i\alpha _j\varphi (X_i)^T\varphi (X_j)

限制条件:

        (1)0\leq \alpha _i\leq C,(i=1\sim N)

        (2)\sum_{i=1}^{N}\alpha _iy_i=0,(i=1\sim N)

可以看到,对于n个训练样本,我们知道它是排列出来的矩阵:

K=\begin{bmatrix} K(X_i,X_j) & ... &K(X_i,X_N) \\ ...& ...& ...\\ K(X_N,X_j) & ... & K(X_N,X_N) \end{bmatrix}

i和j=1~N

 


http://www.ppmy.cn/embedded/143207.html

相关文章

力扣146 LRU缓存 Java版本

文章目录 题目描述代码 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关…

`pnpm` 不是内部或外部命令,也不是可运行的程序或批处理文件(问题已解决,2024/12/3

主打一个有用 只需要加一个环境变量 直接安装NodeJS的情况使用NVM安装NodeJS的情况 本篇博客主要针对第二种情况,第一种也可参考做法,当然眨眼睛建议都换成第二种 默认情况下的解决方法:⭐⭐⭐ 先找到node的位置,默认文件夹名字…

基于STM32设计的智能家居控制系统(华为云IOT)_275

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 参考文献1.6 系统框架图1.7 系统原理图1.8 实物图1.9…

概率论——区间估计

置信区间: 概率分布中,抽出一些样本,通过某种方法,确定一个区间 求解思路: 1、定类型,摆公式 2、计算各分量 3、代入公式 例题: (1) 1、求μ,方差已知&…

Helm chart 配置、使用简介

helm说明 官方文档:https://helm.sh/zh/docs/helm/helm/ 关于 Helm Chart Helm是Kubernetes生态系统中的一个软件包管理工具,专门负责管理Kubernetes应用资源。而Helm仓库(Repository)在Helm中扮演着重要角色,是Hel…

初识交换机和路由器

目录 初识交换机和路由器交换机路由器主要区别工作流程如果是交换机:如果是路由器 初识交换机和路由器 左为路由器,右为交换机 交换机 交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息…

html-两个div,让一个div跟随另外一个div的高度

在开发的过程中遇到有些场景事这样的,两个div的高度不一致,而且都是动态高度,有的时候div1高,有的时候div2高,如果设置flex的话,那么就会把较矮的元素撑大,但是我想始终都以div1的高度作为基准&…

【Word 知识点】

快捷键 1.复制 Ctrlc 2.粘贴 Ctrlv 3.剪切 Ctrlx 4.全选 Ctrla 5.加粗 Ctrlb 6.打开 Ctrlo 7.新建 Ctrln 8.保存 Ctrls 9.查找 Ctrlf 10.替换 Ctrlh Word 要点 1.文档基本操作: 新建 打开 保存 复制 粘贴 剪切 查找 替换 2.字体:字体 字号 颜…