# Task 2 学习笔记
## 1. 官方 Baseline 分析
在本任务中,我们首先对官方提供的基线(baseline)进行了分析。基线是使用 `siRNA_antisense_seq` 和 `modified_siRNA_antisense_seq_list` 这两个特征,它们都是由符号标记的序列。这些序列特征需要经过处理才能输入到 RNN 模型中。
### 1.1 SiRNAModel 类的 Forward 方法
- 该方法首先将输入序列通过嵌入层转换。
- 然后使用 GRU 层处理每个嵌入的序列,并取最后一个隐藏状态。
- 最后,通过全连接层输出预测结果。
### 1.2 序列特征处理
- 使用 `GenomicTokenizer` 对序列进行分词,构建词汇表。
- 将序列转换为索引,并填充到最大长度。
## 2. RNN 模型分析
RNN(递归神经网络)是处理序列数据的强大工具,但存在一些局限性,如长期依赖问题和梯度消失或爆炸问题。
### 2.1 LSTM 和 GRU 的改进
- **LSTM** 通过三个门(输入门、遗忘门、输出门)来解决 RNN 的局限性。
- **GRU** 是 LSTM 的简化版本,通过两个门(更新门、重置门)来实现类似的功能。
### 2.2 PyTorch 中的 GRU
- 在 PyTorch 中,GRU 层的参数设置会影响模型的输入输出张量维度。
## 3. 数据的特征工程
特征工程是提高模型性能的关键步骤。我们可以通过以下方式来增强特征:
### 3.1 类别型变量处理
- 使用 `pd.get_dummies` 函数构造 one-hot 特征。
### 3.2 时间特征构造
- 从 `siRNA_duplex_id` 中提取序列号和版本号。
### 3.3 包含某些单词
- 使用 `str.contains` 方法来检测字符串中是否包含特定单词。
### 3.4 根据序列模式提取特征
- 根据 RNA 的背景知识,构造基于碱基模式的特征。
## 4. 基于 LightGBM 的 Baseline
使用 LightGBM 模型对表格数据进行回归预测。LightGBM 是一个高效的梯度提升框架,适用于处理大规模数据集。
### 4.1 LightGBM 参数设置
- 设置 `boosting_type`、`objective`、`metric` 等参数来配置模型。
### 4.2 训练和验证
- 使用 `lgb.train` 方法进行模型训练,并使用回调函数来打印验证结果。
## 5. 完整 Baseline
最后,我们提供了一个可一键运行的完整基线代码,以便快速开始实验和调优。
---
通过学习本任务,我们了解了如何分析和改进现有的基线模型,如何进行特征工程以增强模型性能,以及如何使用 LightGBM 进行高效的模型训练和预测。这些知识点对于深入理解机器学习模型的构建和优化至关重要。
RNA序列分析与模型优化

912

被折叠的 条评论
为什么被折叠?



