下载和加载基准测试数据集¶
通常使用标准的数据集来比较不同的分类、聚类、回归、预测和异常检测的估计器。其中一些数据集随aeon一起提供,位于datasets/data目录中。然而,这些文件太大,无法全部包含。aeon提供了下载这些数据的工具,以便在基准测试实验中使用。分类和回归数据以.ts格式存储。预测数据以等效的.tsf格式存储。异常检测数据集以TimeEval .csv格式存储。有关更多信息,请参见数据加载笔记本。
分类和回归数据被加载到形状为(n_cases, n_channels, n_timepoints)的3D numpy数组中,如果时间点长度相等;如果不同案例的n_timepoints不同,则加载为[n_cases]的2D numpy列表。预测数据被加载到pd.DataFrame中。异常检测数据集被加载到形状为(n_timepoints, n_channels)的2D numpy数组中。有关aeon数据类型的更多信息,请参阅数据结构笔记本。
请注意,此笔记本依赖于外部网站,因此如果您未在线或相关网站不可用,则无法正常工作。我们使用以下四个函数
[1]:
from aeon.datasets import (
load_anomaly_detection,
load_classification,
load_forecasting,
load_regression,
)
时间序列分类档案¶
UCR/TSML 时间序列分类档案 托管了 UCR 单变量时间序列分类档案 [1],也可从 UCR 获取,以及多变量档案 [2](以前称为 UEA 档案,即将更改)。我们在 datasets/data 目录中提供了其中的七个:ACSF1、ArrowHead、BasicMotions、GunPoint、ItalyPowerDemand、JapaneseVowels 和 PLAID。档案库要大得多。最后一批发布包括 128 个单变量 [1] 和 33 个多变量 [2]。如果您只想下载所有这些,请访问 网站
[2]:
from aeon.datasets.tsc_datasets import multivariate, univariate
# This file also contains sub lists by type, e.g. unequal length
print("Univariate length = ", len(univariate))
print("Multivariate length = ", len(multivariate))
Univariate length = 128
Multivariate length = 30
为这些数据提供了默认的训练和测试分割。例如Chinatown问题的文件结构如下:
<extract_path>/Chinatown/Chinatown_TRAIN.ts
<extract_path>/Chinatown/Chinatown_TEST.ts
你可以直接从TSC.com加载这些问题并将它们加载到内存中。这些函数除了返回数据外,还可以返回相关的元数据。这种用法将训练和测试集合并,并将它们加载到一个X和一个y数组中。
[3]:
X, y, meta = load_classification("Chinatown", return_metadata=True)
print("Shape of X = ", X.shape)
print("First case = ", X[0][0], " has label = ", y[0])
print("\nMeta data = ", meta)
Shape of X = (363, 1, 24)
First case = [ 573. 375. 301. 212. 55. 34. 25. 33. 113. 143. 303. 615.
1226. 1281. 1221. 1081. 866. 1096. 1039. 975. 746. 581. 409. 182.] has label = 1
Meta data = {'problemname': 'chinatown', 'timestamps': False, 'missing': False, 'univariate': True, 'equallength': True, 'classlabel': True, 'targetlabel': False, 'class_values': ['1', '2']}
如果你查看aeon/datasets目录,你应该会看到一个名为local_data的目录,里面包含Chinatown数据集。所有的压缩文件都有.ts文件。有些还有.arff和.txt文件。文件结构看起来像这样:

在每个文件夹中,数据以文本文件的形式存储,格式为.ts文件(有关文件格式描述,请参见数据加载笔记本)。它们也可能以.arff格式和.txt格式提供。

