Введение в аналитику больших массивов данных

Визуализация

Показывать лекцию целиком

 

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

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

Какие цели преследуют визуализация? Это, прежде всего, представить данные в удобном для человеческого восприятия виде: на каких-то графиках, гистограммах, что было бы удобно воспринять человеческому мозгу. Также в результате визуализации может быть очень такой неожиданный эффект, как обнаружение некоторых зависимостей или корреляций в данных. Просто, потому что мы так хорошо их представили, что посмотрели и сами поняли, что и от чего зависит. Очень легко во время визуализации обнаружить выбросы в данных, то есть те объекты, которые не попадают под общую модель из ряда вон выходящих в контексте данных других объектов данной выборки, потому что они сразу какими-нибудь нестандартными высокими, например, столбиками в гистограмме отмечаются или просто выпадают из графика куда-нибудь за его пределы. Также визуализация может помочь определиться с выбором модели обработки данных, то есть, например, можно увидеть, какую стратегию выбрать для предобработки данных, то есть, какие нашли выбросы, нужно ли их убирать или фильтровать, или еще что-то. В общем, визуализация очень полезная часть, и стоит начинать работу над задачей анализа данных именно с визуализацией, чтобы познакомиться и лучше понять ваши данные.

Какие существуют средства визуализации? Это готовые решения, такие как Tableau. Аналог можно провести с готовыми решениями интеллектуального анализа данных, это weka, rapid майнер, кнайм, а также фреймворки на java script, например, D3.

Почему именно java script? Потому что, на мой взгляд, это наиболее выразительные фреймворки, которые позволяют наиболее красочным, более интерактивно представить ваши данные, хотя у python и R существуют мощные средства визуализации, но до интерактивности и выразительности фреймворков на java script'е они, явно, не дотягивают.

Рассмотрим готовую студию визуализации данных - Tableau. Почему именно эта студия была выбрана для рассмотрения? Потому что, в отличие от многих других студии визуализации данных, она имеет примеры применения не только в области бизнес-аналитики, business intelligence и тому подобное, что связано с коммерческой областью, но и вполне реальных научных исследованиях. Она сама разработана в Стэнфордском университете, и там же успешно применяется. Какие возможности она предоставляет? Нельзя пройти мимо того, что она поддерживает все наиболее известные платформы хранения данных такие, как Cloudera, Casandra, SAP HANA. Также, если говорить о локальных машинах, это поддержка файлов «.xls» и «.csv».

Какие способности визуализации она предоставляет? Это «Джентельменский набор», который присутствует во всех системах визуализации такие, как pie charts, bar charts, lines, tables, area charts, а также элементы, которые были добавлены в последних версиях программы, это treemap, word cloud и bubble chart. Вот bebble chart и treemap представлены на рисунке, а третья картинка это area charts. Также Tableau предоставляет возможности предсказания, так называемая технология Forecasting, суть которой изображена на картинке. Мы видим, что у нас есть какие-то данные, и при использовании этой функции программа самостоятельно продолжает графики, предсказывает значение функции в будущем. Также нельзя пройти мимо интеграции с R, но, скорее, это сделано как дань моде, R сейчас - это очень модный язык, и с ним интегрироваться, это хороший маркетинговый ход. Возможно, это предоставляет, действительно, реальные удобства написания скриптов на минимум и обработка. Что действительно удобно, это API, написанная на языке java script. Таким образом результаты работы в Tableau можно выкладывать на сайт, где они не потеряют своей интерактивности, как будто это та же самая студия.

Теперь я хотел бы привести пример работы с данной системой. Начнем, пожалуй, с загрузки данных. Очень просто можно загрузить данные. Жмём Open Data, выбираем Microsoft Excel и загружаем заранее подготовленный DataSet. DataSet посвящен случаям столкновения птиц с самолетами, и представляет небольшой интерес для нашего исследования. На примере, котором можно показать работу с Tableau. Итак, наши данные загрузились и, первое что хочется посмотреть, например, какие времена года, в какие месяцы, число столкновений с птицами наиболее высоко. Так как мы изначально предполагаем, что птицы могут мигрировать, значит в какие-то месяце должна быть большая активность. Попробуем подтвердить эту гипотезу. Для этого сначала выберем дату полета, а затем количество столкновений с птицами. Заранее хочется отметить тот факт, что интерфейс очень интуитивный, очень понятный, всё происходит, буквально, мышкой с помощью drag-and-drop. Вот, мы видим получился у нас некоторый тренд, но он пока не отображает наших желаемых потребностей. Нам хотелось бы получить данные по месяцам. Для этого мы переключимся на месяц. Теперь мы можем видеть, что у нас существуют ярко выраженные пики, если посмотреть это всё в районе августа или сентября. То есть мы можем утверждать, что, возможно, причиной повышения столкновения с птицами, это их миграция. Для того, чтобы более подробно рассмотреть эту проблему, посмотрим на новом графике, какие же птицы вызывают наиболее частые столкновения. Для этого мы выберем имена птиц и количество столкновений, и построим более удобную для восприятия bubble charts. Вот, теперь можем посмотреть, что вот такая вот птица, с таким названием вызывает наибольшее количество столкновений, так как остальные - это неизвестные птицы различных размеров, их не смогли опознать.

