分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测

分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测

目录

    • 分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测
      • 分类效果
      • 基本描述
      • 程序设计
      • 参考资料

分类效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基本描述

1.Matlab实现PSO-PNN粒子群优化概率神经网络多特征分类预测,运行环境Matlab2018b及以上;

2.输入12个特征,输出分4类,可视化展示分类准确率,可在下载区获取数据和程序内容;
3.优化参数为PNN的散布值;
4.data为数据集,main为主程序,分类效果如下:
注:程序和数据放在一个文件夹。

概率神经网络(Probabilistic Neural Network,PNN)是一种基于统计原理的人工神经网络模型,它融合了径向基神经网络与经典的概率密度估计原理的优点,在模式分类方面表现出显著的优势。以下是对概率神经网络的详细介绍:
基本原理
概率神经网络以贝叶斯决策规则为核心思想,即错误分类的期望风险最小。它使用高斯函数进行概率密度估计,通过计算输入特征向量与训练集中各个模式的匹配程度(相似度),实现模式分类。其判别边界接近于贝叶斯最佳判定面,因此分类效果与最优贝叶斯分类器等价。
网络结构
概率神经网络一般包含以下四层:
输入层:负责将特征向量传入网络,输入层神经元的个数是样本特征的个数。

模式层(也称隐含层):通过连接权值与输入层连接,计算输入特征向量与训练集中各个模式的匹配程度,并将其距离送入高斯函数得到模式层的输出。模式层神经元的个数是输入样本矢量的个数,即有多少个样本,该层就有多少个神经元。

求和层(也称竞争层):负责将各个类的模式层单元连接起来,这一层的神经元个数是样本的类别数目。

输出层:负责输出求和层中得分最高的那一类,即最终的分类结果。

主要特点
训练简单、收敛快:概率神经网络的学习过程简单,训练速度快,非常适合实时处理。

分类准确、容错性好:概率神经网络在模式分类方面表现优异,其判别边界接近于贝叶斯最佳判定面,因此分类准确率高,且具有较强的容错性。

易于硬件实现:概率神经网络各层神经元的数目比较固定,因此易于硬件实现。

扩充性能好:增加或减少类别模式时,概率神经网络不需要重新进行长时间的训练学习,具有良好的扩充性能。

在这里插入图片描述

注:程序和数据放在一个文件夹。

程序设计

  • 完整程序和数据私信博主回复分类预测 | PSO-PNN粒子群优化概率神经网络多特征分类预测



%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行



%%  分析数据
num_class = length(unique(res(:, end)));  % 类别数(Excel最后一列放类别)
num_dim = size(res, 2) - 1;               % 特征维度
num_res = size(res, 1);                   % 样本数(每一行,是一个样本)
num_size = 0.7;                           % 训练集占数据集的比例
res = res(randperm(num_res), :);          % 打乱数据集(不打乱数据时,注释该行)
flag_conusion = 1;                        % 标志位为1,打开混淆矩阵(要求2018版本及以上)

%%  设置变量存储数据
P_train = []; P_test = [];
T_train = []; T_test = [];

%%  划分数据集
for i = 1 : num_class
    mid_res = res((res(:, end) == i), :);           % 循环取出不同类别的样本
    mid_size = size(mid_res, 1);                    % 得到不同类别样本个数
    mid_tiran = round(num_size * mid_size);         % 得到该类别的训练样本个数

         
end

%%  数据转置
P_train = P_train'; P_test = P_test';
T_train = T_train'; T_test = T_test';

%%  得到训练集和测试样本个数
M = size(P_train, 2);
N = size(P_test , 2);



参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发-Divider 组件

在 ArkTS 中,Divider组件是用于在界面上显示分割线的组件,以下是其详细介绍: 基本功能 Divider组件主要用于将页面中的不同部分进行视觉上的分隔,使页面布局更加清晰和有条理,增强用户界面的可读性和美观性。 常用属…

SpringBoot实战——个人博客项目

目录 一、项目简介 ?二、项目整体架构 数据库模块 后端模块 前端模块 ?三、项目具体展示 ?四、项目的具体实现 1、一些准备工作 ??数据库、数据表的创建 ??设置数据库和MyBatis的配置 ??将前端项目引入到当前项目中 2、登录注册模块 ??实体类的创建 ?…

利用sda剩余空间,扩容(lvm)

