分类判决界面---位势函数法

news2024/10/6 22:29:41

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

      AI学习笔记(10)---《分类判决界面---位势函数法》

分类判决界面---位势函数法

目录

一、算法原理

二、实验要求

三、实验程序

四、实验结果


一、算法原理

        位势函数算法是利用物理概念,通过训练模式对特征空间中的累积位势函数修正,使累积位势函数对训练模式具有正确分类的性质,从而以其作为判别函数。由于位势函数是非线性的,所以由位势函数训练算法产生的判别函数是非线性的。该方法可用于非线性可分情况,也可用于线性可分情况。位势函数选取的灵活性使位势函数法有很强的分类能力。设训练模式集为{x1, x2, ..., xN}它们分属 w1 w2 类,定义一个位势函数K(x, xj)。初始化,令特征空间中各点处的初始累积位势函数 K0(x)=0,判错计数 m=0。令 j=1,输人训练模式 x1,使累积位势函数

其他分类判决界面方法见

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


二、实验要求

已知两类训练样本:

        w1:x1 = (1, 1)x2 = (2, 1)

        w2:x3 = (-1, -1)x4 = (-2, -1)

采用位势函数法编程实现分类器设计


三、实验程序

main.m文件

%% 判别域代数界面方程法
clc;
close all;

%% 位势函数法
% 数据
Y = [1, 1; 2, 1; -1, -1; -2, -1];
% 标签
Label = [1 1 2 2];
% 位势函数法求判决界面
[Kx,alpha] = potential_function(Y, Label);
disp("位势函数表达式:");
disp(Kx);
disp("alpha数值:");
disp(alpha);
% 画图
figure()
x1 = Y(:, 1);
y1 = Y(:, 2);
N2 = size(Label,2);
% 绘制判决界面
x = [-3 3];
y = -x;
plot(x,y,'black')
hold on
% 绘制数据散点图
for i = 1:N2
    if Label(i) == 1
        scatter(x1(i),y1(i),"filled","o",'g');
        hold on
    end
    if Label(i) == 2
        scatter(x1(i),y1(i),"filled","o",'b');
        hold on
    end
end
axis([-3, 3, -2, 2]);
title('位势函数法的判决界面');

potential_function.m文件

function [K, alpha] = potential_function(samples, labels)
    %%%%%%%%%% Begin %%%%%%%%%%
    %% 初始化
    K0 = 0;                      %累积位势
    j = 1;                       %训练次数
    m = 0;                       %判错次数
    
    j_max = 100;                 %最大的循环次数
    
    [row, col] = size(samples);
    
    syms x1 x2 real;             %定义符号常量
    
    %% j=1的累积位势函数
    K = K0 + potential([x1 x2], samples(1, :));
    
    j = j + 1;
    K_old = K;

    while 1
        for i = 1 : row
            %% 逐次训练
            x1 = samples(i, 1);
            x2 = samples(i, 2);
            K_V = subs(K_old);      %将符号表达式中的符号变量替换为指定的值

            syms x1 x2 real;        %定义符号常量      
            K = potential([x1 x2], samples(i, :));

            % 计算赏罚因子
            if labels(i) == 1 && K_V > 0
                alpha = 0;
            elseif labels(i) == -1 && K_V < 0
                alpha = 0;
            elseif labels(i) == 1 && K_V <= 0
                alpha = 1;
            elseif labels(i) == -1 && K_V >= 0 
                alpha = -1;
            end

            % 迭代累积位势
            K_new = K_old + alpha * K;

            K_old = K_new;

            % 累加错判次数
            m = m + abs(alpha);
            
            % 循环控制
            if j < j_max
                j = j + 1;
            else
                disp('已到最大迭代次数');
                break
            end
        end
        
        %% 总检查:训练可否结束
        if m == 0
            K = K_new;
            break
        else
            m = 0;
        end
     
    end
       
    %%%%%%%%%% End %%%%%%%%%%
    
end

function [result] = potential(X,Xk)
    result = exp(-(X(1)-Xk(1)) ^2 - (X(2)-Xk(2))^2);
    %result = exp(-norm(X-Xk,2));
end

四、实验结果


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1852772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SD卡无法读取的解决之道与预防措施

一、SD卡无法读取的现象描述 在数字化时代&#xff0c;SD卡已成为我们生活中不可或缺的数据存储设备&#xff0c;它广泛应用于数码相机、手机、平板等设备中。然而&#xff0c;当我们试图读取SD卡时&#xff0c;有时会遇到无法识别或无法访问的情况&#xff0c;这就是我们所说…

基于matlab的不同边缘检测算子的边缘检测

1 原理 1.1 边缘检测概述 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;其目的在于标识数字图像中亮度变化明显的点。这些变化通常反映了图像属性的重要事件和变化&#xff0c;如深度不连续、表面方向不连续、物质属性变化和场景照明变化等。边缘检测在特征提取中…

36.Http协议的设计与解析