如果您再次使用相同的提取路径加载,如果文件已经存在,它将不会再次下载。如果您想将数据存储在其他地方,您可以指定一个文件路径。此外,您可以分别加载训练和测试数据。此代码将数据下载到Temp一次,并加载到单独的训练/测试分割中。分割参数不区分大小写。下载后,load_classification等同于调用load_from_ts_file
时间序列(外部)回归¶
`The Monash Time Series Extrinsic Regression Archive <>`__ [3] 仓库(称为extrinsic以区别于基于滑动窗口的回归)目前包含19个以.ts格式的回归问题。其中一个,Covid3Month,位于 datasets\data 中。我们最近扩展了这个仓库,包含了63个以.ts格式的问题。load_regression 的使用方法与 load_classification 相同。
[4]:
from aeon.datasets.dataset_collections import get_available_tser_datasets
get_available_tser_datasets()
[4]:
['AcousticContaminationMadrid',
'AluminiumConcentration',
'AppliancesEnergy',
'AustraliaRainfall',
'BIDMC32HR',
'BIDMC32RR',
'BIDMC32SpO2',
'BarCrawl6min',
'BeijingIntAirportPM25Quality',
'BeijingPM10Quality',
'BeijingPM25Quality',
'BenzeneConcentration',
'BinanceCoinSentiment',
'BitcoinSentiment',
'BoronConcentration',
'CalciumConcentration',
'CardanoSentiment',
'ChilledWaterPredictor',
'CopperConcentration',
'Covid19Andalusia',
'Covid3Month',
'DailyOilGasPrices',
'DailyTemperatureLatitude',
'DhakaHourlyAirQuality',
'ElectricMotorTemperature',
'ElectricityPredictor',
'EthereumSentiment',
'FloodModeling1',
'FloodModeling2',
'FloodModeling3',
'GasSensorArrayAcetone',
'GasSensorArrayEthanol',
'HotwaterPredictor',
'HouseholdPowerConsumption1',
'HouseholdPowerConsumption2',
'IEEEPPG',
'IronConcentration',
'LPGasMonitoringHomeActivity',
'LiveFuelMoistureContent',
'MadridPM10Quality',
'MagnesiumConcentration',
'ManganeseConcentration',
'MethaneMonitoringHomeActivity',
'MetroInterstateTrafficVolume',
'NaturalGasPricesSentiment',
'NewsHeadlineSentiment',
'NewsTitleSentiment',
'OccupancyDetectionLight',
'PPGDalia',
'ParkingBirmingham',
'PhosphorusConcentration',
'PotassiumConcentration',
'PrecipitationAndalusia',
'SierraNevadaMountainsSnow',
'SodiumConcentration',
'SolarRadiationAndalusia',
'SteamPredictor',
'SulphurConcentration',
'TetuanEnergyConsumption',
'VentilatorPressure',
'WaveDataTension',
'WindTurbinePower',
'ZincConcentration']
[5]:
X, y, meta = load_regression("FloodModeling1", return_metadata=True)
print("Shape of X = ", X.shape, " meta data = ", meta)
Shape of X = (673, 1, 266) meta data = {'problemname': 'floodmodeling1', 'timestamps': False, 'missing': False, 'univariate': True, 'equallength': True, 'classlabel': False, 'targetlabel': True, 'class_values': []}
时间序列预测¶
Monash时间序列预测仓库包含大量预测数据,包括M1、M3和M4等竞赛数据。使用方法与其他问题相同,尽管没有提供训练/测试分割。
[6]:
from aeon.datasets.dataset_collections import get_available_tsf_datasets
get_available_tsf_datasets()
[6]:
['australian_electricity_demand_dataset',
'car_parts_dataset_with_missing_values',
'car_parts_dataset_without_missing_values',
'cif_2016_dataset',
'covid_deaths_dataset',
'covid_mobility_dataset_with_missing_values',
'covid_mobility_dataset_without_missing_values',
'dominick_dataset',
'elecdemand_dataset',
'electricity_hourly_dataset',
'electricity_weekly_dataset',
'fred_md_dataset',
'hospital_dataset',
'kaggle_web_traffic_dataset_with_missing_values',
'kaggle_web_traffic_dataset_without_missing_values',
'kaggle_web_traffic_weekly_dataset',
'kdd_cup_2018_dataset_with_missing_values',
'kdd_cup_2018_dataset_without_missing_values',
'london_smart_meters_dataset_with_missing_values',
'london_smart_meters_dataset_without_missing_values',
'm1_monthly_dataset',
'm1_quarterly_dataset',
'm1_yearly_dataset',
'm3_monthly_dataset',
'm3_other_dataset',
'm3_quarterly_dataset',
'm3_yearly_dataset',
'm4_daily_dataset',
'm4_hourly_dataset',
'm4_monthly_dataset',
'm4_quarterly_dataset',
'm4_weekly_dataset',
'm4_yearly_dataset',
'nn5_daily_dataset_with_missing_values',
'nn5_daily_dataset_without_missing_values',
'nn5_weekly_dataset',
'pedestrian_counts_dataset',
'saugeenday_dataset',
'solar_10_minutes_dataset',
'solar_4_seconds_dataset',
'solar_weekly_dataset',
'sunspot_dataset_with_missing_values',
'sunspot_dataset_without_missing_values',
'tourism_monthly_dataset',
'tourism_quarterly_dataset',
'tourism_yearly_dataset',
'traffic_hourly_dataset',
'traffic_weekly_dataset',
'us_births_dataset',
'weather_dataset',
'wind_4_seconds_dataset',
'wind_farms_minutely_dataset_with_missing_values',
'wind_farms_minutely_dataset_without_missing_values']
[7]:
X, metadata = load_forecasting("m4_yearly_dataset", return_metadata=True)
print(X.shape)
print(metadata)
data = X.head()
print(data)
(23000, 3)
{'frequency': 'yearly', 'forecast_horizon': 6, 'contain_missing_values': False, 'contain_equal_length': False}
series_name start_timestamp \
0 T1 1979-01-01 12:00:00
1 T2 1979-01-01 12:00:00
2 T3 1979-01-01 12:00:00
3 T4 1979-01-01 12:00:00
4 T5 1979-01-01 12:00:00
series_value
0 [5172.1, 5133.5, 5186.9, 5084.6, 5182.0, 5414....
1 [2070.0, 2104.0, 2394.0, 1651.0, 1492.0, 1348....
2 [2760.0, 2980.0, 3200.0, 3450.0, 3670.0, 3850....
3 [3380.0, 3670.0, 3960.0, 4190.0, 4440.0, 4700....
4 [1980.0, 2030.0, 2220.0, 2530.0, 2610.0, 2720....
时间序列异常检测 (TSAD)¶
TimeEval 存档 [5] 包含了30个用于时间序列异常检测的数据集集合。每个集合由来自同一来源的多个数据集组成。这些集合涵盖了多个领域,包括网络安全、工业过程和医疗保健。可以使用 load_anomaly_detection 函数直接加载这些数据集:
[8]:
from aeon.datasets.tsad_datasets import multivariate, univariate
# This file also contains sub lists by learning type, e.g. semi-supervised, ...
print("Univariate length = ", len(univariate()))
print("Multivariate length = ", len(multivariate()))
Univariate length = 11233
Multivariate length = 342
为所有监督和半监督数据提供了默认的训练和测试分割。问题的文件结构如下:
<extract_path>/<dimensionality>/<collection>/<dataset>.test.csv
<extract_path>/<dimensionality>/<collection>/<dataset>.train.csv
您可以直接从TimeEval存档[5]中将这些问题加载到内存中。加载函数除了返回数据外,还可以返回相关的元数据:
[9]:
name = ("Genesis", "genesis-anomalies")
X, y, meta = load_anomaly_detection(name, return_metadata=True)
print("Shape of X = ", X.shape)
print("Shape of y = ", y.shape)
print("\nMeta data = ", meta)
Shape of X = (16220, 18)
Shape of y = (16220,)
Meta data = {'problemname': 'Genesis genesis-anomalies', 'timestamps': 16220, 'dimensions': 18, 'learning_type': 'unsupervised', 'contamination': 0.00308261405672, 'num_anomalies': 3}
参考文献¶
[1] Dau 等人, UCR 时间序列档案, IEEE/CAA 自动化学报, 2019 [2] Ruiz 等人, 多变量时间序列分类大比拼:最新算法进展的回顾与实验评估, 数据挖掘与知识发现 35(2), 2021 [3] Tan 等人, 时间序列外部回归, 数据挖掘与知识发现, 2021 [4] Godahewa 等人, Monash 时间序列预测档案, 神经信息处理系统数据集与基准测试赛道, 2021 [5] Sebastian Schmidl, Phillip Wenig, Thorsten Papenbrock: 时间序列中的异常检测:全面评估. PVLDB 9:(15), 2022, DOI:10.14778/3538598.3538602.
[9]: