在您的情况下,您的数据由一组实例组成,每个实例都具有许多功能(姿势槽,如PoseSlot1,PoseSlot2,...,PoseSlotN)和类值(挥手,跑步或行走)。
你的问题是所有类的功能数量并不相同,例如,跑步时有7个姿势,而步行则有3个姿势。
处理这类问题的标准方法是用a标记这些空槽 的 缺失价值 强> ,假设您的机器学习算法可以处理缺失值。
f1 f2 f3 f4 f5 f6 f7 class ------------------------------------------------- pose1,pose2,pose4,pose7,pose2,pose4,pose7,running pose3,pose1,pose4, ?, ?, ?, ?,walking
现在,您使用的第一种方法是追加 pose0 是使用的简化 ? 缺失值(类似于添加新的姿势来表示缺失值,而不是显式 ? 值)
pose0
?
另一种重复值的方法实际上产生了一个问题,而不是解决问题,如果你考虑它...你实际上创建相关的功能,并且如你所知,大多数机器学习算法最适合一组独立的功能(通常由执行特征选择作为预处理步骤)
我不认为从你的第一种方法获得更好的表现是不合理的。我认为你的意思是更好的分类表现。我推测的原因是手动序列通常较短。因此,当您填写“无效”姿势时,您可以通过它们是否包含无效姿势而不是它们包含的实际姿势来更容易区分不同的动作。