Значительные выгоды иногда достигаются простейшими методами.

В первой из серии коротких статей я хотел бы изложить ключевую идею относительно входных данных: разделение наших обучающих функций и извлечение более фундаментальных функций, которые их составляют, позволяет нам существенно улучшить прогностическое качество наших моделей.

Чтобы проиллюстрировать нашу точку зрения, предположим, что мы пытаемся сгенерировать прогноз будущих значений произвольного временного ряда. Для простоты мы будем использовать линейную модель для предоставления прогнозов. Эта концепция остается в силе и для более сложных моделей.

Создание прогнозов на основе линейных моделей может быть выполнено путем обработки обучающих данных временных рядов как набора векторов в пространстве признаков. Если мы рассматриваем скалярные значения каждого вектора как функцию времени, мы можем подобрать регрессионную модель для прогнозирования значения этого вектора признаков в любое время в будущем путем экстраполяции вдоль линии регрессии. Будущие значения каждой функции затем могут быть учтены для прогнозирования целевой переменной (т. е. цели прогноза) с использованием второй модели регрессии, на этот раз путем интерполяции значений вдоль линии регрессии.

Например, мы можем предсказать ежемесячный доход продуктового магазина, используя количество проданных фруктов в качестве обучающих данных. Мы можем дополнить обучающие данные (данные с задержкой, нелинейные преобразования…), но все они связаны с одной функцией: сколько фруктов мы продали. При обучении второй модели регрессии мы сходимся к уравнению, представляющему доход как функцию проданных фруктов:

А вот и понимание — продажи фруктов можно разбить на более мелкие части. Если наш магазин продает, например, апельсины и дыни - наши общие продажи фруктов будут равны количеству проданных апельсинов плюс количество проданных дынь.

Даже простое разложение по типу фруктов покажет разные сезонные закономерности. Пик продаж апельсинов приходится на зиму, а дынь – на лето. Но обработка данных о продажах апельсинов и дынь как одной функции вынуждает модель присваивать им одинаковый вес:

Разложение наших продаж фруктов позволяет модели присваивать каждому признаку разный вес, тем самым повышая качество прогноза:

Проверяя это на примере набора данных, который я использую в своей работе (маркетинговые данные B2B — прогнозирование новых клиентов по количеству взаимодействий с отделом продаж), мы можем сравнить прогноз по общему количеству взаимодействий с прогнозом, который разбивает их по количеству взаимодействий. канал, через который происходило каждое взаимодействие (например, LinkedIn, прямые звонки…)

Результаты показывают улучшение качества прогнозирования на 40 % (измеряемое с использованием средней масштабированной ошибки) просто за счет разложения наших данных. Аккуратный!

Спасибо за прочтение и ждите следующих статей из этой серии :)