Http协议比Redis协议复杂的多,如果程序员自己去实现,工作量大。 Netty已经把Http协议的编解码器实现好了,只需要简单的配置就可以使用。 做一个http的服务端需要HttpServerCodec。 看它继承的父类: 结合了两个类: HttpRequestDecoder(入站处理器extends Channelnbound…

微信小程序反编译 2024 unveilr.exe

ps&#xff1a;一开始用的反编译工具是wxappUnpacker&#xff0c;后面改为 unveilr.exe 1.先找到小程序安装目录“E:\聊天记录\WeChat Files\Applet”&#xff0c;要反编译小程序的包 文件夹下的名字对应的是小程序ID&#xff0c;如果不确定是哪个&#xff0c;可以删除->打…

使用SpringBootTest测试项目

当我们开发项目后&#xff0c;通常需要进行单元测试&#xff0c;确保开发符合预期。但是对于Springboot项目&#xff0c;依赖部分IOC容器对象的注入。比如代码中存在Autowired、Service、Mapper等。 1、确保pom.xml中包含了依赖&#xff0c;其中的version和scope&#xff0c;大…

流程控制相关

1.break语句 只能用在循环体内&#xff0c;用来结束当前循环 语法&#xff1a; while 循环条件表达式&#xff1a; 语句块 if 条件表达式&#xff1a; break 语句块 for i in 迭代对象&#xff1a; 语句块 if 条件表达式&#xff1a; break 语句块 小练&#xff1a; 求一…

52、U-boot2023的移植教程

uboot&#xff1a;https://ftp.denx.de/pub/u-boot/ nxp-uboot&#xff1a;https://github.com/nxp-imx/uboot-imx 1、顶层Makefile 文件加入编译的两种方式&#xff1a;以xxx/xxx.c文件为例 1、使用menuconfig: 先编辑.c所在目录下的Kconfig&#xff0…

element-plus form表单组件之el-date-picker日期选择器组件

el-date-picker日期选择器组件可根据年&#xff0c;月&#xff0c;日期&#xff0c;时间范围来进行选择&#xff0c;可以自定义日期格式&#xff0c;和样式&#xff0c;还提供多种内置事件。 主要属性如下 属性名说明类型可选值默认值model-value / v-model绑定值&#xff0c…

江协科技51单片机学习- p11 Proteus安装模拟51单片机

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; Proteus快速入门&…

想更好应对突发网络与业务问题?您需要一款“全流量”

全流量分析&#xff0c;能为我做什么&#xff1f; 在生活中遇到问题&#xff0c;我们的第一反应可能是拿出手机拍照记录&#xff0c;方便后续处理。这些问题是临时的、突发的。 流量分析&#xff0c;就是网络中的“手机”&#xff0c;针对突发的网络故障和安全事件&#xff0…

骑砍战团mod制作所需工具

骑砍战团mod制作所需工具 多去骑砍中文站&#xff0c;最底下mod制作专区那边就可以找到大部分资源 文章目录 骑砍战团mod制作所需工具编译环境骑砍源码模型工具模型素材位置骑砍mod学习位置 编译环境 python2.7下载 根据界面安装完成之后&#xff0c;然后配置系统环境&#x…

【Python机器学习】NMF——将NMF应用于人脸图像

将NMF应用于之前用过的Wild数据集中的Labeled Faces。NMF的主要参数是我们想要提取的分量个数。通常来说&#xff0c;这个数字要小于输入特征的个数&#xff08;否则的话&#xff0c;将每个像素作为单独的分量就可以对数据进行解释&#xff09;。 首先&#xff0c;观察分类个数…

pandas处理天气数据

题目分析 一、题目要求 使用Pandas读取数据&#xff1b;现有的“date”列没有包含星期信息&#xff0c;需要根据其额外生成一列“week”&#xff0c;表示星 期&#xff0c;例如“星期一”&#xff1b;将温度处理成整型&#xff0c;例如将5℃处理成5&#xff0c;注意&#xff…

DAY11-力扣刷题

1.最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 64. 最小路径和 - 力扣&#xff08;LeetCode&#xff09; class Solution {p…

链接脚本文件入门介绍

本文框架 1. Why<为什么需要链接文件>2.What<是什么及组成>2.1 MEMORY介绍2.2 SECTIONS介绍 3.How<链接文件应用>3.1 定义特定字段3.2 将变量定义在指定段3.3 将变量定义在不同的段3.4 将变量定义在指定地址3.5 将函数定义在指定段3.6 将函数定义在指定地址 …

在 iPhone 上恢复已删除联系人的 5 种简便方法

想象一下&#xff1a;您正在 iPhone 上滚动并搜索要拨打的联系人&#xff0c;但却找不到任何结果。然后您想起昨晚您试图删除一个名字相似的联系人&#xff0c;但不知何故删除了错误的联系人。或者您的孩子错误地删除了一些联系人。这些情况足以让您感到迷茫。但别担心&#xf…

TI毫米波雷达可以用串口调试助理来获取原始数据吗?

摘要&#xff1a;本文介绍一下如何使用普通的串口调试助理来读取到AWR1843毫米波雷达的数据的。 使用的硬件如下图所示。 软件就是普通的串口助理&#xff0c;我用的是SSCOM&#xff0c;其他串口助理也是可以的&#xff0c;核心作用其实就是发送一行行的指令而已。 操作方法&am…

如何识别商业电子邮件诈骗

复制此链接到微信打开阅读全部已发布文章 不要关闭它标签&#xff01;我知道很少有词组比商业、电子邮件和妥协更无趣。 但这不是一篇无聊的文章&#xff1a;这是一篇关于电子邮件骗子的文章&#xff0c;根据联邦调查局的说法&#xff0c;他们每年通过诈骗人们赚取 260 亿美元…

EtherCAT数据包抓取(wireshark)

目录 1、twincat配置 2、选择正确的网卡 3、过滤条件示例 (1) 过滤逻辑读的数据帧 (2) 过滤邮箱等配置数据 (3) 抓取读EtherCAT状态的数据帧 1、twincat配置 勾选 Device2->Adapter->Promiscuous Mode&#xff0c;重新激活配置。 2、选择正确的网卡 3、过滤条件示…

用含成员函数的类,分别输入和输出各对象中的时间(时:分:秒)

编写程序&#xff1a; 运行结果&#xff1a; 注意&#xff1a; &#xff08;1&#xff09;在主函数中调用两个成员函数时&#xff0c;应指明对象名(t1,t2)。表示调用的是哪一个对象的成员函数。t1.display()和t2.display()虽然都是调用同一个 display函数&#xff0c;但…