r如果余空间没有使用,直接扩容 pvdisplay vgdisplay pvresize /dev/sda3 扩展逻辑卷的大小: lvextend -l 100%FREE /dev/mapper/openeuler-root 对于ext4文件系统: resize2fs /dev/mapper/vg_openeuler-openeuler--root 对于xfs文件系…

【Golang】Go语言编程思想(一):接口

接口 接口的概念 现在我们要实现一个函数,用于对给定的 url 进行解析,具体的代码实现如下: package mainimport ("fmt""io""net/http" )func retrieve(url string) string {resp, err : http.Get(url)if er…

智能文档解析综述:结构化信息提取的技术、挑战与前景

综述论文:https://arxiv.org/abs/2410.21169 摘要 文档解析对于将非结构化和半结构化文档(如合同、学术论文和发票)转换为结构化、机器可读的数据至关重要。通过从非结构化输入中提取可靠的结构化数据,文档解析为众多应用提供了极…

如何将CSDN博客下载为PDF文件

1.打开CSDN文章内容 2.按键盘上的f12键(或者右键—审查元素)进入浏览器调试模式,点击控制台(Console)进入控制台 3.在控制台输入以下代码,回车 4.在弹出的打印页面中将布局设置成横向,纵向会…

C# GDI绘制的小熊进度条

C# GDI小熊进度条 1、添加自定义控件winform using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…

嵌入式入门Day25

数据结构Day 6,IO Day1 查找算法顺序查找折半查找(二分查找)哈希查找 IO概念标准IO创建递归索引(用于查询结构体定义) 文件IO标准IO缓冲区指针相关函数 查找算法 顺序查找 关键字:分为主关键字和次关键字主关键字&am…

操作系统——虚拟内存管理

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt,仅供学习交流使用,谢谢。 背景 进程必须全部放入物理内存后方可运行,这个规则将程序大小限制为物理内存大小。许多情况下并不需要将整个程序置于内存中,比如程序几乎从不执行但…

Java 在Json对象字符串中查找和提取特定的数据

1、在处理JSON数据时,需要提出个别字段的值,通过正则表达式提取特定的数据 public static void main(String[] args) {//定义多个JSON对象字符串类型,假设每个对象有a,b,c 字段String strJson "{\"a\":1.23,\"b\"…

进度与预算

一个项目,如果进度上可以按时完成,一般来说预算不会超标,或者超标幅度有限。 一个项目,如果进度上严重超期,预算基本上会超标,而且超标很大。 现在很多项目,人力成本占比都比较大&#xff0c…

Ungoogled Chromium127编译指南 Windows篇 - 安装Visual Studio 2022(六)

1. 引言 在编译Ungoogled Chromium之前,正确安装和配置Visual Studio 2022是至关重要的一步。作为主要的开发环境,Visual Studio不仅提供了必要的编译工具,还包含了大量构建过程中需要的组件和库。本文将详细介绍如何在Windows系统上安装和配…

电子商务人工智能指南 3/6 - 聊天机器人和客户服务

介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

精确的单向延迟测量:使用普通硬件和软件

论文标题:Precise One-way Delay Measurement with Common Hardware and Software(精确的单向延迟测量:使用普通硬件和软件) 作者信息:Maciej Muehleisen 和 Mazen Abdel Latif,来自Ericsson Research Eri…

字符串的特征

底层是char类型的数组 char[] replace():替换 split():切分 indexOf():第一个字符所在位置,从0开始算 substring(3, 6):字符串截取,包括3不包括6 字符串不可变 本质上是数组,数组是固定值…

三维扫描检测在汽车制造中的应用

三维扫描,通过先进三维扫描技术获取产品和物体的形面三维数据,建立实物的三维图档,满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…

【已解决】黑马点评项目中启动Spring Boot服务失败,com.sun.tools.javac.tree.JCTree qualid

黑马点评项目中启动Spring Boot服务失败 报错提示 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualid这是因为 lombok 版本不兼容造成的 找到 pom.xml 文件&#xff0…

Netty入门(快速了解以及使用netty)

二. Netty 入门 1. 概述 1.1 Netty 是什么? Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.Netty 是一个异步的、基于事件驱动的网络应用框架&…

Python办公—DataMatrix二维条码制作

目录 专栏导读1、库的介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…

前缀和(八)矩阵区域和

1314. 矩阵区域和 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&…