Экс-преподаватель msu.ai, специалист образовательн... · 30 нояб 2021
Визуализации используются для того, чтобы отразить на изображении данные или же некоторые их свойства. В принципе, существует большое количество типов графиков, необходимых для передачи различной информации.
К примеру, графики могут служить для описания значений одной переменной (такие, как гистограмма или же boxplot/"ящик с усиками"), для описания зависимости между признаками (scatterplot/диаграмма рассеяния), для описания взаимосвязи между объектами (графики с изображениями графов) и для многих других целей.
В каждом из типов визуализациии можно выделить какой-то "любимый" метод, потому для начала хочу выделить мой любимый тип визуализации. Моим любимым типом визуализации является отображение информации на карте. К примеру, это могут быть красные точки, сигнализириующие о сбое программного обеспечения у пользователя, располагающегося в конкретном городе и районе. В целом, подобного рода графики помогают вспомнить, как же на самом-то деле велик мир: он не ограничивается нашей комнатой, нашим домом, нашим городом. Мир огромен, в нём много прекрасных мест, много интересных людей... Это вдохновляет. Невообразимо прекрасно чувствовать величие мира, к которому принадлежишь.
По-настоящему я испытывал это чувство, когда работал с данными по России одного очень крупного сервиса, однако не могу сейчас добыть тот график. Поисковики так же не вернули ничего действительно достойного, но график ниже может помочь хоть немного понять, о чём я:
Здесь на карте изображена вся планета - охватить её своим разумом сложно, потому она не так захватывающе выглядит. Но тоже довольно неплохо, по моему мнению.
Теперь давайте немножечко пройдёмся по частностям.
Как уже и говорилось, есть два популярных типа графиков, описывающих одну переменную: гистограмма и boxplot. Если первая позволяет в целом визуально оценить распределение и, возможно, оценить его форму (равномерно ли распределены значения или же есть несколько кластеров примерно похожих значений, к примеру), то второй тип графиков больше акцентирует внимание на различных статистиках значений - медиане, квантилях, а также позволяет обнаруживать выбросы.
По моему мнению, оба этих типа графиков имеют более достойные аналоги.
Как правило, гистограмму лучше заменять на Empirical Cumulative Distribution Function (ECDF). Проблема гистограммы заключается в том, что в ней можно настроить количество столбцов. Почему это проблема? Отвечая коротко, могу выдвинуть два важных момента: (1) если некоторое значение встречается в выборке крайне часто, гистограмма не позволит этого понять (то есть, столбец будет высоким, но не ясно, вызвано это тем, что какое-то конкретное значение встречается слишком часто или же тем, что значения из этого промежутка часты); (2) нередко при небольшом изменении количества столбцов, вид гистограммы меняется довольно значительно (изменение соотношений, вызванное практически той же причиной, что и предыдущий пункт).
ECDF хорош тем, что его практически не нужно настраивать (возможно, понадобится предобработка данных - логарифмирование, к примеру, - но не более) и при этом он позволяет корректно понимать, как распределены значения внутри признака. По сути, он чем-то похож на кумулятивную гистограмму, но при этом у него упразднены столбцы, что делает его более трактуемым и решает указанные выше проблемы. Хорошое сравнение можно увидеть здесь.
Также, по моему мнению, график violinplot выглядит значительно лучше, чем boxplot. Давайте сначала просто выполним визуальное сравнение:
Можно заметить, что violinplot по сути объединяет в себе плюсы гистограммы и boxplot'а. Однако при этом есть небольшая проблема, которая заключается в том, что violinplot аппроксимирует плотность значений, а не отрисовывает значения в точности, подобно гистограмме. Это может приводить к тому, что даже если значения располагаются, скажем, в промежутке от 0 до 10, violinplot будет "заезжать" на значения ниже нуля и выше десяти, сбивая с толку человека, сталкивающегося с графиком. Однако, как мне кажется, совмещение благ двух наиболее популярных графиков для отображения одного признака стоит того, чтобы периодически повнимательнее посмотреть на данные.
Мне нравиться библиотека Plotly, позволяющая создавать интерактивные графики.
import plotly.graph_objects as go
Вот график объемов торгов.
Вот он же увеличенный: Читать далее
Визуализация данных используется и на этапе "разведочного анализа данных" и в момент представления "результатов анализа" при использовании конкретных методов этого самого анализа данных.
Таким образом основными на мой взгляд... Читать далее