分类预测 | Matlab实现CNN-LSTM-Attention高光谱数据分类

news2025/6/4 14:33:52

分类预测 | Matlab实现CNN-LSTM-Attention高光谱数据分类

目录

    • 分类预测 | Matlab实现CNN-LSTM-Attention高光谱数据分类
      • 分类效果
      • 功能概述
      • 程序设计
      • 参考资料

分类效果

在这里插入图片描述

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

在这里插入图片描述

功能概述

代码功能
该MATLAB代码实现了一个结合CNN、LSTM和注意力机制的高光谱数据分类模型,核心功能如下:

数据预处理

固定划分训练集(前705条)和测试集

特征归一化(mapminmax到[-1,1]区间)

数据重塑为LSTM所需的序列格式(num_dim×1×1的单元数组)

混合模型架构

在这里插入图片描述

核心模块

CNN模块:2个卷积层(32/64个滤波器)+ BN + ReLU + 最大池化

LSTM+Attention:128单元LSTM → 多头自注意力层(4头,16键维度)→ Dropout(0.3)

分类头:全连接层 + Softmax

训练与评估

优化器:Adam(初始LR=0.001,分段衰减)

正则化:L2(0.001) + Dropout

评估指标:准确率 + 混淆矩阵 + 预测对比图

特征可视化:t-SNE降维(优化perplexity/lr)

创新可视化

注意力层特征提取 → PCA(50) → t-SNE(2D)

参数网格搜索(perplexity=195, lr=270)

综合评分 = 0.7×轮廓系数 + 0.3×中心聚集度


在这里插入图片描述

在这里插入图片描述
技术亮点
混合架构优势

CNN提取局部空间特征 → LSTM捕获时序依赖 → 注意力聚焦关键波段

防过拟合设计

Dropout(0.3) + L2正则化 + 早停机制(验证集监控)

可视化创新

动态参数优化:自动选择最佳t-SNE参数组合

综合评分指标:结合聚类质量(轮廓系数)和特征紧密度(中心聚集)

工程实践

数据泄露防护:使用训练集归一化参数处理测试集

可重复性:rng(0)固定随机种子

高效特征提取:activations()直接获取注意力层输出

高光谱数据预处理

MSC (Multiplicative Scatter Correction) 是高光谱数据预处理的核心技术(Matlab代码不含此功能),主要用于消除光散射效应:
在这里插入图片描述

在这里插入图片描述

程序设计

  • 完整程序和数据私信博主回复Matlab实现CNN-LSTM-Attention高光谱数据分类

