# 毕业设计代码 **Repository Path**: jjaazz/graduation-design-code ## Basic Information - **Project Name**: 毕业设计代码 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-21 - **Last Updated**: 2026-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # COSCO:一个用于小样本多变量时间序列分类的尖锐度感知训练框架 ## 摘要 时间序列分类是一项重要任务,在许多不同领域都有广泛应用。近年来,深度神经网络在时间序列分类中取得了最先进的性能,但通常需要大规模数据集和专家标注监督才能进行有效训练。在数据稀缺场景下,深度学习模型的性能往往会显著下降。本文提出了一个名为 COSCO 的训练框架,从损失函数和优化角度缓解小样本多变量时间序列分类任务中的性能下降问题(即仅有少量样本可用的情况)。具体而言,我们提出结合原型损失函数与尖锐度感知最小化(SAM)技术,以增强深度学习分类器在小样本多变量时间序列分类任务中的泛化能力。此类优化技术可灵活应用于任意深度学习模型。我们在由 UCR 分类数据构建的小样本基准数据集上,使用 ResNet 骨干网络验证了方法有效性。 ## 环境 为便于开箱即用地运行项目,我们提供了 Jupyter Notebook:`COSCO.ipynb`。 你也可以通过克隆仓库并安装依赖在本地运行。 ```bash git clone https://github.com/JRB9/COSCO.git cd COSCO pip install -r requirements.txt ``` ## 数据集 为了开箱即用,我们在本仓库的 `Datasets` 文件夹中提供了完整数据集、1-shot 和 10-shot 版本。这些数据集来源于 [UCR 时间序列分类档案库](https://timeseriesclassification.com/dataset.php)。 多变量数据集列表如下: ```bash ArticularyWordRecognition, BasicMotions, CharacterTrajectories, EigenWorms, Epilepsy, EthanolConcentration, FaceDetection, FingerMovements, HandMovementDirection, Heartbeat, JapaneseVowels, Libras, MotorImagery, NATOPS, PEMS-SF, PenDigits, RacketSports, SelfRegulationSCP1, SelfRegulationSCP2, SpokenArabicDigits, UWaveGestureLibrary. ``` ## 复现方法 ### 使用 Jupyter Notebook 在任意 Jupyter Notebook 环境中运行 `COSCO.ipynb`。 ### 本地运行 使用以下可配置参数执行 `run.py`: ```bash python run.py ``` #### 参数说明 - **lr**:优化器学习率(例如 `0.01`)。 - **rho**:优化中的动量参数(例如 `0.9`)。 - **nEpoch**:训练轮数(例如 `100`)。 - **dataset**:要使用的数据集名称(例如 `BasicMotions`)。 - **shot**:每类的样本数(support examples,`1` 或 `10`)。 - **normalize**:是否对输入数据进行归一化(`True` 或 `False`)。 - **model**:使用的基线模型类型(`"resnet"` 或 `"tapnet"`)。 - **sam**:是否使用尖锐度感知最小化(SAM)(`True` 或 `False`)。 - **optimizer**:训练使用的优化器类型(`"sgd"` 或 `"adam"`)。 - **prototypical_loss**:是否在训练中使用原型损失(`True` 或 `False`)。 - **prototypical_loss_type**:原型损失类型(`"neg"`、`"sim"`、`"cos"`、`"negexp"`)。 - **save_dir**:输出保存目录路径(例如 `"/content/classification_data/"`)。 - **save_name**:结果保存文件名(例如 `"results.csv"`)。 ##### 使用示例 ```bash python run.py --dataset BasicMotions --model resnet --lr 0.001 --rho 0.9 --nEpoch 100 --shot 1 --normalize False --sam True --optimizer adam --prototypical_loss True --prototypical_loss_type neg --save_dir /content/classification_data/ --save_name results.csv ``` ## 引用 本文已投稿并被 CIKM '24 会议接收发表。 如果你在研究中使用了本代码或本文方法,请引用我们的论文: ``` @inproceedings{barreda2024cosco, title={COSCO: A Sharpness-Aware Training Framework for Few-shot Multivariate Time Series Classification}, author={Barreda, Jesus and Gomez, Ashley and Puga, Ruben and Zhou, Kaixiong and Zhang, Li}, booktitle={Proceedings of the 33rd ACM International Conference on Information and Knowledge Management}, pages={3622--3626}, year={2024} } ```