当前位置: 首页 > news >正文

分类判决界面---W-H、H-K算法

       本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记:

      AI学习笔记(9)---《分类判决界面---W-H、H-K算法》

分类判决界面---W-H、H-K算法

目录

一、算法原理

1.1 W-H算法

1.2 H-K算法

二、实验要求

三、实验流程

四、运行结果


一、算法原理

1.1 W-H算法

        对于两类问题,设n+1维增广训练模式x1, x2, ...,xN已符号规范化。如果训练模式是线性可分的,则存在权矢量w使不等式组

        成立,即不等式组是一致的,有解。若训练模式是非线性可分的,表明不存在权矢量w对所有的训练模式都能正确分类,也就是说,无论任何的权矢量w,都有某些模式被错分,不等式不能都成立,即不等式组是不一致的,不等式组无解。在这种情况下,我们希望所求得的权矢量使尽可能多的不等式被满足,等价地说,使最少的训练模式被错分,或所得界面较稳健使对待分类模式有较好的分类效果。

        将上面的不等式组写成矩阵方程形式,为使解可靠,引人N维余量矢量b>0,于是不等式方程组变为

Xw ≥   b >   0
适当选择 b ,可以针对等式方程组

1.2 H-K算法

其他分类判决界面方法见 

分类判决界面---W-H、H-K算法


二、实验要求

采用下列两类模式为样本:

        w1 = [0 0 0; 1 0 0; 1 0 1; 1 1 0]

        w2 = [0 0 1; 0 1 1; 0 1 0; 1 1 1; 1 -1 0]

编程实现W-H算法和HK算法,对任意输入新样本进行分类判别。


三、实验流程

3.1 W-H 算法matlab代码

新建main.m文件
clc;
close all;
%% 数据预处理
X1 = [0 0 0; 1 0 0; 1 0 1; 1 1 0];
X2 = [0 0 1; 0 1 1; 0 1 0; 1 1 1; 1 -1 0];
X = [X1;-X2];
[N1,W] = size(X);
b = ones(N1,1);
%b = [9; 3; 1; 9; 1; 4; 2; 1];%% W-H 算法
rou1 =1;
k1 = 100;
%w = zeros(W,1);
w = ones(W,1);
[w1, a1] = W_H(X,w,b,rou1,k1);
disp("解矢量:");
disp(w1);
disp("迭代次数:");
disp(a1);
% 画图
figure()
x1=X1(:,1);
y1=X1(:,2);
z1=X1(:,3);
scatter3(x1,y1,z1,'k');   %圆圈为正样本
hold on;
x2=X2(:,1);
y2=X2(:,2);
z2=X2(:,3);
scatter3(x2,y2,z2,'P');   %五角星为负样本
hold on;
x3 = w1(1);
y3 = w1(2);
z3 = w1(3);
[X,Y] = meshgrid(-2:2:2); %以法线绘制平面
Z = -(x3 * X + y3 * Y) / z3;
mesh(X,Y,Z,'FaceAlpha', '0.8');
xlabel('x'),ylabel('y'),zlabel('z');
title('W-H算法分类判决界面');

新建W_H.m文件

