В вашем случае ваши данные состоят из набора экземпляров, каждый из которых имеет ряд функций (представляет собой слот, как в PoseSlot1, PoseSlot2, ..., PoseSlotN) и значение класса (размахивание рукой, бег или ходьба ).
Ваша проблема в том, что количество функций не одинаково для всех классов, т.е. бег имеет 7 поз, в то время как ходьба имеет, например, 3 позы.
Стандартный способ решения этой проблемы - пометить эти пустые слоты пропущенным значением , предполагая, что ваш алгоритм машинного обучения может обрабатывать пропущенные значения.
f1 f2 f3 f4 f5 f6 f7 class
-------------------------------------------------
pose1,pose2,pose4,pose7,pose2,pose4,pose7,running
pose3,pose1,pose4, ?, ?, ?, ?,walking
Теперь первый метод добавления pose0
, который вы использовали, - это упрощение использования ?
для пропущенного значения (аналогично добавлению новой позы для обозначения пропущенного значения вместо явного значения ?
)
Другой способ повторения значений на самом деле создает проблему, а не решает ее, если вы об этом думаете ... вы фактически создаете взаимосвязанные функции, и, как вы знаете, большинство алгоритмов машинного обучения лучше всего работают с независимым набором функций ( обычно решается выполнением выбора функции в качестве шага предварительной обработки)