Тепловые карты: теория и практика разработки (часть 1)

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


Тепловые карты: общие сведения, типы и области применения

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

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

Итак, тепловая карта (heatmap или heat map) – высоко востребованный на практике способ графического представления дискретных наборов данных, в котором разные значения отображаются различными цветами. Цветовая палитра для изображения может формироваться за счет варьирования оттенков или яркости, наглядно указывая на особенности изменения значений величины в пространстве или на их группировку.

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

Рисунок 1. Пример визуализации кластерной тепловой карты, отражающей данные по экспрессии генов в различных образцах (источник – https://en.wikipedia.org/wiki/Heat_map)

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

Рисунок 2. Пример визуализации пространственной тепловой карты, демонстрирующей изменение температуры на мировой геокарте (источник – https://en.wikipedia.org/wiki/Heat_map)

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

Отдельный интерес для процессов мониторинга представляют временные тепловые карты, на которых визуализируются изменяющиеся во времени метрики с осреднением их значений в пределах назначаемых интервалов (15 минут, час, сутки, неделя, месяц и т.п.) или применением специальных алгоритмов и формул, базирующихся на накопленных данных о значениях (состояниях) наблюдаемых параметров для вычисления значения интересующей величины на интервале и последующего цветового окрашивания в соответствующем квадрате/прямоугольнике карты (пример карты для набора метрик в разрезе недель приведен на рис. 3).

Рисунок 3. Пример визуализации временной тепловой карты, демонстрирующей изменение некоторого набора метрик по неделям (источник – https://codepen.io/apexcharts/pen/JjdOXBj)

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

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

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

Примеры применяемых на практике цветовых схем (палитр):

  • радужная палитра (rainbow palette) – показывает различные значения величины с помощью разных цветов, максимально используя ширину спектра и варьируя цветовые комбинации
  • черно-белая палитра или оттенки серого (black and white palette, grayscale) – визуализирует значения величины с помощью различных уровней серого цвета (от черного до белого)
  • железная палитра (iron palette) – типичная цветовая палитра в тепловизионных изображениях (диапазон цветов: черный / синий и фиолетовый / красный, оранжевый и желтый / белый)

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

Алгоритмы создания тепловых карт

Задача построения статических пространственных тепловых карт с непрерывным распределением визуализируемой величины в общем случае сводится к необходимости применения интерполяционных методов к имеющемуся ограниченному дискретному набору данных (опорных точек) в заданной 2D/3D области и преобразования проинтерполированных значений в цвета выбранной палитры с показом в виде изображения.

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

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

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

Примеры используемых на практике методов пространственной интерполяции:

  • метод обратных взвешенных расстояний (Inverse Distance Weighting, IDW)
  • метод ближайшего соседа (Nearest-Neighbour Interpolation, NNI)
  • модифицированный метод Шепарда (Modified Shepard’s Method)
  • метод радиальных базисных функций (Radial Basic Function, RBF)
  • сглаживающие сплайны (Smoothing Spline)
  • метод скользящего среднего (Moving Average)
  • полиномиальная регрессия (Polynomial Regression)
  • триангуляция с линейной интерполяцией (Triangulation with Linear Interpolation)
  • методы кригинга (Kriging)

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

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

Выбор конкретного метода для интерполяции может быть осуществлен на основании анализа структуры типичных наборов используемых данных, результатов выполнения тестов и использованием разных методов, оценки среднеквадратичной ошибки методов (Root Mean Square Error, RMSE) и некоторых других соображений.

Программное обеспечение для построения тепловых карт

Разработан целый ряд коммерческих и свободно распространяемых инструментов по созданию статических и динамических тепловых карт, устанавливаемых в качестве программного обеспечения на локальный компьютер пользователя или работающих в веб-браузерах в режиме онлайн. Среди онлайн-сервисов можно упомянуть следующие: Яндекс.Метрика, Google Analytics, Mouseflow, Hotjar, Lucky Orange, Crazyegg и др.

В ряду устанавливаемых локально свободных программных пакетов визуализации данных с открытым исходным кодом, предоставляющих инструменты работы с тепловыми картами разных типов, можно обратить  внимание на (рис. 4-6):

  • R – язык программирования для статистической обработки данных и работы с графикой, а также программная среда для вычислений
  • ParaView – высокопроизводительный графический программный пакет для интерактивной визуализации в исследовательских целях
  • Visualization Toolkit (VTK) – специализированное ПО для многопараметрической обработки и визуализации научных данных
  • Gnuplot – программный пакет для создания 2D/3D графиков
  • GeoDa – ПО для анализа данных посредством изучения и моделирования пространственных структур

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

Рисунок 4. Пример визуализации кластерной тепловой карты в системе R (источник – https://r-graph-gallery.com/heatmap)
Рисунок 5. Пример визуализации кластерной тепловой карты в пакете GeoDa (источник – https://geodacenter.github.io)
Рисунок 6. Пример визуализации 3D тепловой карты в пакете Gnuplot (источник – http://www.gnuplot.info/demo_4.6/heatmaps.html)

Примеры популярных библиотек визуализации данных на языке Python, предоставляющие средства создания тепловых карт различных типов (рис. 7):

Рисунок 7. Примеры визуализации тепловых карт с помощью библиотеки Seaborn (источник – https://seaborn.pydata.org/generated/seaborn.heatmap.html)

В ряду свободных реализаций функционала тепловых карт на языке JavaScript достойны упоминания библиотеки (рис. 8-10):

Рисунок 8. Пример визуализации тепловой карты со случайным распределением величины с помощью библиотеки Heatmap.js (источник – https://www.patrick-wied.at/static/heatmapjs/)
Рисунок 9. Пример визуализации временной тепловой карты с помощью библиотеки Apache ECharts (источник – https://echarts.apache.org/examples/en/editor.html?c=heatmap-cartesian)
Рисунок 10. Пример визуализации пространственной тепловой карты с помощью библиотеки Apache ECharts (источник – https://echarts.apache.org/examples/en/editor.html?c=heatmap-large)

Функционал работы как с пространственными, так и с временными тепловыми картами в качестве компактного и наглядного способа отображения динамики изменения множества или конкретного объекта (истории состояний на базе классифицированных показателей метрик и событий) предоставляют многие производители известных систем мониторинга и управления (рис. 11-13).

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

Рисунок 11. Пример визуализации временной тепловой карты в системе Splunk (источник – https://www.splunk.com/en_us/products/infrastructure-monitoring.html)
Рисунок 12. Пример визуализации временной тепловой карты в системе Dynatrace (источник – https://www.dynatrace.com/support/help/how-to-use-dynatrace/dashboards-and-charts/charts-and-tiles/visualization-heatmap)
Рисунок 13. Пример визуализации временной тепловой карты в системе Grafana (источник – https://github.com/grafana/grafana)

Кратко о возможностях программного комплекса “Центральный Пульт” по работе с тепловыми картами 

Функционал построения пространственных тепловых карт в отечественном программном комплексе мониторинга и управления цифровыми инфраструктурами “Центральный Пульт” (SAYMON) реализует визуализацию пространственно-распределенных параметров на геокартах и в помещениях, например, центров обработки данных. Визуализация может выполняться как с непрерывным, так и с неполным покрытием цветом карты или схемы базовыми средствами системы (цифровая модель пространства серверной части и пользовательские интерфейсы). Тепловые карты помещений с непрерывным цветовым окрашиванием создаются и настраиваются с помощью специального программного расширения floorheatmap.

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

Соответствующие принципы и методики работы в программном комплексе будут подробно обсуждены во второй части материала, также планируемой к публикации в блоге “Центрального Пульта”.

В заключение отметим, что при наличии повышенных требований к качеству и точности предсказания пространственного распределения величин и их изменения во времени, например, в критически важных инфраструктурах, на первый план выходят  требующие существенных вычислительных ресурсов современные методы и средства вычислительной гидродинамики (Computational Fluid Dynamics, CFD), способные при надлежащем подходе, наличии у специалистов необходимого опыта и компетенций, с высокой точностью предсказывать пространственно-временные характеристики течений и особенности тепломассообмена (скорость, температура, концентрация примесей и др.).

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

Приведем несколько информационных источников и дополнительных материалов для более глубокого погружения в проблематику тепловых карт:

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

Команда SAYMON уделяет большое внимание визуализации данных, да и сам продукт с первого дня существования был ориентирован на то, чтобы не только структурировать, но и качественно визуализировать множество сложно связанных структур. Базовый пользовательский интерфейс представляет из себя конструктор интерфейсов, не Figma, но иногда даже более гибкий и наглядный, одновременно отображающий “живые”, быстро меняющиеся данные. Вместе с программными расширениями – встраиваемыми и отдельно стоящими, мы предоставляем возможности оперативного охвата сознанием состояния сложной распределенной системы (observability) для принятия эксплуатационных решений, направленных на обеспечение качества предоставления цифровых услуг.

Одновременно с этим, в программном комплексе “Центральный Пульт” развиваются машинные методы анализа потоков данных, влияний, корреляций, аномалий и прогнозов, позволяющих переходить от реактивных действий – к проактивным и превентивным, реализовывать мероприятия по предотвращению развития нештатных ситуаций.

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

Напомним, что продолжение заметок о тепловых картах в блоге следует…