摘要:本文主要内容为针对tsv格式的UCR数据集和arff格式的UEA数据集进行处理,将其中的标签和数据分离出来,并转换为csv文件

目录

前言

数据集

UCR数据集处理

UEA数据集处理

总结

处理后的数据集:


前言

UEA数据集和UCR数据集,目前是时间序列挖掘领域重要的开源数据集资源,每个数据集样本都带有样本类别标签,为了方便处理,这里将其中的标签和数据分离出来,并转换为csv文件

数据集

UCR数据集

注:下载数据集后,解压缩密码为 someone

UEA数据集

点击链接,下载如图所示的arff格式的UEA数据集:

下载后的数据集如图所示:

UCR数据集:

UEA数据集


UCR数据集处理

代码如下:

import os
import pandas as pd
datapath="E:/桌面/代码/数据集/UCRArchive_2018/UCRArchive_2018"
save_data_path="E:/桌面/代码/数据集/UCRArchive_2018_csv"
def cope_UCR(datapath,save_data_path):''':param datapath: tsv格式的UCR数据集路径,type:string该数据集结构为:-E:/桌面/代码/数据集/UCRArchive_2018/UCRArchive_2018-ACSF1-ACSF1_TEST.tsv-ACSF1_TRAIN.tsv-README.md-Adiac-Adiac_TEST.tsv-Adiac_TRAIN.tsv-README.md-AllGestureWiimoteX-AllGestureWiimoteX_TEST.tsv-AllGestureWiimoteX_TRAIN.tsv-README.me-......:param save_data_path: 保存转换为csv格式的UCR数据集的路径 type:string该数据集结构为:-E:/桌面/代码/数据集/UCRArchive_2018_csv-ACSF1-TEST.csv-TEST_label.csv-TRAIN.csv-TRAIN_label.csv-Adiac-TEST.csv-TEST_label.csv-TRAIN.csv-TRAIN_label.csv-AllGestureWiimoteX-TEST.csv-TEST_label.csv-TRAIN.csv-TRAIN_label.csv-......每个数据集下包含测试集数据、测试集标签、训练集数据、训练集标签:return:None'''data_list=os.listdir(datapath)for data_name in data_list:#读取每个数据集下的train test readme文件new_data_path=datapath+"/"+data_nametrain_test_readme=os.listdir(new_data_path)for data_file in train_test_readme:if data_file.endswith('.tsv'):#如果文件以tsv结尾data_label = pd.read_csv(new_data_path+"/"+data_file, sep='\t',header=None)label = data_label.iloc[:, 0]data = data_label.iloc[:, 1:]data_csv_dir=save_data_path+"/"+data_name#如果数据目录不存在,则创建if not os.path.exists(data_csv_dir):os.mkdir(data_csv_dir)# 将标签和数据分别存到csv文件中file_name=data_file.split('_')[1].split('.')[0]prefix_path=data_csv_dir+"/"+file_name#用savetxt精度会出问题# label=data_label.iloc[:,0].values# data=data_label.iloc[:,1:].values# np.savetxt(prefix_path+"_label.csv", label, delimiter=",",encoding='utf-8',fmt='%f')# np.savetxt(prefix_path+".csv", data, delimiter=",",encoding='utf-8',fmt='%f')label.to_csv(prefix_path+"_label.csv",mode='w',index=False,header=None,encoding='utf-8')data.to_csv(prefix_path+".csv",mode='w',index=False,header=None,encoding='utf-8')print(data_name)
cope_UCR(datapath,save_data_path)

效果如图:

UEA数据集处理

代码如下:

import pandas as pd
import os
import natsort
data_set_dir='E:/桌面/代码/数据集/Multivariate2018_arff/Multivariate_arff'
data_save_dir='E:/桌面/代码/数据集/Multivariate2018_arff_csv'def arff_to_csv(data_set_dir,data_save_dir):''':param data_set_dir: 下载的数据集路径:param data_save_dir: 保存csv数据集的保存路径:return: None'''# 读取数据包下的所有数据名data_set_list=os.listdir(data_set_dir)for dataset_name in data_set_list:# dataset_name为[ArticularyWordRecognition,AtrialFibrillation,BasicMotions,CharacterTrajectories,...]dataset_name_path=data_set_dir+"/"+dataset_nameif os.path.isdir(dataset_name_path):#如果为路径,遍历该路径下的所有文件# dataset_name_path_list=os.listdir(dataset_name_path)#路径列表按照系统排序方式进行排序dataset_name_path_list = natsort.natsorted(os.listdir(dataset_name_path), alg=natsort.ns.PATH)# 数据集标签是否已写入的标志train_label_tag = Falsetest_label_tag = Falsefor data_file in dataset_name_path_list:#数据格式data_format=data_file.split('.')[1]#文件名data_name=data_file.split('.')[0]#只转换arff文件和包含Dimension文件if data_format=='arff' and 'Dimension' in data_name:# 训练集还是测试集train_or_test = data_name.split('_')[1].lower()file_name=dataset_name_path+"/"+data_filewith open(file_name,encoding="utf-8") as f:header = []for line in f:if line.startswith("@attribute"):header.append(line.split()[1])elif line.startswith("@data"):breakif os.path.getsize(file_name) > 0:data_label = pd.read_csv(f, header=None)else:print("---发现一个空数据文件---"+data_file)continue#标签label = data_label.iloc[:, -1]#数据data = data_label.iloc[:, :data_label.shape[1]-1]data_csv_dir = data_save_dir + "/" + dataset_name# 如果数据目录不存在,则创建if not os.path.exists(data_csv_dir):os.mkdir(data_csv_dir)file_name_data=data_save_dir+"/"+dataset_name+"/"+data_namefile_name_label = data_save_dir + "/" + dataset_name + "/" + train_or_test + "_label.csv"if not train_label_tag and train_or_test == 'train':#如果数据集的标签未写入且为训练集,则写入训练集的标签label.to_csv(file_name_label , mode='w', index=False, header=None, encoding='utf-8')train_label_tag=Trueif not test_label_tag and train_or_test == 'test':#如果数据集的标签未写入且为测试集,则写入测试集的标签label.to_csv(file_name_label , mode='w', index=False, header=None, encoding='utf-8')test_label_tag = Truedata.to_csv(file_name_data + ".csv", mode='w', index=False, header=None, encoding='utf-8')print(data_file)print(dataset_name)arff_to_csv(data_set_dir,data_save_dir)

