machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Предварительная обработка данных IoT: линейная повторная выборка

Дата публикации Jul 6, 2017

В этой статье я рассмотрю то, что мы считаем наиболее важным этапом предварительной обработки при анализе данных временных рядов из Интернета вещей (IoT):Линейная передискретизация, Я опишу проблемы, связанные с передискретизацией данных датчика IoT, и представлю простое решение, которое мы разработали для их решения.

Нерегулярные данные временного ряда IoT

В Интернете вещей (IoT) датчики и другие подключенные устройства собирают данные. Эти данные отправляются в облако для обработки, анализа или моделирования для создания интеллектуальных приложений.

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

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

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

Настройка Smart Office IoT

Особый интересный результат анализа данных, поступающих от этих датчиков в офисе, представлен здесь:

Кластеры усредненных суточных температурных кривых

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

Повторная выборка с использованием панд

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

В WATTx мы интенсивно используем Python и его стек данных, поэтому естественным выбором для этого процесса является использованиеresampleфункциональность отпанд,

Давайте рассмотрим простой пример смоделированной кривой температуры с неравномерно распределенными точками данных:

Теперь, скажем, мы хотим пересчитать эту температурную кривую с частотой 50 минут (произвольный выбор), используяозначатьв качестве функции агрегации и линейной интерполяции:

pd.resample(tseries, '50min', 'mean').interpolate()

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

Двухэтапный процесс повторной выборки для IoT

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

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

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

tmp = pd.resample(tseries, '1min', 'mean').interpolate()
resampled = pd.resample(tmp, '50min', 'ffill')

Давайте посмотрим на результат:

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

Повышение надежности: работа с отсутствующими данными

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

Вот пример симулированной кривой температуры, которая иллюстрирует разрыв в несколько часов, в течение которого датчик был отключен в течение ночи, примерно с 22:00 до 6:00:

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

Очевидно, что данные с передискретизацией не соответствуют базовой кривой истинной температуры за период, в котором отсутствовал большой кусок данных. Чтобы покрыть такие случаи, мы ввели дополнительный параметр, который указывает, насколько большим должен быть разрыв пропущенных данных, чтобы его можно было интерполировать. Если разрыв выше указанного порогового значения (мы обнаружили, что для большинства наших случаев около 1 часа - это хороший выбор), точки данных не интерполируются, а вместо этого возвращаются какNaN (не число)значения.

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

Резюме

В настоящем блоге мы продемонстрировали проблемы, связанные с повторной выборкой данных нерегулярных временных рядов IoT, а также простое решение, разработанное нами для их преодоления. Код нашего простого решения по передискретизации данных датчиков IoT доступен вэтот GitHub гист,

Содержание этого поста было частью моего выступления наPyData Berlin 2017, слайды можно найтиВот,

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

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map