А теперь вернёмся к предыдущему график, мы рассмотрим на этом примере работу с фильтрами. Мы хотим из всего этого графика выделить только те столкновения, которые вызваны именно нашей птицей, которая вызывает наибольшее количество столкновений. Для этого в фильтры добавляем название птиц и ищем его здесь в качестве примера. Вот, наша птица, и видим, что, действительно, эта тенденция сохранилась. У нас также в районе августа наблюдаются пики активности столкновения с птицой данного вида. Если потом найти информацию по этой птице, то это будет голубь, который довольно часто перелетает, и, видимо, именно в августе у них период миграции, что вызывает столкновение с самолетами. Вот такое небольшое исследование, которое помогло нам провести пример использования Tableau, как инструмента визуализации данных, и даже, как инструмента некоторой аналитики. Естественно, в реальной жизни примеры и графики более сложные, и зависимости не всегда так легко установить. Хотя сейчас мы просто подтвердили некоторую гипотезу, но не до конца.

Теперь вернемся к нашим слайдам. У Tableau, естественно, есть альтернативы, которые также успешно применяются в науке. Это Spotfire и ADVIZOR. Разработаны в университетах и применяются успешно этими же университетами.

Теперь рассмотрим плюсы и минусы студии Tableau. Как уже было показано, это быстрый доступ данных. Действительно, к данным можно подключиться за несколько кликов мыши, даже, если это SAP HANA, например, также поддержка большинства популярных систем хранения данных, что тоже было показано, интуитивно понятный интерфейс, очень быстро и понятно можно сделать фильтр, создать график из двух, из трех измерений, и скорость построения визуализации. Как вы видели сейчас, за несколько минут буквально, мы провели небольшое исследование. Минусы - очень ограниченный набор инструментов. Вы могли видеть палитру, из которой я выбирал элементы, она не очень большая, и она существенно проигрывает фреймворкам визуализации, написанными на java script, или инструментам визуализации в Python'е. Также ограничена интерактивность визуализации. Все-таки, если я хочу предоставить данный продукт третьим лицам, которые будут его как-то использовать интерактивностью, предоставляемой по умолчанию, в Tableau может не хватить.

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

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

Какие возможности у этого фреймворка? Вот приведён набор базовых компонентов, так называемого «джентельменского набора», естественного, он полностью реализован на данной библиотеки, и, как я уже говорил, это не какие-то отдельные компоненты. С каждым из этих компонентов предоставлен его код, который можно гибко менять и подстраивать под себя. Яркий пример - нестандартные компоненты, которые вряд ли можно найти хотя бы в какой-нибудь другой готовой системе визуализации, это sequence-диаграмма, которая показывает, как пользователь попал к данному продукту, через какие он страницы при этом прошел. Сверху видно последовательность страниц, а снизу визуализацию. Очень интересная такая кольцевая визуализация, и показывается, сколько процентов пользователей прошло по этому пути, чтобы попасть к данному продукту.

Какие плюсы и минусы данного решения? В первую очередь, это гибкость. Мы получаем всю мощность связки html5, css и java script, то есть очень гибко, очень интерактивно делаем всё, что хотим. Затем это, естественно, в средстве такой гибкости, это интерактивность. Мы можем составить такую систему, которая предоставит пользователю возможность всячески изменять и данные, и свой внешний вид и отдать эту систему третьим лицам для использования. Третий плюс - это огромное количество готовых уже компонентов с кодом, которые можно найти на сайте разработчика. Какие минусы? Естественно, необходимо знание языка программирования java script, нету кнопки «сделать хорошо», то есть нету, как таковых готовых компонент, как я уже сказала. Есть примеры, в которых приведен код, как такую компоненту написать. Этот код может быть использован без больших изменений, однако, прям такого, как мы привыкли, например, в джейк, поставить точку и написать какой-то элемент, и у нас из Дивника получится этот элемент, такого нет. Также и к минусам можно отнести большие временные затраты на разработку собственной компоненты, хоть они, конечно же, будут значительно меньше, чем те, которые мы бы писали на нативном java script'е.

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

На этом все. Я хотел бы завершить. Пожелание - не использовать эти вещи в областях неприменимые друг для друга. То есть, если мы хотим какое-то быстрое решение, мы используем готовые студии, хотим нестандартное решение, всех удивить - используем фреймворки на java script'е.

Вернуться к учебному плану