USC-HAD数据集介绍及仿真实验

本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!

USC-HAD数据集介绍

USC-HAD 中定义了 12 种不同的行为。数据集共包含 14 个人的行为数据,每个人每种行为进行 5 次试验,每次试验时长约 24 秒,试验中搜集安置在测试人腰间的一种叫 MotionNode 仪器的三轴加速度计与三轴陀螺仪读数,传感器采样频率 100Hz。

12项基本活动:

活动 描述 向前走 被试者沿着一条直线向前走 向左走 受试者沿着逆时针方向走了一圈 向右走 受试者按顺时针方向走了一圈 上楼 被试者多次向上走楼梯 下楼 被试者多次向下走楼梯 向前跑 受试者以一条直线向前跑 跳过 受试者保持在相同的位置,并不断地上下跳跃 坐 受试者坐在椅子上工作或休息。坐立不安也被认为属于这个类。 站 被试者站在那里,和某人说话 睡 被试者睡觉或躺在床上 上电梯 受试者乘坐一部上行电梯 下电梯 被试者乘坐一个下降的电梯

活动 描述
向前走 被试者沿着一条直线向前走
向左走 受试者沿着逆时针方向走了一圈
向右走 受试者按顺时针方向走了一圈
上楼 被试者多次向上走楼梯
下楼 被试者多次向下走楼梯
向前跑 受试者以一条直线向前跑
跳过 受试者保持在相同的位置,并不断地上下跳跃
受试者坐在椅子上工作或休息。坐立不安也被认为属于这个类。
被试者站在那里,和某人说话
被试者睡觉或躺在床上
上电梯 受试者乘坐一部上行电梯
下电梯 被试者乘坐一个下降的电梯

USC-HAD 数据集处理

USC-HAD 数据集是一个包含多种活动和多个受试者数据的集合,广泛用于人类活动识别(HAR)研究。以下是对 USC-HAD 数据集处理流程的详细分析,包括数据预处理、数据集分割、标准化处理以及数据保存等关键步骤。

1.环境设置

首先,需要导入处理数据所需的库和模块:

python 复制代码
import scipy.io as scio
import os
import numpy as np
import sys
from utils import *

2.参数配置

定义 USC 函数,该函数接受多种参数以配置数据集的处理方式:

python 复制代码
def USC(dataset_dir='./USC-HAD', WINDOW_SIZE=100, OVERLAP_RATE=0.1, SPLIT_RATE=(8, 2), VALIDATION_SUBJECTS={}, Z_SCORE=True, SAVE_PATH=os.path.abspath('../../HAR-datasets')):
    # 参数说明...

3.数据加载与预处理

受试者数据加载

遍历数据集中的每个受试者文件夹,加载每个 .mat 文件中的数据:

python 复制代码
subject_list = os.listdir(dataset_dir)
for subject in subject_list:
    if not os.path.isdir(subject):
        continue
    # 受试者数据处理...

滑窗处理

对每个受试者的数据进行滑窗处理,以 WINDOW_SIZEOVERLAP_RATE 作为参数:

python 复制代码
for mat in mat_list:
    content = scio.loadmat(mat)['sensor_readings']
    cur_data = sliding_window(content, WINDOW_SIZE, OVERLAP_RATE)

数据分割

根据 VALIDATION_SUBJECTS 的设置,选择留一法或平均法来分割训练集和验证集:

  • 留一法 :如果受试者编号在 VALIDATION_SUBJECTS 中,则该受试者的数据作为验证集,否则作为训练集。
python 复制代码
if VALIDATION_SUBJECTS:
    if subject_id not in VALIDATION_SUBJECTS:
        # 训练集数据添加
    else:
        # 验证集数据添加
  • 平均法 :根据 SPLIT_RATE 计算训练集和验证集的长度,然后进行分割。