效果如图:

总结

arff格式的UEA数据集的处理当然可以使用Weka软件进行处理,具体参考:

Weka使用

但是一个一个转换起来太麻烦了,还不如自己写个python程序。

处理后的数据集:

CSV格式的UCR数据集

CSV格式的UEA数据集

UEA数据集和UCR数据集的处理相关推荐

  1. OTB数据集和VOT数据集融合跟踪算法接口示例

    OTB数据集和VOT数据集自己存数据接口参考代码: 一.OTB数据集(不使用tracker_benchmark_v1.0) 1.OTB数据结果最基本的格式 type为目标框类型: res为目标框的所在 ...

  2. 用K-Means算法处理wine数据集和wine_quality数据集

    一.实验目的 根据wine数据集处理的结果,采用2种不同的聚类算法分别建聚类模型:然后,通过定量指标评价所构建的模型的优劣. 二.实验内容   wine数据集和wine_quality数据集是两份和葡 ...

  3. 在Ubuntu20.04系统上LIO-SAM跑KITTI数据集和自己数据集代码修改

    LIO-SAM跑KITTI数据集和自己数据集代码修改 一.编译并运行LIO-SAM 二.代码修改 1.cloud_info.msg 2.imageProjection.cpp 三.KITTI数据集准备 ...

  4. Gowalla(美国微博)好友关系数据集和签到数据集

    数据内容:Gowalla(美国微博)好友关系数据集和签到数据集 (1)好友关系数据 好友关系数据集涵盖了196,591个用户的950,327条好友关系,每一条记录表示两两对应的朋友关系. (2)签到数 ...

  5. Python机器学习:多项式回归与模型泛化004为什么需要训练数据集和测试数据集

    泛化能力:由此及彼能力 遇见新的拟合能力差 数据 #数据 import numpy as np import matplotlib.pyplot as plt x = np.random.unifor ...

  6. 对鸢尾花数据集和月亮数据集,分别采用线性LDA、k-means和SVM算法进行二分类可视化分析

    一.支持向量机 支持向量机是一个功能强大并且全面的机器学习模型,它可以执行线性或者非线性分类,回归甚至异常检测任务.其主要分为三类:线性SVM分类.软间隔分类.非线性SVM分类. 本篇博客将重点深入S ...

  7. 人脸表情识别系统(VGG_16和Xception模型)配置GPU加速,Fer2013数据集和CK+数据集,tensorboard

    编译器 python3.8 开发平台 Pycharm PyQT5 系统界面 (可视化开发工具designer ) 模型训练基于深度学习tensorflow框架 opencv haar cascade ...

  8. NBT|45种单细胞轨迹推断方法比较,110个实际数据集和229个合成数据集

    摘要 轨迹推断(Trajectory Inference,TI),是分析从千上万单细胞的组学数据中推断细胞发育轨迹的重要方法,也被称为伪时序分析 (pseudotime analysis),该方法根据 ...

  9. 目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查

    目前缺少用于语义分割的 3D LiDAR 数据吗?关于三维点云数据集和方法的调查 原文 Are We Hungry for 3D LiDAR Data for Semantic Segmentatio ...

最新文章

  1. R语言ggplot2可视化分面图(facet_grid)、自定义设置分面图标签栏的背景色(默认背景色为灰色)
  2. 课程设计---约瑟夫环
  3. 【Linux网络编程】循环服务器之UDP循环模型
  4. LuoguP5897 [IOI2013]wombats
  5. (转)模拟鼠标/键盘
  6. 发那科程序全部输出_走,去看看发那科机器人全新的自动化解决方案!
  7. [译] 用 Swift 创建自定义的键盘
  8. iphone实用配置工具_除了让你买买买,苹果官网还隐藏着这些实用网页工具
  9. 软件工程毕设(六)·论文
  10. android无法解码avcmp4,android - Android中的MediaCodec编码的H.264 avc视频无法播放 - 堆栈内存溢出...
  11. 轻松学,听说你还没有搞懂 Dagger2
  12. python平方和psum_python求和函数sum()详解
  13. 编程入门之C语言入门
  14. 加法器php,全加器原理是什么
  15. 方维团购V3.07版本短信接口开发
  16. 需求分析——需求具备哪些特征
  17. 基于JAVA自行车在线租赁管理系统2021计算机毕业设计源码+系统+lw文档+部署
  18. SpringBoot基础学习之整合Swagger框架(下篇)
  19. C语言每日一练——第85天:三色球问题
  20. ESP8266 下 OTA 更新 Firmware 和FileSystem

热门文章

  1. javascript call用法及好处
  2. WebSocket接口测试方法
  3. MVC设计模式的总结
  4. 如何用PS制作一个小泡泡呢?
  5. CentOS 7中DHCP的介绍与搭建DHCP中继服务(理论+实践)
  6. 传统“寒热”病的背后 王溢嘉
  7. oslo_messaging使用及测试
  8. bimodal or multimodal data test and analysis in R
  9. 「趣小面」寻融资:前景美好,“钱”景难说
  10. 架构设计--软件工程