Эффективное обнаружение и замена выбросов в данных временных рядов GridDBPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Эффективное обнаружение и замена выбросов в данных временных рядов GridDB

Сообщение Anonymous »

Я анализирую данные временных рядов, хранящиеся в GridDB. Мой набор данных имеет нерегулярные интервалы и некоторые точки данных, которые могут быть выбросами. Мне нужен способ идентифицировать и заменить эти выбросы интерполированными значениями во время извлечения данных.
Текущая настройка
Я использую контейнер TimeSeries в GridDB с эта схема:
  • метка времени (TIMESTAMP)
  • значение > (ДВОЙНОЙ)
Вот пример того, как я заполняю контейнер:

Код: Выделить всё

import griddb_python as griddb

factory = griddb.StoreFactory.get_instance()
gridstore = factory.get_store(
notification_member="127.0.0.1:10001",
cluster_name="defaultCluster",
username="admin",
password="admin"
)

container_info = griddb.ContainerInfo(
"time_series_data",
[
["timestamp", griddb.Type.TIMESTAMP],
["value", griddb.Type.DOUBLE]
],
griddb.ContainerType.TIME_SERIES,
True
)
container = gridstore.put_container(container_info)

# Insert sample data with potential outliers
container.put([
("2024-01-01T00:00:00.000Z", 10.0),
("2024-01-01T01:00:00.000Z", 100.0),  # Possible outlier
("2024-01-01T02:00:00.000Z", 20.0)
])
Постановка задачи
Я хочу:
  • Обнаружить выбросы в значение, используя статистический метод (например, z-показатель, IQR).
  • Замените эти выбросы интерполированными значениями на основе соседних точек во время извлечения.
Для например, значение 100.0 по адресу 2024-01-01T01:00:00.000Z можно заменить средним значением его соседей:
  • < li>Интерполированное значение = (10,0 + 20,0) / 2 = 15,0
Вопрос
  • Поддерживает ли GridDB обнаружение и замену выбросов во время выполнения запроса?
  • Если нет, то каков наиболее эффективный способ добиться этого с помощью GridDB и Python, учитывая большие наборы данных?
Что я пробовал
  • < strong>Обработка после запроса:

    Я получил данные и использовал Python для обнаружения и интерполяции выбросов. Однако этот подход требует больших вычислительных затрат для больших наборов данных.
  • Предварительная обработка:

    Я рассматривал возможность обработки выбросов перед сохранением данных в GridDB, но это увеличивает требования к хранилищу и делает набор данных менее динамичным.
Дополнительно Контекст
В настоящее время я запрашиваю такие данные, как это:

Код: Выделить всё

SELECT * FROM time_series_data WHERE timestamp >= TIMESTAMP('2024-01-01T00:00:00.000Z')
Однако при этом извлекаются только сохраненные данные и не помогает обнаружение или интерполяция выбросов.
Любая информация, примеры или рекомендации по обработке это эффективно было бы очень признательно!

Подробнее здесь: https://stackoverflow.com/questions/793 ... eries-data
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»