function [w,a] = W_H(X,w,b,rou,k)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% X:符号化的训练样本
% b:余量(初值设置为大于零的较小的值)
% rou:参数(设为0.5)
% k:迭代次数
% w:解矢量
% a:算法结束时的迭代次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N = size(X,1);     % 样本数量
X = X';
a = 0;
while a < k  % 最大迭代次数a = a + 1;old_w = w;  for i = 1:N    w = w + (rou/i)*(b(i) - w'*X(:,i))*X(:,i);    % 迭代w的值endif norm(w - old_w) < 0.0001      % 求向量范数,如果收敛了就提前结束breakend
end
end

3.2 H-K 算法matlab代码

main.m文件下面补充
%% H-K 算法
X = [X1;-X2];
[N1,W] = size(X);
b = ones(N1,1);
%b = [9; 3; 1; 9; 1; 4; 2; 1];
rou2 = 0.5;
[w2, a2] = H_K(X,b,rou2);
disp("解矢量:");
disp(w2);
disp("迭代次数:");
disp(a2);
% 画图
figure()
x1=X1(:,1);y1=X1(:,2);z1=X1(:,3);
scatter3(x1,y1,z1,'o');    % 圆圈为正样本
hold on;
x2=X2(:,1);y2=X2(:,2);z2=X2(:,3);
scatter3(x2,y2,z2,'P');    % 五角星为负样本
hold on;
x3 = w2(1);y3 = w2(2);z3 = w2(3);
[X,Y] = meshgrid(-2:2:2);  % 以法线绘制平面
Z = -(x3 * X + y3 * Y) / z3;
mesh(X,Y,Z,'FaceAlpha', '0.8');
xlabel('x'),ylabel('y'),zlabel('z');
hold on
title('H-K算法分类判决界面');

新建H_K.m文件

function [w , a] = H_K(X,b,rou)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% X:符号化的训练样本
% b:余量(初值设置为大于零的较小的值)
% rou:参数(设为0.5)
% k:迭代次数
% w:解矢量
% a:算法结束时的迭代次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
XX = inv(X'*X)*X';   % 求符号化的训练样本的伪逆矩阵
a = 0;  
while 1      % 循环开始a = a + 1;w = XX*b;      % 求w值 e = X*w - b;       % 计算误差矢量if sum(abs(e) >= 0.001) == 0   % 如果e为零矢量,则算法停止,此时判定为0的标准为0.001breakelseif sum(abs(e > 0)) == 0      % 如果e没有正分量的非零矢量,或负的分量停止变为正值,则算法停止breakelseb = b + rou*(e + abs(e));   % 迭代bw = XX*b;                   % 迭代wend
end
end

四、运行结果

4.1 W-K 算法运行结果

4.2 H-K 算法运行结果


     文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者私信联系作者。

相关文章:

分类判决界面---W-H、H-K算法

本篇文章是博主在人工智能等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学习笔记&#…...

Python基础教程(三十):math模块

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…...

你只是重新发现了一些东西

指北君关于另外一条思维路径的发现。 "自以为是"的顿悟时刻 有很多时候&#xff0c;我会"自以为是"的发现/发明一些东西。这种"自以为是"的时刻通常还带有一些骄傲自豪的情绪。这种感觉特别像古希腊博学家阿基米德 在苦思冥想如何测量不规则物体…...

【英伟达GPU的挑战者】Groq—AI大模型推理的革命者

目录 引言第一部分&#xff1a;Groq简介第二部分&#xff1a;Groq的特点与优势1、高性能推理加速2、近存计算技术3、专用ASIC芯片设计4、低延迟与高吞吐量5、成本效益分析6、易用性与集成性7、软件与硬件的协同设计 第三部分&#xff1a;Groq的使用指南1、准备工作2、简单使用样…...

Python学习路线

Python学习路线 领取资料 一、Python基础知识 Python入门&#xff1a;了解Python的安装方法、如何运行Python程序以及交互模式的使用&#xff0c;同时学习注释的添加方法。 数据类型&#xff1a;掌握Python中的各种数据类型&#xff0c;包括数字、布尔值、字符串、列表、元…...

C++ std::forward()

在线调试网站&#xff1a; https://wandbox.org/ #include <iostream> #include <thread> #include <mutex> void func(int &&args) {std::cout << args << std::endl; }int main () {int a 10;func(20); …...

常见的8种排序(含代码):插入排序、冒泡排序、希尔排序、快速排序、简单选择排序、归并排序、堆排序、基数排序

时间复杂度O(n^2) 1、插入排序 (Insertion Sort) 从第一个元素开始&#xff0c;该元素可以认为已经被排序&#xff1b;取出下一个元素&#xff0c;在已经排序的元素序列中从后向前扫描&#xff1b;如果该元素&#xff08;已排序&#xff09;大于新元素&#xff0c;将该元素移到…...

go语言day2

使用cmd 中的 go install &#xff1b; go build 命令出现 go cannot find main module 错误怎么解决&#xff1f; go学习-问题记录(开发环境)go: cannot find main module&#xff1b; see ‘go help modules‘_go: no flags specified (see go help mod edit)-CSDN博客 在本…...

vue echarts画多柱状图+多折线图

<!--多柱状图折线图--> <div class"echarts-box" id"multiBarPlusLine"></div>import * as echarts from echarts;mounted() {this.getMultiBarPlusLine() },getMultiBarPlusLine() {const container document.getElementById(multiBar…...

cesium for unity 打包webgl失败,提示不支持

platform webgl is not supported with HDRP use the Vulkan graphics AR instead....

python开发基础——day7 序列类型方法

一、初识序列类型方法 序列类型的概念&#xff1a;数据的集合&#xff0c;在序列类型里面可以存放任意的数据&#xff0c;也可以对数据进行更方便的操作&#xff0c;这个操作是叫增删改查(crud) ( 增加(Creat)&#xff0c;读取查询(Retrieve)&#xff0c;更新(Update)&#xf…...

用java写一个二叉树翻转

class TreeNode {int val;TreeNode left, right;TreeNode(int val) {this.val val;left right null;} }public class BinaryTree {TreeNode root;// 递归翻转二叉树public TreeNode invertTree(TreeNode root) {if (root null) {return null;}// 递归翻转左子树和右子树Tre…...

数学建模系列(3/4):典型建模方法

目录 引言 1. 回归分析 1.1 线性回归 基本概念 Matlab实现 1.2 多元回归 基本概念 Matlab实现 1.3 非线性回归 基本概念 Matlab实现 2. 时间序列分析 2.1 时间序列的基本概念 2.2 移动平均 基本概念 Matlab实现 2.3 指数平滑 基本概念 Matlab实现 2.4 ARIM…...

AI播客下载:Machine Learning Street Talk(AI机器学习)

该频道由 Tim Scarfe 博士、Yannic Kilcher 博士和 Keith Duggar 博士管理。 他们做了出色的工作&#xff0c;对每个节目进行了彻底的研究&#xff0c;并与机器学习行业中一些受过最高教育、最全面的嘉宾进行了双向对话。 每一集都会教授一些新内容&#xff0c;并且提供未经过滤…...

鱼缸补水器工作原理是什么

鱼缸补水器是一种应用广泛的智能设备&#xff0c;主要用于自动监测和补充鱼缸内的水位&#xff0c;以确保鱼类生存环境的稳定。其工作原理简单而高效&#xff0c;为饲主提供了方便和安全的使用体验。 该补水器通常由两部分组成&#xff1a;控制器和吸盘。首先&#xff0c;用户…...

Linux-Tomcat服务配置到系统服务

目录 前言一、系统环境二、配置步骤step1 了解环境的安装路径step2 配置生成tomcat.pid文件step3 配置tomcat.service文件 三、测试systemctl命令管理Tomcat服务3.1 systemctl命令启动Tomcat服务3.2 systemctl命令查看Tomcat服务3.3 systemctl命令关闭Tomcat服务3.4 systemctl命…...

Python抓取高考网图片

Python抓取高考网图片 一、项目介绍二、完整代码一、项目介绍 本次采集的目标是高考网(http://www.gaokao.com/gkpic/)的图片,实现图片自动下载。高考网主页如下图: 爬取的流程包括寻找数据接口,发送请求,解析图片链接,向图片链接发送请求获取数据,最后保存数据。 二…...

Vue配置项data

data 目录 data 目录类型介绍关键原理编译过程 Vue2Vue3 &#x1f4cc;Vue.js 中的 data&#xff08;Obj/Function&#xff09;属性是 Vue 实例的一个配置选项 类型介绍 对象式 对于根实例或者非复用组件&#xff0c;通常直接提供一个对象字面量作为 data 的值。在对象式中…...

在IDEA 2024.1.3 (Community Edition)中创建Maven项目

本篇博客承继自博客&#xff1a;Windows系统Maven下载安装-CSDN博客 Maven版本&#xff1a;maven-3.9.5 修改设置&#xff1a; 首先先对Idea的Maven依赖进行设置&#xff1b;打开Idea&#xff0c;选择“Costomize”&#xff0c;选择最下边的"All settings" 之后找…...

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-28批量规范化

28批量规范化 """可持续加速深层网络的收敛速度""" import torch from torch import nn import liliPytorch as lp import matplotlib.pyplot as pltdef batch_norm(X, gamma, beta, moving_mean, moving_var, eps, momentum):""&quo…...

Apache Paimon系列之:Append Table和Append Queue

Apache Paimon系列之&#xff1a;Append Table和Append Queue 一、Append Table二、Data Distribution三、自动小文件合并四、Append Queue五、压缩六、Streaming Source七、Watermark Definition八、Bounded Stream 一、Append Table 如果表没有定义主键&#xff0c;则默认为…...

Vue使用vue-esign实现在线签名 加入水印

Vue在线签名 一、目的二、样式三、代码1、依赖2、代码2.1 在线签名组件2.1.1 基础的2.1.2 携带时间水印的 2.2父组件 一、目的 又来了一个问题&#xff0c;直接让我在线签名&#xff08;还不能存储base64&#xff09;&#xff0c;并且还得上传&#xff0c;我直接***违禁词。 好…...

与码无关:分数限制下,选好专业还是选好学校?

本文的目标读者&#xff1a;24届的高考生和家长。 写这篇非技术性文章&#xff0c;是因为我看到了24届考生和21年的我同样迷茫。 事先声明&#xff0c;本文带有强烈的个人思考色彩&#xff0c;可能会引起不适&#xff0c;如有不同观点&#xff0c;欢迎在评论区讨论。 一、前言…...

什么是负载均衡技术?

随着网络技术的快速发展&#xff0c;互联网行业也越来越广泛&#xff0c;人们的日常生活中也离不开网络技术&#xff0c;大量的用户进行浏览访问网站时&#xff0c;企业会使用负载均衡技术&#xff0c;降低当前网站的负载&#xff0c;以此来提高网站的访问速度。 今天小编就来给…...

存在重复元素Ⅱ python3

存在重复元素Ⅱ 问题描述解题思路代码实现复杂度 问题描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff…...

【CV炼丹师勇闯力扣训练营 Day13:§6二叉树1】

CV炼丹师勇闯力扣训练营 代码随想录算法训练营第13天 二叉树的递归遍历 二叉树的迭代遍历、统一迭代 二叉树的层序遍历 一、二叉树的递归遍历&#xff08;深度优先搜索&#xff09; 【递归步骤】 1.确定递归函数的参数和返回值&#xff1a;确定哪些参数是递归的过程中需要处理…...

代码随想录算法训练营第46天 [ 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 123.买卖股票的最佳时机III ]

代码随想录算法训练营第46天 [ 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 123.买卖股票的最佳时机III ] 一、121. 买卖股票的最佳时机 链接: 代码随想录. 思路&#xff1a;dp[i][0] 第i天持有股票的最大利润 dp[i][1] 第i天不持有股票的最大利润 做题状态&#xff1a;…...

基于IDEA的Maven简单工程创建及结构分析

目录 一、用 mvn 命令创建项目 二、用 IDEA 的方式来创建 Maven 项目。 &#xff08;1&#xff09;首先在 IDEA 下的 Maven 配置要已经确保完成。 &#xff08;2&#xff09;第二步去 new 一个 project &#xff08;创建一个新工程&#xff09; &#xff08;3&#xff09;…...

解锁空间数据奥秘:ArcGIS Pro与Python双剑合璧,处理表格数据、矢量数据、栅格数据、点云数据、GPS数据、多维数据以及遥感云平台数据等

ArcGISPro提供了用户友好的图形界面&#xff0c;适合初学者快速上手进行数据处理和分析。它拥有丰富的工具和功能&#xff0c;支持各种数据格式的处理和分析&#xff0c;适用于各种规模的数据处理任务。ArcGISPro在地理信息系统&#xff08;GIS&#xff09;领域拥有广泛的应用&…...

后端路线指导(4):后端春招秋招经验分享

后端春招&秋招经验分享 春招(暑期实习) /秋招是应届生非常重要的应聘时间,每一个想就业的同学一定要有所了解! 本篇内容&#xff0c;老白将与大家分享暑期实习和秋招如何应对招聘的个人经验&#xff0c;希望每个同学看完都能有所收获! 首先说明一下老白对于面试核心竞争力的…...

wordpress搭建个人店铺/真正免费的网站建站

今天状态不好&#xff0c;D都差点没有出&#xff0c;发一下&#xff0c;警示一下 https://atcoder.jp/contests/abc223/tasks/abc223_d 拓扑序字典序限制要想到小根堆替换队列 #include<unordered_set> #include<unordered_map> #include<functional> #incl…...

国外免费服务器地址/黑帽seo是什么意思

1) SE最重要的工作是通过技术交流实现用户对公司的认同。一个销售员的第一步应该是推 销自己的公司&#xff0c;其次推销公司的产品&#xff0c;最后是推销个人魅力。但对于SE来说&#xff0c;SE首先要推 销个人魅力&#xff0c;认同用户并让用户认同自己提供的技术产品&#x…...

wordpress搭建多少钱/上海专业seo服务公司

。。。。。。。。...

qq刷赞网站如何做分站/网站seo优化步骤

Magic Pairs Problems Link Mean: 已知N、A0、B0&#xff0c;对于给定X、Y&#xff0c;若A0XB0Y能被N整除&#xff0c;则AXBY也能被N整除&#xff0c;求所有的A、B.&#xff08;0<A、B<N) analyse: 这道题目就是先把A0和B0和N都除以他们的最大公约数&#xff0c;然后就…...

快捷做网站/seo 网站优化推广排名教程

目录前文说明3. 第一阶段升级&#xff08;1&#xff09;点击【升级】&#xff08;2&#xff09;升级介绍&#xff08;3&#xff09;最终中用户许可协议&#xff08;4&#xff09;连接到源设备&#xff08;5&#xff09;VC7与ESXi 证书警告&#xff08;6&#xff09;vCenter Ser…...

全屋定制设计培训哪里有/惠州seo代理计费

国家超算无锡中心近日发布“无锡超算云平台”&#xff0c;并宣布设立10个产业化平台&#xff0c;打造世界一流的超算技术与产业发展深度融合的高性能计算应用生态圈。 “无锡超算云平台”是一个以国家超算无锡中心为基础的高性能计算应用通用云桌面系统。国家超算无锡中心主任杨…...