Алгоритм Δλ: помощь зала

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

Итак, вот как я вижу процесс создания визуализации от начала до конца.

  1. Таблицы и базы ≠ данные. Таблицы однообразны. Данные каждой задачи уникальны и живут в собственной реальности данных. Эту реальность нужно вообразить: 1, 2, 3.
  2. Данные состоят из элементарных частиц, в одном наборе данных бывают частицы одного или нескольких видов. Каждая частица характеризуется набором свойств. Важно представлять, каков «физический смысл» этих свойств в реальности данных и как они связаны между собой.
  3. На экране частицы данных выражены визуальными атомами (1, 2, 3), у каждого атома свой набор измерений и свойств. Визуальные атомы подбираются таким образом, чтобы полно и наглядно раскрывать свойства частицы данных. Чем ближе визуальное воплощение к физическому смыслу атрибута, тем лучше.
  4. Множество элементарных частиц образует массу данных: сыпучую, пластичную, меняющуюся. Массой данных можно управлять: взглянуть на неё с разных сторон, разделить на подмножества так и эдак, сравнивать эти подмножества между собой. Подмножества состоят из тех же частиц данных, что и целое, ими можно так же управлять.
  5. На экране масса данных выражена визуальной массой. Бывает, что в визуальной массе различимы отдельные атомы, в других случая они усредняются и складываются. О визуальном сложении и усреднении я ещё напишу.
  6. Помимо массы данных, в реальности данных есть набор измерений, ландшафт, в котором живут данные.
  7. На экране ландшафт схлопывается в одно-два-три измерения и становится каркасом визуализации. Гибкая визуальная масса легко «облепляет» жёсткий каркас, раскрываясь под определённым углом. Сложный ландшафт потребует двух и более каркасов. О видах каркасов ещё напишу.
  8. Визуализацию дополняют интерфейсом для управления массой данных (например, выборки и поиск) и каркасом (например, настройка осей). Об интерфейсной обёртке визуализации ещё напишу.

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

Иллюстрация Йоко Д’олбачи

Следующая теоретическая заметка выйдет 5 сентября.

Поделиться
Отправить
Запинить
3 комментария
Максим Горчаков

Все понятно и логично. Да, рассуждения абстрактны, но на этом уровне обобщения и осмысления предмета по другому и не получится. С удовольствием читаю материалы. Успехов!

Михаил Калыгин

Мне лично все было очень понятно.

Но мне кажется, что если используется слово «алгоритм», то значит решается какая-то задача. И именно с этой точки зрения нужно описывать шаги алгоритма: ведь мы хотим достичь приемлемого решения поставленной задачи, хотим описать рецепт, инструкцию.

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

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

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

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

Мысль выразил сумбурно, но надеюсь, что это будет полезно.

Антон

Я сломался после столбиковых диаграмм. Там начинается какой-то ад. Диаграмму с детскими садами вообще не понял — кажется, она прямо противоречит написанному. Либо я тупой, либо эти атомы лучше использовать с большой осторожностью :—)

Таня Мисютина: mail@infotanka.ru

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

В статье речь не о формате «столбиковая диаграмма», а о прямоугольнике, как способе представления данных. У прямоугольника два линейных измерения + площадь, их производная + цвет. Прямоугольники состоят из пикселей.

На диаграмме садиков, пиксель — это ребёнок. Группируем детей (пиксели) по возрастам, получаются прямоугольные области разного размера. Чем больше детей в возрастной группе, тем больше площадь прямоугольника. Если сделать все прямоугольники одной высоты, то их ширина отразит разницу в размерах возрастных групп. Представьте детей на площадке, пусть они станут рядом с ровесниками. Получится подобие вот такой диаграммы: https://blog.deming.org/wp-content/uploads/2014/04/joiner-people-pictures.jpg

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

Закрашенные столбики на диаграмме — и есть прямоугольники, попавших в сад детей разных возрастов. Можно сравнить не только доступность садов для разных групп (ширину), но и количество детей попавших/не попавших в сад (площадь). Цветовое кодирование дублирует доступность, привлекая внимание к проблемам — крупным ярким пятнам.

Популярное