如何在python中准备多级多值训练数据集

时间:2019-05-22 09:23:13

标签: python-2.7 machine-learning activity-recognition

我是机器学习的初学者。我的学术项目涉及从加速度和陀螺仪数据检测人体姿势。我一直陷于起步阶段。我的加速度计数据具有x,y,z值,陀螺仪也具有存储在文件acc.csv和gyro.csv中的x,y,z值。我想对“站立”,“坐着”,“行走”和“躺着”的位置进行分类。这个想法是使用某种ML算法(有监督)训练机器,然后抛出一个新的acc +陀螺仪数据集,以识别该新数据集的预测结果(受试者目前正在做什么)。我面临以下问题-

  1. 构建训练数据集-我认为我的活动将是因变量,并且acc和陀螺仪轴读数将是独立的。因此,如果我想将其合并到单个矩阵中,矩阵的每个元素又具有其自己的acc和陀螺仪值集[类似于主矩阵和子矩阵],该怎么办?还是有其他替代方法可以做到这一点?
  2. 如何在一个训练矩阵中获取多个读数的多个活动的数据, 我的意思是每个都有自己的acc(xyz)和陀螺(xyz)的10个步行数据+每个都有自己的acc(xyz)和陀螺(xyz)的10个站立数据+每个都有自己的acc(xyz)和陀螺的10个就座数据( xyz)等等。
  3. 每个数据文件都有不同数量的记录和时间戳,以及如何将它们带到一个通用平台中。 我知道我要问的是非常基本的问题,但这是没人清楚地向我解释的混乱部分。我感觉自己就像是站在一扇大封闭的门前,里面发生了非常有趣的事情,这些事情使我目前无法以有限的知识参与其中。我的数学背景只有高中水平。请帮忙。

我在Github中进行了一些有关活动识别的项目。但是对于像我这样的初学者来说,它们太复杂了。

import pandas as pd
import os
import warnings 
from sklearn.utils import shuffle
warnings.filterwarnings('ignore')
os.listdir('../input/testtraindata/')

base_train_dir = '../input/testtraindata/Train_Set/'
#Train Data
train_data = pd.DataFrame(columns = ['activity','ax','ay','az','gx','gy','gz'])
train_folders = os.listdir(base_train_dir)

for tf in train_folders:
    files = os.listdir(base_train_dir+tf)
    for f in files:
        df = pd.read_csv(base_train_dir+tf+'/'+f)
        train_data = pd.concat([train_data,df],axis = 0)
train_data = shuffle(train_data)
train_data.reset_index(drop = True,inplace = True)
train_data.head()

The Data Set

Problem in Train_set

令人惊讶的是,如果我从

中删除了最后一个'gz'
train_data = pd.DataFrame(columns =['activity','ax','ay','az','gx','gy','gz'])

一切正常。

1 个答案:

答案 0 :(得分:1)

您已将数据标记为? -> x,y,z ...的位置=位置?

我不知道这些值(因为我没有看到数据集,也不知道位置,acc或陀螺仪),但是我想您应该有一个以x,y,z为类别的成熟数据集和目标类别“位置”。

如果您需要全部6个(一个csv中的3个,另一个csv中的3个)来定义位置,则可以设置6个类别+位置。

x_1,y_1,z_1,x_2,y_2和z_2之类的东西+位置标签(“位置”类别)。

您还可以使每个职位成为自己的类别,并且将0/1设为true / false。 “ sitting”,“ walking”等...,并且列中的值为0和1。

该职位的时间戳是否重要?如果它不是重要功能,我将其删除。如果以某种方式很重要,则可能要对它们进行装箱。

这是Medium的初学者指南,在其中您可以看到一些如何预处理数据的信息。它还显示了一种热编码:)

https://medium.com/hugo-ferreiras-blog/dealing-with-categorical-features-in-machine-learning-1bb70f07262d

还可以尝试使用Google搜索对数据进行预处理,然后可能会找到正确的配方