InceptionTime:为时间序列分类寻找AlexNet
这是我们发表在《数据挖掘与知识发现》上并可在 ArXiv 上获取的论文《InceptionTime:为时间序列分类寻找AlexNet》的配套代码库。
Inception 模块
数据
本项目使用的数据来自 UCR/UEA 存档。我们使用了这里列出的 85 个数据集。
要求
您需要安装 requirements.txt 文件中列出的以下软件包。
代码
代码分为以下几部分:
- main.py 文件包含运行实验所需的代码。
- utils 文件夹包含读取数据集和可视化图表所需的函数。
- classifiers 文件夹包含两个 Python 文件:(1) inception.py 包含 inception 网络;(2) nne.py 包含集成一组 Inception 网络的代码。
为您的电脑调整代码
首先,您应该考虑更改这一行。这是所有内容(数据和结果)的根目录,我们称之为 root_dir
。
之后,您应该在 root_dir
中创建一个名为 archives
的文件夹,其中应包含 UCR_TS_Archive_2015
文件夹。后者将为每个数据集包含一个名为 dataset_name
的文件夹,可以从该网站下载。
数据集的名称在这里列出。您可以注释掉这一行以在所有数据集上运行实验。
完成所有这些后,您就可以在单个存档上进行运行了。
在单个存档上运行 InceptionTime
您应该执行以下命令:python3 main.py InceptionTime
。
在单个存档上为 InceptionTime 运行超参数搜索
您应该执行以下命令:python3 main.py InceptionTime_xp
。
在InlineSkate数据集上运行长度实验
首先,您应该执行以下命令 python3 main.py run_length_xps
来生成重采样数据。
然后,您应该执行以下命令 python3 main.py InceptionTime
,但请确保在这里选择了 InlineSkateXPs
。
感受野
要在合成数据集上运行实验,您应该执行以下命令 python3 receptive.py
。
结果
每个数据集的结果(即准确率)将位于 root_dir/results/nne/incepton-0-1-2-4-/UCR_TS_Archive_2015/dataset_name/df_metrics.csv
。
原始结果可以在这里找到,并使用以下命令生成 python3 main.py generate_results_csv
。
我们添加了UCR归档中128个数据集的完整结果,可以在这里找到。
results-inception-128.csv文件包含了Inception模型在UCR 2018归档的128个数据集上的五次独立运行结果。
临界差异图
如果您想生成这样的图表,请查看这段代码!
训练时间图
这些图表是使用matplotlib库生成的。
训练时间与训练集大小的关系 | 训练时间与序列长度的关系 |
---|---|
感受野
这个图表是通过执行以下命令生成的 python3 receptive.py plot_results
。
感受野效果 | 深度效果 |
---|---|
参考文献
如果您重复使用这项工作,请引用:
@article{IsmailFawaz2020inceptionTime,
标题 = {InceptionTime: 为时间序列分类寻找AlexNet},
作者 = {Ismail Fawaz, Hassan 和 Lucas, Benjamin 和 Forestier, Germain 和 Pelletier, Charlotte 和 Schmidt, Daniel F. 和 Weber, Jonathan 和 Webb, Geoffrey I. 和 Idoumghar, Lhassane 和 Muller, Pierre-Alain 和 Petitjean, François},
期刊 = {数据挖掘与知识发现},
年份 = {2020}
}
致谢
我们要感谢UCR/UEA档案库的提供者。 我们还要感谢NVIDIA公司提供的Quadro P6000赠款,以及斯特拉斯堡中央计算中心提供的集群访问权限。