Я хочу сохранить средние значения некоторых данных, которые иногда генерируются пользователями, которые затем я использую в своем приложении для прогнозирования будущих данных. Теперь проблема заключается в том, что эти данные могут сильно измениться в течение дня - так, например, пользователи, приходящие в ночное время, могут генерировать гораздо более низкие значения, чем пользователи, входящие в течение утра, поэтому простое сохранение простого среднего не даст мне разумного точность прогнозирования.Как лучше всего поддерживать базу данных со средними значениями времени?
Некоторое мне нужно сохранить какое-то среднее по времени - например, наивное решение должно состоять в том, чтобы хранить среднее значение для каждого часа дня - поэтому я сохраняю 24 средних значения, один для всех пользователей, которые генерируют данные между 12AM и 1AM, второй для всех пользователей, которые генерируют данные между 1AM и 2AM и т. Д.
У меня есть только несколько проблем с этим подходом: 1. правильно предсказать данные. Мне все равно нужно проконсультироваться с несколькими значениями (скажем, через 2 часа и 2 часа назад), которые я не могу у вас есть ресурсы. Я скорее проконсультируюсь с одним значением, если это не слишком сильно повлияет на мою точность. 2. Я также хочу, чтобы эти данные запоминались только в последнее время - если очень низкие значения, сгенерированные пару лет назад, но с прошлого месяца все генерируют высокие значения, то для прогнозирования данных на ближайшее будущее мне нужно быть в состоянии ответить лучше, чем то, что среднее из всех когда-либо созданных данных может дать мне. Ради аргументации можно сказать, что все более старые, чем 90 дней, не очень актуальны. 3. Причина, по которой я хочу использовать среднее значение, а не просто хранить все данные, когда-либо создаваемые пользователями, - это то, что я ожидаю много данных - мне нужно хранить такие данные для каждой из 100 000, для миллионов еженедельных записей данных от пользователей - как минимум. Я также могу захотеть разделить данные еще дальше для каждой точки данных - возможно, на основе некоторой классификации пользователей.
Я был бы признателен, если кто-нибудь может дать мне несколько советов о том, как лучше рассчитать свои средние данные без необходимого огромного хранилища данных :-)
[намек - да, его для применения ГИС]
hmm. взвешенным средним по критериям. Если я правильно понимаю, это все равно означает, что мне нужно сохранить все исторические значения, если я хочу пересчитать, чтобы принимать во внимание новые данные, не так ли? – Guss
Я предполагал, что точки данных будут сохранены, да; вы можете реализовать некоторую политику, в которой данные, устаревшие, чем X, будут удалены, заархивированы или перемещены иным образом, если вы не хотите этого в системе, или ваша функция взвешивания устанавливает весы для значений старше X равными нулю, и они больше не способствуют. – Mikeb
Ну, моя главная забота - это размер данных, которые мне нужно сохранить из-за большого пула выборки. Я бы предпочел не сохранять каждый набор данных, но это все еще хорошая идея, спасибо. – Guss