基于LSTM-CNN的人体活动识别

人体活动识别(HAR)是一种使用人工智能(AI)从智能手表等活动记录设备产生的原始数据中识别人类活动的方法。当人们执行某种动作时,人们佩戴的传感器(智能手表、手环、专用设备等)就会产生信号。这些收集信息的传感器包括加速度计、陀螺仪和磁力计。人类活动识别有各种各样的应用,从为病人和残疾人提供帮助到像游戏这样严重依赖于分析运动技能的领域。我们可以将这些人类活动识别技术大致分为两类:固定传感器和移动传感器。在本文中,我们使用移动传感器产生的原始数据来识别人类活动。

在本文中,我将使用LSTM (Long - term Memory)和CNN (Convolutional Neural Network)来识别下面的人类活动:

  • 下楼
  • 上楼
  • 跑步
  • 坐着
  • 站立
  • 步行

概述

你可能会考虑为什么我们要使用LSTM-CNN模型而不是基本的机器学习方法?

机器学习方法在很大程度上依赖于启发式手动特征提取人类活动识别任务,而我们这里需要做的是端到端的学习,简化了启发式手动提取特征的操作。

我将要使用的模型是一个深神经网络,该网络是LSTM和CNN的组合形成的,并且具有提取活动特征和仅使用模型参数进行分类的能力。

这里我们使用WISDM数据集,总计1.098.209样本。通过我们的训练,模型的F1得分为0.96,在测试集上,F1得分为0.89。

导入库

首先,我们将导入我们将需要的所有必要库。

  1. from pandas import read_csv, unique
  2. import numpy as np
  3. from scipy.interpolate import interp1d
  4. from scipy.stats import mode
  5. from sklearn.preprocessing import LabelEncoder
  6. from sklearn.metrics import classification_report, confusion_matrix, ConfusionMatrixDisplay
  7. from tensorflow import stack
  8. from tensorflow.keras.utils import to_categorical
  9. from keras.models import Sequential
  10. from keras.layers import Dense, GlobalAveragePooling1D, BatchNormalization, MaxPool1D, Reshape, Activation
  11. from keras.layers import Conv1D, LSTM
  12. from keras.callbacks import ModelCheckpoint, EarlyStopping
  13. import matplotlib.pyplot as plt
  14. %matplotlib inline
  15. import warnings
  16. warnings.filterwarnings("ignore")

我们将使用Sklearn,Tensorflow,Keras,Scipy和Numpy来构建模型和进行数据预处理。使用PANDAS 进行数据加载,使用matplotlib进行数据可视化。

完整文章:

https://avoid.overfit.cn/post/a6438a08d1d84923933b0a811d8edc11

posted @ 2022-07-12 11:32  deephub  阅读(145)  评论(0编辑  收藏  举报