Matlab实现基于BP神经网络的数据分类预测

2023-10-27

matlab语言实现基于BP神经网络的数据分类预测-四分类,其步骤如下:

一、载入原始数据,这里以测试数据存放在Excel表格中为例。

%%  导入数据
res = xlsread('数据集.xlsx');

二、将数据集划分为训练集和测试集。

temp = randperm(357);

P_train = res(temp(1: 240), 1: 12)'; %训练集特征
T_train = res(temp(1: 240), 13)';    %训练集标签
M = size(P_train, 2);

P_test = res(temp(241: end), 1: 12)'; %测试集特征
T_test = res(temp(241: end), 13)';    %测试集标签
N = size(P_test, 2);

三、对训练、测试数据进行归一化处理。

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test  = mapminmax('apply', P_test, ps_input);
t_train = ind2vec(T_train);
t_test  = ind2vec(T_test );

四、建立BP神经网络分类模型。

net = newff(p_train, t_train, 4);

五、设置BP神经网络的训练参数。

net.trainParam.epochs = 1000;   % 最大迭代次数
net.trainParam.goal = 1e-6;     % 目标训练误差
net.trainParam.lr = 0.01;       % 学习率

六、训练分类模型。

net = train(net, p_train, t_train);

七、将训练集和测试集数据分别输入模型进行仿真测试。

%%  仿真测试
t_sim1 = sim(net, p_train);
t_sim2 = sim(net, p_test );

%%  数据反归一化
T_sim1 = vec2ind(t_sim1);
T_sim2 = vec2ind(t_sim2);

%%  数据排序
[T_train, index_1] = sort(T_train);
[T_test , index_2] = sort(T_test );

T_sim1 = T_sim1(index_1);
T_sim2 = T_sim2(index_2);

八、对模型进行误差评估,计算分类准确率,并绘制预测结果与真实分类的对比曲线。

%%  性能评价
error1 = sum((T_sim1 == T_train)) / M * 100 ;
error2 = sum((T_sim2 == T_test )) / N * 100 ;

