Я не могу точно сказать о характере данных, поскольку они являются собственностью, но предположим, что у нас есть такие данные: каждый месяц некоторые люди подписываются на услугу. Затем в каждом последующем месяце эти люди могут обновить услугу, прекратить обслуживание или получить отказ в обслуживании (например, из-за неуплаты). Для самой ранней когорты в наших данных у нас есть данные за 2 года (24 месяца).
Число людей, присоединяющихся каждый месяц, велико (в диапазоне 100 000), а число людей, выполняющих любую из трех вещей, исчисляется тысячами. Однако мы используем не данные отдельного уровня (которые будут состоять из миллионов строк), а данные, агрегированные по месяцам и группам (какая доля каждой группы выполняет каждую вещь каждый месяц).
Мы моделировали существующие данные с использованием многомерных адаптивных сплайнов регрессии (MARS) и нашли некоторые интересные результаты. Тем не менее, я беспокоюсь об их использовании для экстраполяции или прогнозирования в будущем. Мои опасения связаны с тем, что прогнозы на будущее обязательно находятся за пределами выборочного пространства (с точки зрения времени), и сплайны могут стать нестабильными для экстраполяции.
Это законный метод? Какие проблемы существуют и могут ли они быть решены?
источник
Ответы:
Исходя из моей интерпретации вопроса, основной вопрос, который вы задаете, заключается в том, можете ли вы смоделировать время как сплайн.
Теперь вернемся к временным рядам. Временные ряды - это особый случай в машинном обучении. Они имеют тенденцию иметь небольшую структуру, будь то частичное отклонение или один из множества различных типов подструктур, и эту структуру можно использовать. Но нужны специальные алгоритмы, которые могут использовать эту структуру, к сожалению, сплайны этого не делают.
Есть пара вещей, которые я бы порекомендовал вам попробовать. Первым будут рекуррентные сети. Если ваши временные ряды не такие длинные (и не имеют долгосрочных зависимостей), вы сможете использовать обычную ванильную рекуррентную сеть. Если вы хотите быть в состоянии понять, что происходит, вы можете использовать выпрямленную линейную единицу с уклонами в качестве функции активации, и это будет эквивалентно выполнению моделирования MARS на подмножестве временных рядов и «памяти», которую представляет рекуррентная нейронная сеть. держит. Было бы трудно интерпретировать, как сеть управляет памятью, но вы должны получить некоторое представление о том, как обрабатывается подпространство относительно сгенерированной кусочно-линейной функции. Также, если у вас есть статические функции, которые не относятся к временным рядам, их относительно легко использовать в сети.
Если у вас есть очень длинные временные ряды и могут иметь долгосрочные зависимости, я рекомендую использовать одну из закрытых рекуррентных сетей, например, GRU или LSTM.
На более классической стороне классификации временных рядов вы можете использовать скрытые марковские модели. Я не буду вдаваться в подробности, потому что я не настолько знаком с ними.
В заключение я бы не рекомендовал использовать сплайны по двум причинам. Во-первых, он не может справиться со сложными проблемами экстраполяции, что, по-видимому, и является проблемой, которую вы описываете. И во-вторых, сплайны не используют подструктуры временных рядов, которые могут быть очень мощными при классификации временных рядов.
Надеюсь это поможет.
источник