В некоторых случаях да. А вот как.

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

вступление

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

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

Статистический подход включает 3 этапа:

  1. Линейная регрессия и составление новой цели путем деления дохода на коррелированные характеристики.
  2. Из функций, которые не соотносятся с новой целью, мы выбираем наиболее полезные, исходя из получаемой ими информации.
  3. Прогнозирование новой цели с помощью байесовского анализа на основе значений выбранных функций. И расчет прогноза доходов с использованием ранее рассчитанных коэффициентов линейной регрессии.

А теперь давайте углубимся.

1. Линейная регрессия

Прежде всего, нам нужно выяснить, какие функции коррелируют с целью, таким образом, подходят для линейной регрессии. Как и ожидалось, их довольно мало. По сути, у меня получилось только одно - время работы магазина, но у него коэффициент корреляции 0,7.

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

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

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

2. Сложные зависимости, дифференциальная энтропия.

Теперь самое интересное. У нас есть набор независимых функций, которые не соотносятся ни с целью, ни друг с другом.

Если объект не коррелирует с целью, это не обязательно означает, что он не содержит информации о нем. Позвольте мне проиллюстрировать это следующим примером:

Создадим набор данных:

Вот как это выглядит

Индекс корреляции здесь -0,18, что означает практически отсутствие зависимости, но очевидно, что функция очень информативна.

Существует мера неопределенности случайной величины, называемая энтропией. Для непрерывной переменной его можно рассчитать как:

Где ρ (x) - функция плотности вероятности

Чтобы выбрать наиболее информативные функции, мы можем просто отсортировать их по количеству получаемой информации.

Где
Y - признак
Nᵢ - количество записей в наборе данных со значением признака Y = yᵢ

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

На данный момент может быть непонятно, почему бы просто не использовать стандартное отклонение? Действительно, на картинке выше стандартное отклонение каждого подмножества в 5 раз меньше стандартного отклонения всего набора данных, и это будет работать так же хорошо.

Но давайте рассмотрим следующий пример:

На картинке выше вы можете видеть два распределения: одно - широкое распределение Гаусса, другое - два узких пика. Стандартное отклонение первого распределения составляет 0,5, а отклонение другого - 3. Но давайте посчитаем энтропии, мы получим 1,04 и -0,27 (да, энтропия может быть отрицательной). Второе распределение предоставляет гораздо больше информации о переменной, несмотря на большее стандартное отклонение.

3. Введение в байесовский анализ, частичные распределения → вероятность

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

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

α - нормирующая постоянная

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

Чтобы этот трюк сработал, нам нужно превратить непрерывную функцию в категориальную. Я использовал pd.qcut () для сортировки всех непрерывных функций по 8 октилям. Обычное линейное разбиение не подходит для этой цели, потому что большинство функций распределены неравномерно. Это означает, что в то время как 2–3 корзины будут содержать почти все магазины, в других будет мало, и будет сложно оценить частичное распределение доходов для таких корзин.

В качестве предварительного распределения разумно использовать общее распределение доходов в наборе данных.

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

Чтобы получить прогноз для начальной цели, нам нужно умножить прогнозы, полученные на время работы магазина из шага 1.

Прогнозирование и анализ результатов

На картинке ниже вы можете увидеть диаграмму рассеяния прогнозов против фактов. И прогнозы, и фактические доходы выражаются в условных единицах ради конфиденциальности.

Достигнуты следующие показатели производительности:

MAPE - 23,1
MdAPE - 20,0

Количество магазинов с ошибками:
ошибка ‹10% - 14
ошибка‹ 20% - 29
ошибка ‹30% - 43
ошибка› 50% - 5

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

MAPE - 22,5
MdAPE - 19,2

Количество магазинов с ошибками:
ошибка ‹10% - ошибка 17
‹ 20% - ошибка 30
‹30% - 43 ошибка› 50% - 5

Как видно из распределения ошибок, ML лучше работает с небольшими ошибками. Модель ML предсказывала выручку с ошибкой

Напомним, что модели машинного обучения обеспечивают лучшую точность. Но этот эксперимент показал, что за цену 0,6 MAPE можно получить распределение вероятностей вместе с более прозрачным алгоритмом получения этого результата, что в некоторых случаях имеет решающее значение для конечного пользователя.

Спасибо за прочтение!