【时间序列篇】基于LSTM的序列分类-Pytorch实现 part2 自有数据集构建

系列文章目录

【时间序列篇】基于LSTM的序列分类-Pytorch实现 part1 案例复现
【时间序列篇】基于LSTM的序列分类-Pytorch实现 part2 自有数据集构建
【时间序列篇】基于LSTM的序列分类-Pytorch实现 part3 化为己用

在一个人体姿态估计的任务中,需要用深度学习模型来进行序列分类。
时间花费最多的是在数据集的处理上。
这一节主要内容就是对数据集的处理。


前言

类似于part1的工作,这部分对数据集进行了分析处理


一、任务问题和数据采集

1 任务问题

人体姿态估计:
在人体左右腿放置加速度传感器,分别采集横滚角和俯仰角。传感器生成高频数据,对不同状态下采集的数据进行分类,可以识别人体姿态。

2 原始数据采集

采集6类动作姿态,每种动作记录10次过程量。
蹲姿到站立(右蹲) ------ 1
蹲姿到站立(左蹲)----- 2
行进 ----------------------- 3
原地踏步 ----------------- 4
站立到蹲姿(右蹲) ------ 5
站立到蹲姿(左蹲) ------ 6

data_merge 文件夹下存放采集到的原始数据。
data_merge_1.xlsx
data_merge_2.xlsx
data_merge_3.xlsx
data_merge_4.xlsx
data_merge_5.xlsx
data_merge_6.xlsx
每一个 xlsx 文件对应一类动作姿态,保存有10组实验数据。

以 data_merge_1.xlsx 文件内容为例:
在这里插入图片描述

二、数据处理和生成样本

1 data_merge2single.py

将每类动作姿态的data_merge_x.xlsx文件分解,每一组实验单独保存在一个文件中。

"""
@file name:data_merge2single.py
@desc: 得到每次实验的单独数据
"""
import os
import pandas as pd

'''
/****************************************************/
    路径指定
/****************************************************/
'''
# ----------------------------------------------------#
#           数据路径
# ----------------------------------------------------#
ROOT_path = "DATA/RT_Position_dataset"
merge_path = os.path.join(ROOT_path, "data_merge")
path_list = os.listdir(merge_path)
# print(path_list)
# ['data_merge_1.xlsx', 'data_merge_2.xlsx', 'data_merge_3.xlsx', 'data_merge_4.xlsx', 'data_merge_5.xlsx', 'data_merge_6.xlsx', '~$data_merge_1.xlsx']

single_path = os.path.join(ROOT_path, "data_single_test")
if not os.path.exists(single_path):
    os.mkdir(single_path)

# ----------------------------------------------------#
#           对每个文件进行读取
# ----------------------------------------------------#
for i in range(0, len(path_list)):  # 遍历 data_merge_x.xlsx 文件
    file_path = os.path.join(merge_path, path_list[i])
    save_path = os.path.join(single_path, str(i + 1))
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    print("----------------------------------------------------")
    print(file_path)
    # 使用pandas读取Excel文件
    df = pd.read_excel(file_path)
    # 计算总列数
    total_columns = df.shape[1]
    index = 0
    # 每四列分割并保存(在实验中,分别采集左右腿的俯仰角和横滚角,特征数目为4)
    for start_col in range(0, total_columns, 4):
        index += 1
        # 确定每个文件的列范围
        end_col = min(start_col + 4, total_columns)
        # 提取四列数据
        sub_df = df.iloc[:, start_col:end_col]
        # 保存到新的xlsx文件
        sub_df.to_csv(f'{
     
     save_path}/{
     
     str(i + 1)}_{
     
     index}.csv', index=False)

data_singe_test 文件夹下存放每组实验的单独数据。
在这里插入图片描述

2 data_plot.py

分析每个类别下的每一组实验,不是所有数据都有用,得到有效数据区间

"""
@file name:data_plot.py
@desc: 绘制每组实验的数据图,分析有效数据区间
"""
import pandas as pd
import matplotlib.pyplot as plt

# ----------------------------------------------------#
#           数据路径
# ----------------------------------------------------#
file_path = "DATA/RT_Position_dataset/data_single_test/2/2_5.csv"

df = pd.read_csv(file_path, header=2)  # 使用pandas读取Excel文件
# 跳过前两行数据
# df = df.iloc[2:]

# 绘制波形图
plt.figure(figsize=(12, 8))

for i, column in 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值