


一、研究背景
该代码针对多特征分类问题,系统对比了五种深度学习模型(包括混合模型和单一模型)的性能,旨在为研究者或工程师提供一个快速评估不同模型在特定数据集上表现的自动化工具,适用于模型选型、性能对比与教学研究。
二、主要功能
- 一键对比五种模型 :
- Transformer-LSTM
- Transformer
- CNN-LSTM
- LSTM
- CNN
- 数据预处理与划分(支持打乱、归一化、类别平衡)
- 多模型训练与评估(自动训练、预测、计算指标)
- 可视化对比分析(指标柱状图、训练时间、混淆矩阵等)
- 综合性能报告生成(自动保存最佳模型与结果)
三、算法步骤
- 数据加载与预处理
- 读取Excel数据
- 划分训练/测试集(按类别平衡)
- 归一化处理
- 转换为模型所需格式(序列、图像、混合)
- 模型定义
- 分别定义五种网络结构
- 模型训练
- 使用Adam优化器
- 设置学习率衰减
- 批量训练
- 模型评估
- 预测测试集
- 计算多指标(准确率、精确率、召回率、F1、AUC)
- 可视化与报告
- 绘制对比图表
- 输出综合报告
- 保存结果
四、技术路线
- 编程语言:MATLAB
- 深度学习框架:MATLAB Deep Learning Toolbox
- 模型架构 :
- CNN(卷积神经网络)
- LSTM(长短时记忆网络)
- Transformer(自注意力机制)
- 混合模型(CNN-LSTM, Transformer-LSTM)
- 评估方法:多分类指标宏平均
- 可视化工具:MATLAB绘图函数
五、公式原理
- LSTM :
ft=σ(Wf⋅[ht−1,xt]+bf)it=σ(Wi⋅[ht−1,xt]+bi)C~t=tanh(WC⋅[ht−1,xt]+bC)Ct=ft∗Ct−1+it∗C~tot=σ(Wo⋅[ht−1,xt]+bo)ht=ot∗tanh(Ct) \begin{aligned} f_t &= \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \\ i_t &= \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \\ \tilde{C}t &= \tanh(W_C \cdot [h{t-1}, x_t] + b_C) \\ C_t &= f_t * C_{t-1} + i_t * \tilde{C}t \\ o_t &= \sigma(W_o \cdot [h{t-1}, x_t] + b_o) \\ h_t &= o_t * \tanh(C_t) \end{aligned} ftitC~tCtotht=σ(Wf⋅[ht−1,xt]+bf)=σ(Wi⋅[ht−1,xt]+bi)=tanh(WC⋅[ht−1,xt]+bC)=ft∗Ct−1+it∗C~t=σ(Wo⋅[ht−1,xt]+bo)=ot∗tanh(Ct) - Transformer自注意力 :
Attention(Q,K,V)=softmax(QKTdk)V \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V - CNN卷积 :
(f∗g)(t)=∑τf(τ)g(t−τ) (f * g)(t) = \sum_{\tau} f(\tau) g(t - \tau) (f∗g)(t)=τ∑f(τ)g(t−τ) - 评价指标 (宏平均):
- 精确率 = TPTP+FP\frac{TP}{TP+FP}TP+FPTP
- 召回率 = TPTP+FN\frac{TP}{TP+FN}TP+FNTP
- F1 = 2×精确率×召回率精确率+召回率2 \times \frac{\text{精确率} \times \text{召回率}}{\text{精确率} + \text{召回率}}2×精确率+召回率精确率×召回率
六、参数设定
| 参数 | 说明 | 默认值 |
|---|---|---|
data_file |
数据文件路径 | 'data.xlsx' |
train_ratio |
训练集比例 | 0.7 |
shuffle_data |
是否打乱数据 | 1(是) |
max_epochs |
最大训练轮数 | 100 |
mini_batch_size |
批大小 | 64 |
initial_learn_rate |
初始学习率 | 0.001 |
numHeads (Transformer) |
自注意力头数 | 4 |
七、运行环境
- 软件:MATLAB R2024B 或更高版本(需Deep Learning Toolbox)
- 数据格式:Excel文件,最后一列为标签,其余为特征