.rtcContent { padding: 30px; } .lineNode {font-size: 10pt; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
rng('default');
%% 导入数据
res = xlsread('data.xlsx'); 
.rtcContent { padding: 30px; } .lineNode {font-size: 10pt; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
%% 网络架构
layers = [
    sequenceInputLayer([num_dim 1 1], 'Name','input')
    sequenceFoldingLayer('Name','fold')

    % ============== CNN模块 ==============
    convolution2dLayer([3 1],32, 'Padding','same', 'Name','conv1')
    batchNormalizationLayer('Name','bn1')
    reluLayer('Name','relu1')
    maxPooling2dLayer([2 1], 'Padding','same', 'Name','pool1')

    convolution2dLayer([3 1],64, 'Padding','same', 'Name','conv2')
    batchNormalizationLayer('Name','bn2')
    reluLayer('Name','relu2')
    maxPooling2dLayer([2 1], 'Padding','same', 'Name','pool2')
    % ====================================

    sequenceUnfoldingLayer('Name','unfold')
    flattenLayer('Name','flatten')

    % ========== LSTM+注意力模块 ==========
    lstmLayer(128, 'OutputMode','last', 'Name','lstm')  
    selfAttentionLayer(4,16, 'Name','attention')       
    dropoutLayer(0.3, 'Name','dropout')
    % ====================================, x, refValue_norm); % 调用SHAP函数
end

参考资料

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

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

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

相关文章

【解决方案-RAGFlow】RAGFlow显示Task is queued、 Microsoft Visual C++ 14.0 or greater is required.

目录 一、长时间显示:Task is queued 二、GraphRAG消耗大量Token 三、error: Microsoft Visual C 14.0 or greater is required. Get it with “Microsoft C Build Tools“ 四、ModuleNotFoundError: No module named infinity.common; infinity is not a package 五…

爬虫到智能数据分析:Bright Data × Kimi 智能洞察亚马逊电商产品销售潜力

前言 电商数据分析在现代商业中具有重要的战略价值,通过对消费者行为、销售趋势、商品价格、库存等数据的深入分析,企业能够获得对市场动态的精准洞察,优化运营决策,预测市场趋势、优化广告投放、提升供应链效率,并通…

高级前端工程师必备的 JS 设计模式入门教程,常用设计模式案例分享

目录 高级前端工程师必备的 JS 设计模式入门教程,常用设计模式案例分享 一、什么是设计模式?为什么前端也要学? 1、设计模式是什么 2、设计模式的产出 二、设计模式在 JS 里的分类 三、常用设计模式实战讲解 1、单例模式(S…

2023年电赛C题——电感电容测量装置

一、赛题 二、题目分析——损耗角正切值 对于一个正常的正弦波信号,如果通过的是一个电阻或一条导线,那么它的电流信号和电压信号是一致的(有电压才有电流),没有相位差。 但是如果正弦波经过了一个电感或电容&#xf…

pycharm打印时不换行,方便对比观察

原来: 优化: import torch torch.set_printoptions(linewidth200) 优化结果:

因泰立科技:镭眸T51激光雷达,打造智能门控新生态

在高端门控行业,安全与效率是永恒的追求。如今,随着科技的飞速发展,激光雷达与TOF相机技术的融合,为门控系统带来了前所未有的智能感知能力,开启了精准守护的新时代。因泰立科技的镭眸T51激光雷达,作为这一…

Microsoft Fabric - 尝试一下Data Factory一些新的特性(2025年5月)

1.简单介绍 Microsoft Fabric是微软提供的一个数据管理和分析的统一平台,感觉最近的新特性也挺多的。 Data Factory是Microsoft Fabric的一个功能模块,也是一个cloud service。Data Factory可以和多种数据源进行连接,同时提供了data movemen…

【前端】javascript和Vue面试八股

面试暂时没有遇到过考这么深的,一般还是问一些生命周期和性能相关。 Q:什么情况下“ a 1 && a 2 && a 3 ”同时成立 A:对象的valueOf与toString方法:当一个对象与一个原始值(如数字)进…

WEB3——区块链留言板(留言上链),查看web3日志-入门项目推荐

区块链留言板(留言上链) 目标:构建一个用户可以“写入留言、读取历史留言”的 DApp。 内容: Solidity 编写留言合约,存储留言内容和发送者地址。 提供 API: GET /messages:获取留言列表 POST…

【配置vscode默认终端为git bash】

配置vscode默认终端为git bash 点击左下角小齿轮,点击设置,搜索terminal.integrated.profiles.windows,点击在setting.json中编辑 第一部分是当前的所有的终端,第二部分是配置默认的终端"terminal.integrated.defaultProfi…

Cypress + TypeScript + Vue3

🚀 从零构建 Cypress + TypeScript + Vue3 组件测试环境【详细实战教程】 组件测试是前端开发中不可忽视的一环,它能够帮助我们在开发阶段就发现 UI 与交互逻辑问题。本文将带你手把手搭建基于 Cypress + TypeScript + Vue3 的组件测试环境,包含完整目录结构、配置文件、组…

深入解析 IP 代理:原理、应用场景与优化策略

在当今数字化时代,网络通信的安全性与隐私保护成为人们日益关注的焦点,而 IP 代理作为网络技术领域的一个重要概念,正扮演着愈发关键的角色。本文将深入剖析 IP 代理的原理、广泛的应用场景以及如何对其进行优化,以期为读者提供有…

58、辣椒种植学习

辣椒(学名:Capsicum annuum)属于茄科辣椒属,是一种重要的蔬菜兼调味作物,具有较高的经济价值和营养价值。其果实富含维生素C、辣椒素等成分,既可鲜食,也可加工成干辣椒、辣椒粉、辣椒酱等产品&a…

【SpringBoot】零基础全面解析SpringBoot配置文件

本篇博客给大家带来的是SpringBoot配置文件的知识点, 有properties 配置文件 和 yml 配置文件, 目前主流的是yml,所以本文以 重点讲解 yml 配置文件. 🐎文章专栏: JavaEE进阶 👉gitte链接: 薯条不要番茄酱 🚀若有问题 评论区见 ❤ 欢迎大家点…

python:PyMOL 能处理 *.pdb 文件吗?

PyMOL 完全可以打开并处理 PDB(Protein Data Bank)文件,这是 PyMOL 最主要的功能之一。PDB 格式是结构生物学领域的标准文件格式,专门用于存储生物大分子(如蛋白质、核酸)的三维结构数据。 在 PyMOL 中打开…

GNSS终端授时之四:高精度的PTP授时

我们在GNSS终端的授时之三:NTP网络授时中介绍了NTP网络授时的基本原理。我们知道了NTP授时的精度跟网络环境相关,即使在局域网中NTP授时的精度也只能到ms级别。如果广域网,经过多级交换机,路由器,由于传输路径和延时的…

PHP与MYSQL结合中中的一些常用函数,HTTP协议定义,PHP进行文件编程,会话技术

MYSQL: 查询函数: 执行查询语句: 1.mysql_query("SQL语法"); 凡是执行操作希望拿到数据库返回的数据进行展示的(结果返回: 数据结果); 2.执行结果的处理:成功为结果集,失败为false; 成功返回结果:SQL指令没有错误,但是查询结果…

OpenCV计算机视觉实战(9)——阈值化技术详解

OpenCV计算机视觉实战(9)——阈值化技术详解 0. 前言1. 全局阈值与自适应阈值2. Otsu 算法3. 实战案例:文档扫描中的二值化处理4. 算法对比小结系列链接 0. 前言 在图像处理领域,阈值化 (Binarization) 技术就像一把魔术剪刀&…

【Tauri2】049——upload

前言 这篇就看看一个简单地插件——upload Upload | Taurihttps://tauri.app/plugin/upload/upload的英文意思是“上传(程序或信息)”。 看来是用来上传文件的。 支持移动端 正文 安装 pnpm tauri add upload 在前后端都会安装,即 .plug…

4、数据标注的武林秘籍:Label-Studio vs CVAT vs Roboflow

开篇痛点:90%的模型效果取决于数据质量 "标注3小时,训练5分钟"——这是很多AI工程师的真实写照。上周有位读者训练YOLOv12时发现,同样的代码,换批数据mAP直接跌了15%,根本原因是标注不规范!本文…