%%  绘图
figure
plot(1: M, T_train, 'r-*', 1: M, T_sim1, 'b-o', 'LineWidth', 1)
legend('真实值', '预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'训练集预测结果对比'; ['准确率=' num2str(error1) '%']};
title(string)
xlim([1, M])
grid

figure
plot(1: N, T_test, 'r-*', 1: N, T_sim2, 'b-o', 'LineWidth', 1)
legend('真实值', '预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'测试集预测结果对比'; ['准确率=' num2str(error2) '%']};
title(string)
xlim([1, N])
grid

 九、对于步骤八的分类结果绘制混淆矩阵。

%%  混淆矩阵
figure
cm = confusionchart(T_train, T_sim1);
cm.Title = 'Confusion Matrix for Train Data';
cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';
    
figure
cm = confusionchart(T_test, T_sim2);
cm.Title = 'Confusion Matrix for Test Data';
cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';

 

 

 以上就是matlab实现基于BP神经网络的数据分类预测的全部代码。如果有不懂的小伙伴儿,欢迎评论留言或者私信,代码订制也可私信博主(Q:809315756)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab实现基于BP神经网络的数据分类预测 的相关文章

  • 如何将Matlab命令的输出重定向到文件? [复制]

    这个问题在这里已经有答案了 我想将 Matlab 命令的输出重定向或复制到文件中 我怎样才能做到这一点 就我而言 我想使用 UNIX 工具比较两个大型结构diff 示例 我可以在 Matlab 中执行此操作 gt gt s1 s1 a 32
  • MATLAB 引擎函数的输入参数

    我正在尝试使用 MATLAB 引擎在 Python 中调用 MATLAB 函数 但遇到一些问题 在设法将 NumPy 数组作为函数的输入处理后 现在 MATLAB 出现一些错误 MatlabExecutionError 未定义输入函数 si
  • 如何从 Matlab 在 vi​​rtualenv 中执行 Python 代码

    我正在创建一个用于研究的 Matlab 工具箱 我需要执行 Matlab 代码 但也需要执行 Python 代码 我想允许用户从 Matlab 执行 Python 代码 问题是 如果我立即执行此操作 我将必须在 Python 环境中安装所有
  • Matlab 中二维插值的函数形式

    我需要从二维数据数组构造一个插值函数 我需要返回实际函数的东西的原因是 我需要能够将函数作为我需要进行数值积分的表达式的一部分进行计算 因此 interp2 并没有解决这个问题 它不返回函数 我可以使用 TriScatteredInterp
  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • Matlab 中 interp2 的类似 OpenCV Api

    有没有类似的功能 其工作原理与 interp2 x y frame z xd yd linear 0 在 OpenCV 中 功能cv remap 几乎可以满足您的要求 请参阅文档here http docs opencv org modul
  • 是否有一个函数可以将两个元胞数组“压缩”在一起? [复制]

    这个问题在这里已经有答案了 假设我有一个元胞数组A and B as so A A B C D B 1 2 3 4 我想创建元胞数组C通过将 A 和 B 压缩 在一起 如下所示 C zip A B C A 1 B 2 C 3 D 4 这样的
  • 将 Android 应用程序与服务器上的 Matlab 应用程序连接

    我正在 Android 上开发一个应用程序 它将获取图像输入 并将该输入传递到安装 MATLAB 应用程序的服务器 MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序 我想知道我可以使用哪个服务器 如何将 MATLAB
  • 将输出从符号数学 (sym) 转换为浮点型

    我的问题类似于这个问题 https stackoverflow com questions 11114101 how to convert mupad symbol i sqrt 1 to i in matlab 11114959 1111
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • 如何在 R 或 MATLAB 中为散点图创建阴影误差条“框”

    我想在 R 或 MATLAB 中创建一个简单的散点图 涉及两个变量 x 和 y 它们有与之相关的错误 epsilon x 和 epsilon y 然而 我不是添加误差线 而是希望在每个 x y 对周围创建一个 阴影框 其中框的高度范围从 y
  • 在 C/C++ 中调用 MATLAB API

    我刚刚从某处听说 对于数值计算 MATLAB 确实提供了一些用户友好的 API 如果你在 C C 代码中调用这些 API 你可以显着加快计算速度 但我在MATLAB文档中没有找到这样的信息 例如http www mathworks com
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运

随机推荐

  • Golang知识点五、数据类型

    数据类型 从本篇文章开始 记录Golang数据类型相关的内容 数据类型相关的知识点包括slice map string三个部分 1 切片 1 1 从数组说起 数组是具有固定长度具有零个或者多个相同数据类型元素的序列 由于数组长度固定 在Go
  • 家庭IOT监测之摄像头OV7670测试

    本篇目标 使用STM32F407驱动摄像头OV7670 并上位机显示照片结果 材料准备 STM32F4标准工程 stm32f407自建标准工程 stm32f4标准工程 git仓库地址 STM32F4摄像头测试工程 里面包含ov7670驱动文
  • C++与C#相比,哪个更适合开发大型游戏?

    我觉得这个问题倒过来回答比较合适 先解答一下目前主流的大型游戏 都是使用什么语言开发的 再说说哪种语言更适合开发大型游戏 首先 先说下 大部分游戏 甚至是应用 都极少只使用一种语言开发的 主流游戏的开发语言 LOL LOL登陆后的界面 是使
  • openwrt上如何进行串口加密

    实际生产的固件许多都对串口做了加密 这样就增加了别人觊觎你的生产固件的难度 毕竟没有几个厂商不忌惮对手对其固件内容的分析 当然这种串口加密并不能起到特别大的阻碍作用 因为只要别人想看你的固件 你是很难防住的 但串口加密至少会挡住以少部分人
  • C++ 虚函数

    如何在派生类中回避虚函数 借助于作用域运算符实现 int p derived gt base func 强行调用基类中定义的函数版本 而不管derived的动态类型到底是什么 通常当一个派生类的虚函数调用它覆盖的基类的虚函数版本时 基类版本
  • @Validated 返回参数太乱处理

    对 Validated 返回参数太乱 处理为只关注重点信息 1 处理前 有参数 通过接口校验时返回如下长串 2 处理后 处理代码 RestControllerAdvice Slf4j public class SysExceptionHan
  • 1001 害死人不偿命的(3n+1)猜想 (15 分)

    卡拉兹 Callatz 猜想 对任何一个正整数 n 如果它是偶数 那么把它砍掉一半 如果它是奇数 那么把 3n 1 砍掉一半 这样一直反复砍下去 最后一定在某一步得到 n 1 卡拉兹在 1950 年的世界数学家大会上公布了这个猜想 传说当时
  • Windows环境下安装PyMySQL(已安装Anaconda)

    我的Anaconda安装目录为D Anaconda3 在cmd中执行 会出现 随后输入pip 会出现等 随后输入
  • “真正的机会”:ChatGPT 如何帮助大学申请者

    随着平权行动的结束 生成式人工智能可以为没有导师或辅导员的学生提供帮助 从而实现招生 民主化 关于人工智能的争论主要分为三个基本类别 焦虑的不确定性 它会夺走我们的工作吗 存在的恐惧 它会杀死我们所有人吗 和简单的实用主义 人工智能可以写我
  • C语言实现Unix时间戳和北京时间的相互转换(已编译,亲试可用~)

    目录 一 什么是Unix时间戳 二 应用C语言库函数 三 C语言实现Unix时间戳与北京时间的相互转换 一 什么是Unix时间戳 1 Unix时间戳是从1970年1月1日 UTC GMT的午夜 开始所经过的秒数 不考虑闰秒 2 Unix时间
  • pyecharts0.5.x制作含地图的数据看板

    引言 pyecharts作为Python的数据可视化包 其强大的功能不言而喻 Python Echart 想想就觉得牛叉 目前pyecharts有两个大的版本 一个是0 5 x版本的 一个是1 0以后版本 而且这两个版本差别很大 如果是有的
  • excel中offset用法

    Excel 中的 Offset 函数用于在当前单元格的基础上 相对偏移指定的行数和列数 返回新单元格的值 该函数的语法如下 OFFSET reference rows cols height width reference 基准单元格 ro
  • python修饰器_Python修饰器

    Python的修饰器的英文名叫Decorator 当你看到这个英文名的时候 你可能会把其跟Design Pattern里的Decorator搞混了 其实这是完全不同的两个东西 虽然好像 他们要干的事都很相似 都是想要对一个已有的模块做一些
  • Failed to resolve packages: Package [com.unity.package-manager-ui@2.1.2] cannot be found. No package

    直接把E UnityProject test Packages manifest json 里面的依赖项删除 最后剩下 dependencies
  • 小红书破局品牌增长:4大阶段+8个种草建议

    品牌如何从激烈的竞争中突围 成为快速增长的 黑马 本文就和大家一起聊聊围绕产品面对不同阶段的人群 种草 策略 希望能够帮助品牌更好地与用户沟通并提升营销效率 实现品效合一 1 种草1 0 立住产品 抢占赛道 品牌现状 成立时间短 用户心中的
  • 基于协同过滤算法的商品推荐购物电商系统

    一 介绍 商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案 它可以根据用户的喜好 年龄 点击量 购买量以及各种购买行为来为用户推荐合适的商品 在本项目中采用的是基于用户的协同过滤的推荐算法来实现商品的推荐并在前台页面进行展示
  • Python图像处理【1】图像与视频处理基础

    图像与视频处理基础 0 前言 1 在 3D 空间中显示 RGB 图像颜色通道 1 1 图像表示 1 2 在 3D 空间中绘制颜色通道 2 使用 scikit video 读 写视频文件 2 1 scikit video 库 2 2 读 写视
  • 新引擎HeatWave将MySQL查询性能提升400倍

    参考资料 https www oracle com a ocom docs mysql heatwave technical brief pdf 前言 我刚去MySQL官方文档查个函数 顺便发现一个新东西 HeatWave 看起来很厉害的样
  • 垃圾代码是如何写出来的

    自我参加工作已经有几年了 接手过的项目也不少 包括安卓端和web前端的 在做这些项目的过程中 相当一部分的项目到最后都出现了一个现象 代码越写越乱 维护性越来越差 究其原因 我认为有如下几点 1 程序员自身能力 出现问题 首先得从自己身上找
  • Matlab实现基于BP神经网络的数据分类预测

    matlab语言实现基于BP神经网络的数据分类预测 四分类 其步骤如下 一 载入原始数据 这里以测试数据存放在Excel表格中为例 导入数据 res xlsread 数据集 xlsx 二 将数据集划分为训练集和测试集 temp randpe