分类预测 | MATLAB实现CNN-BiLSTM-Attention多输入分类预测

news/2024/12/29 2:02:08/

分类预测 | MATLAB实现CNN-BiLSTM-Attention多输入分类预测

目录

    • 分类预测 | MATLAB实现CNN-BiLSTM-Attention多输入分类预测
      • 分类效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

分类效果

1
2
3
4
5
6

基本介绍

MATLAB实现CNN-BiLSTM-Attention多输入分类预测,CNN-BiLSTM结合注意力机制多输入分类预测。

模型描述

Matlab实现CNN-BiLSTM-Attention多变量分类预测
1.data为数据集,格式为excel,12个输入特征,输出四个类别;
2.MainCNN_BiLSTM_AttentionNC.m为主程序文件,运行即可;

注意程序和数据放在一个文件夹,运行环境为Matlab2020b及以上。
4.注意力机制模块:
SEBlock(Squeeze-and-Excitation Block)是一种聚焦于通道维度而提出一种新的结构单元,为模型添加了通道注意力机制,该机制通过添加各个特征通道的重要程度的权重,针对不同的任务增强或者抑制对应的通道,以此来提取有用的特征。该模块的内部操作流程如图,总体分为三步:首先是Squeeze 压缩操作,对空间维度的特征进行压缩,保持特征通道数量不变。融合全局信息即全局池化,并将每个二维特征通道转换为实数。实数计算公式如公式所示。该实数由k个通道得到的特征之和除以空间维度的值而得,空间维数为H*W。其次是Excitation激励操作,它由两层全连接层和Sigmoid函数组成。如公式所示,s为激励操作的输出,σ为激活函数sigmoid,W2和W1分别是两个完全连接层的相应参数,δ是激活函数ReLU,对特征先降维再升维。最后是Reweight操作,对之前的输入特征进行逐通道加权,完成原始特征在各通道上的重新分配。

1
2

程序设计

  • 完整程序和数据获取方式1:同等价值程序兑换;
  • 完整程序和数据获取方式2:私信博主获取。
%% CNN模型建立layers = [imageInputLayer([size(input,1) 1 1])     %输入层参数设置convolution2dLayer(3,16,'Padding','same')%卷积层的核大小、数量,填充方式reluLayer                                %relu激活函数fullyConnectedLayer(384) % 384 全连接层神经元fullyConnectedLayer(384) % 384 全连接层神经元fullyConnectedLayer(1)   % 输出层神经元regressionLayer];        % 添加回归层,用于计算损失值
%% 模型训练与测试options = trainingOptions('adam', ...'MaxEpochs',20, ...'MiniBatchSize',16, ...'InitialLearnRate',0.005, ...'GradientThreshold',1, ...'Verbose',false,...'Plots','training-progress',...'ValidationData',{testD,targetD_test'});
% 训练
net = trainNetwork(trainD,targetD',layers,options);
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
tempLayers = multiplicationLayer(2, "Name", "multiplication");         % 点乘的注意力
lgraph = addLayers(lgraph, tempLayers);                                % 将上述网络结构加入空白结构中tempLayers = [sequenceUnfoldingLayer("Name", "sequnfold")                        % 建立序列反折叠层flattenLayer("Name", "flatten")                                    % 网络铺平层bilstmLayer(6, "Name", "bilstm", "OutputMode", "last")             % BiLSTM层fullyConnectedLayer(num_class)                                     % 全连接层softmaxLayer                                                       % 损失函数层classificationLayer];                                              % 分类层
lgraph = addLayers(lgraph, tempLayers);                                % 将上述网络结构加入空白结构中lgraph = connectLayers(lgraph, "seqfold/out", "conv_1");               % 折叠层输出 连接 卷积层输入;
lgraph = connectLayers(lgraph, "seqfold/miniBatchSize", "sequnfold/miniBatchSize"); 

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129943065?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/129919734?spm=1001.2014.3001.5501


http://www.ppmy.cn/news/54356.html

相关文章

连接分析工具箱 | 利用CATO进行结构和功能连接重建

导读 本研究描述了一个连接分析工具箱(CATO),用于基于扩散加权成像(DWI)和静息态功能磁共振成像(rs-fMRI)数据来重建大脑结构和功能连接。CATO是一个多模态软件包,使研究人员能够运行从MRI数据到结构和功能连接组图的端到端重建,定制其分析并…

人群计数数据集汇总和详细介绍,全网最全,crowd counting datasets

Crowd Counting数据集汇总 视频监控video surveillance https://github.com/gjy3035/Awesome-Crowd-Counting/blob/master/src/Datasets.md进展 | 密集人群分布检测与计数 :https://www.sohu.com/a/338406719_823210 Free-view 2022_Pedestrian Attribute Recognition htt…

vue3.0 指令 Directives

指令是带有 v- 前缀的特殊 attribute。Vue 提供了许多内置指令。 指令 attribute 的期望值为一个 JavaScript 表达式 (除了少数几个例外&#xff0c;即 v-for、v-on 和 v-slot)。一个指令的任务是在其表达式的值变化时响应式地更新 DOM。 例&#xff1a; v-if <p v-if&quo…

【MySQL笔记】MySQL数据库索引失效的原因解读

目录 一、不满足最左前缀原则 1.1 第1种情况 1.2 第2种情况 1.3 第3种情况 1.4 第4种情况 1.5 第5种情况 1.6 第6种情况 1.7 第7种情况 1.8 第8种情况 二、范围索引列没有放在最后 三、使用了select* 四、索引列上有计算 五、索引列上使用了函数 六、字符类型没加…

028:Mapbox GL 绘制线段,实时测量长度距离值

第028个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制线段,编辑线段,实时显示长度值。这里使用turf来计算长度值,采用默认的单位千米。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代…

学习资料地址

1. sklearn-learn数据集&#xff1a;API Reference — scikit-learn 1.2.2 documentation 2. 算法学习资料&#xff1a;ShowMeAI知识社区 3. 深度学习框架&#xff1a;2.1. 数据操作 — 动手学深度学习 2.0.0 documentation 4. sklearn-learn 数据集获取步骤 数据集&#xf…

bismark和bsmap比对原理

1&#xff0c;bismark比对方法比较简单粗暴&#xff0c;它制作两种类型的基因组&#xff1a;1&#xff09;&#xff0c;将所有的C转化为T的基因组&#xff1b;2&#xff09;&#xff0c;将所有的G转化为A的基因组。它将bisulfate&#xff08;重chong硫酸盐&#xff09;处理后的…

Springboot Mybatis使用pageHelper实现分页查询

以下介绍实战中数据库框架使用的是mybatis&#xff0c;对整合mybatis此处不做介绍。 使用pageHelper实现分页查询其实非常简单&#xff0c;共两步&#xff1a; 一、导入依赖&#xff1b; 二、添加配置&#xff1b; 那么开始&#xff0c; 第一步&#xff1a; pom.xml添加依…