python 复制代码
else:
    trainlen = int(len(cur_data) * SPLIT_RATE[0] / sum(SPLIT_RATE))
    xtrain += cur_data[:trainlen]
    xtest += cur_data[trainlen:]

数据标准化

如果设置了 Z_SCORETrue,则对训练集和验证集的数据进行 Z-score 标准化处理:

python 复制代码
if Z_SCORE:
    xtrain, xtest = z_score_standard(xtrain=xtrain, xtest=xtest)

4.数据保存

将预处理后的数据保存到 SAVE_PATH 指定的目录中:

python 复制代码
if SAVE_PATH:
    save_npy_data(
        dataset_name='USC_HAD',
        root_dir=SAVE_PATH,
        xtrain=xtrain,
        xtest=xtest,
        ytrain=ytrain,
        ytest=ytest
    )

5.结果输出

打印出训练集和验证集的数据形状,以验证数据处理的正确性:

python 复制代码
print('xtrain shape:', xtrain.shape, 'xtest shape:', xtest.shape, 'ytrain shape:', ytrain.shape, 'ytest shape:', ytest.shape)

通过对 USC-HAD 数据集的详细处理,我们完成了从数据下载到预处理、数据集分割、标准化处理以及数据保存的整个流程。这为后续的机器学习模型训练和评估提供了结构化和标准化的数据。

USC-HAD数据集训练

USC-HAD数据集--CNN网络

网络结构

结果展示

USC-HAD数据集--ResNet网络

网络结构

结果展示

USC-HAD数据集--LSTM网络

网络结构

结果展示

USC-HAD数据集--shufflenet网络

网络结构

结果展示

USC-HAD数据集仿真指标统计表

模型名称 准确率(Accuracy) 精确率(Precision) 召回率(Recall) F1分数(F1-score) 参数量(Parameters) 推理时间(Inference Time) 其他指标 备注
CNN 0.8625 0.8611 0.8625 0.8618 556044 2.4667
Resnet 0.8765 0.8739 0.8765 0.8752 1426252 4.5797
LSTM 0.8821 0.8833 0.8821 0.8827 3172364 3.0517
Shufflenet 0.8594 0.8582 0.8594 0.8588 213648 3.0598

注意 :具体的代码实现和模型细节可以联系作者获取,以便进一步的研究和应用。本文首发于稀土掘金,未经允许禁止转发和二次创作,侵权必究。

相关推荐
2301_7803567018 小时前
广州市十二医院黄埔院区区引入全视通智慧病房,提升医护效率
人工智能·健康医疗·医护对讲厂家
承渊政道18 小时前
【贪心算法】(经典实战应用解析(一):柠檬水找零、将数组和减半的最少操作次数、最大数、摆动序列)
数据结构·c++·学习·算法·leetcode·贪心算法·排序算法
玫幽倩18 小时前
2026盘古石取证初赛(APK取证)
python·电子取证·hook·wp·apk取证·盘古石·盘古石取证
有味道的男人18 小时前
AI 大数据赋能电商,选品上架一键通全
大数据·人工智能
前端技术18 小时前
Spring AI Alibaba基础应用之提示词(Prompt)的基础理解及使用
人工智能·spring·prompt
图导物联18 小时前
园区智慧导览系统定制方案(一),可直接落地技术方案(定制化需求拆解与技术架构设计)
人工智能·园区智慧导览系统
初心未改HD18 小时前
机器学习之支持向量机SVM详解
算法·机器学习·支持向量机
天下财经热18 小时前
工业搬运机器人和AMR领域哪些品牌更值得关注?2026年工业物流自动化选型指南
人工智能·机器人·自动化
杨超越luckly18 小时前
Python应用指南:百度热搜数据
python·百度·html·数据可视化
qq_4112624218 小时前
四博 AI 智能音箱方案升级:ESP32-S3/C3 + HFP 耳机 + A2DP 外置音箱 + 开源二次开发
人工智能·开源·智能音箱