Обсуждение статьи "Теория категорий в MQL5 (Часть 21): Естественные преобразования с помощью LDA"

 

Опубликована статья Теория категорий в MQL5 (Часть 21): Естественные преобразования с помощью LDA:

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

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

Итак, задача. Стартап создает базу данных для своих клиентов, чтобы отслеживать их покупки с течением времени, и изначально она состоит, скажем, из трех столбцов. Первичный ключ, название продукта и уплаченная сумма. Со временем компания замечает частые повторения в столбце продукта, что означает, что конкретный продукт часто покупают. Принимается решение начать регистрировать больше информации, связанной с продуктами, чтобы лучше различать предпочтения клиентов и, возможно, изучить возможность разработки новых продуктов. Для этого столбец продукта разделен на 3 столбца, а именно: версия, режим подписки и название сборки. Или компании может потребоваться больше цвета в информации о платеже, и она решит разделить столбец платежа на три части, например, для режима оплаты, валюты (или языкового стандарта) и суммы платежа. Опять же, такое разделение не будет исчерпывающим, поскольку на будущем этапе может потребоваться больше данных в зависимости от покупок клиентов и их предпочтений.

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

Давайте попробуем сначала рассмотреть задачу в виде двух категорий. В категории домена у нас будет список таблиц компании в ее базе данных, а в категории кодомена у нас будут две версии таблиц с информацией о клиентах. Для простоты, если мы возьмем список как один объект в домене, а каждую из наших таблиц как отдельные объекты в кодомене, то два функтора из списка, по одному на каждую таблицу, действительно подразумевают естественное преобразование между двумя таблицами. Таким образом, один функтор будет сопоставляться со старыми таблицами, которые в нашем случае представляют собой простую таблицу с тремя столбцами, а второй функтор будет сопоставляться с изменениями в структуре таблицы. Если это версия 1, то второй функтор отображается в таблицу из 5 столбцов.

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

Автор: Stephen Njuki

Причина обращения: