Нормализация данных

279
24 июля 2021, 09:20

Задача состоит в нормализации(0-1) стакана приказов в биржевой торговле.

В стакане я могу видеть только 25 наилучших ценовых предложений, т.е. 25 приказов вида ASK и 25 приказов вида BID. Если я правильно понимаю то для нормализации нужно максимальное число в стакане(это будет 1), а минимальное(это будет 0), остальные числа это разброс между макс и мин значениями. Таким образом получается, что 1 всегда будет первый приказ в списке ASK, а 0 последний приказ в списке BID.

Подскажите, пожалуйста, как можно нормализовать быстро меняющиеся данные такого рода? Нужно ли создавать отдельную БД для нормализации? И если да, то как?(Приказы быстро отменяются/появляются и непонятно какие данные надо записывать)

Answer 1

Описанная вами нормализация называется Min-Max Scaling и вычисляется по формуле:

z[i] = (x[i] - min(x)) / (max(x) - min(x))

Соответственно самым быстрым способом скалирования быстроизменяющихся данных будет хранение трёх дополнительных значений (переменных):

  • min_value
  • max_value
  • diff_max_min (max - min)

Расчёт скалированного значения:

z[i] = (x[i] - min_value) / diff_max_min

Далее по мере поступления новых значений обновлять эти три переменные при необходимости (если новое значение больше текущего максимума или меньше текущего минимума).

PS Другие способы нормализации данных

READ ALSO
Отсутствуют права на запись

Отсутствуют права на запись

Использую laravel+nginxДопустим утром сделал chown -R 777 www-data /var/www/site

139
Как с помощью custom validator сделать проверку двух полей, password и confirmPassword?

Как с помощью custom validator сделать проверку двух полей, password и confirmPassword?

аргумент $value принимает значение только первого свойстваКак правильно применить это ко второму свойству?

177
не работает $ с jquery

не работает $ с jquery

подключаю jquery на wordpress таким образом

305