Я хочу построить модель LSTM Autoencoder для поведения клиентов и обнаружения аномалий. Набор данных активности выглядит так:
customer_id features
C1 [[1,2,1,0,1],[2,2,1,1,0],[1,2,3,1,1],[0,3,2,1,1]]
C2 [[2,1,1,4,1],[3,2,1,1,4],[2,2,3,1,2]]
..............................................
Cn [[2,3,1,4,1],[2,1,1,1,0],[4,2,2,1,2],[3,3,2,1,1], [2,3,2,1,2], [1,3,2,2,1]]
Здесь количество функций для всех образцов одинаковое, т.е. 5. Однако нет. Образцы разные для разных клиентов. Есть N клиентов.
В таком случае, как разделить данные обучения и тестирования и как изменить форму входных данных для модели LSTM?
На данный момент
- Я рассматриваю, например, 80% образцов от каждого клиента данные как обучение, а остальные как тестирование.
- Попытка изменить форму ввода как: (no_of_customers, timesteps, no_of_features) = (n, #no_of_samples, 5). Этот массив не поддерживается, поскольку у нас не может быть массива numpy с разными временными шагами.