Поделиться

понедельник, 27 мая 2013 г.

Рассказы об анализе: суть анализа данных (моя версия)

Пользуясь подсказкой Влада, я решил начать эту рубрику. Посты, как обычно, будут весьма нерегулярными,чаще всего практически ориентированными, и если будет написана какая-то чушь, то все 10-15 читателей моего блога смогут мне об этом сказать. :)

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

Последнее замечание относительно оценки качества результата мне кажется чертовски важным и часто упускаемым из виду. Когда «аналитики» с экрана телевизора говорят о скором росте цен на золото или о скором их падении, они никак не характеризуют степень уверенности в своих заключениях – это «угадайка», «шаманство», «догадки», но не результат анализа данных. На самом деле, такие заявления заслуживают даже меньше доверия, чем прогноз по поводу встречи со слоном на Кутузовском проспекте в Москве из известной истории («Шанс встретить слона на Кутузовском проспекте составляет 1 к 2: можно встретить, а можно не встретить»), потому что, на самом деле, любая оценка лучше, чем никакая. Здесь нужно оговориться, что наличием «практически никакой» оценки далеко не всегда можно оправдать отсутствие усилий по вычислению оценок более точных. Это касается как самого прогноза («Насколько широк интервал, в котором, согласно прогнозу, будет колебаться значение интересующего нас параметра?»), так и оценки качества этого прогноза («Насколько в процентном исчислении мы уверены, что интервал будет именно таким?»). Это очень важный момент, и я к нему еще вернусь.

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

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

исходный объект или процесс -> данные об объекте или процессе -> измененная форма данных -> метод манипуляции данными -> результат манипуляций с данными,

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

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


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


Я не нашел изображение черепахи, но «мировой бобёр» в данном случае подходит даже лучше, поскольку он трудолюбив, много чего грызет, и совсем не так медлителен. Бобёр – это Вопрос. Если нет бобра, то не нужно ничего делать, ничего анализировать. Вопрос возникает в некоторой предметной области (нередки и вопросы, актуальные для нескольких областей), которая в свою очередь является частью мирового информационного пространства (или океана). Если Вопрос возник, и мы предполагаем, что можно получить ответ на него с помощью анализа данных, то для начала работы нам необходимо три вещи:
  • Идея – что, собственно, можно и нужно сделать. Идея может быть общей, например, в виде концептуальной модели или совершенно конкретной в виде метода, который мы собираемся применить (построение модели линейной регрессии, кластеризация по методу дальнего соседа, случайный лес и т. д.). Идея уточняется по ходу работы.
  • Данные – то, чем предполагается оперировать. Данные нужно предварительно получить и трансформировать в какую-то пригодную для обработки форму.
  • Инструмент – то, с помощью чего можно применить Идею к Данным (бумага и ручка, калькулятор, программное обеспечение для математических расчетов, визуализации, вычислительный кластер для обработки больших данных и т. д.).
Слоны на рисунке не просто так стоят вразнобой. Процесс анализа данных может начаться с любого из указанных выше аспектов, они могут иметь разный вес и значение в ходе работы и влиять друг на друга всевозможными способами:
  • Иногда вне зависимости от характера и сложности Вопроса аналитики ограничены определенным набором Инструментов (например, только свободным программным обеспечением или теми продуктами, которыми они владеют), что в свою очередь вводит ограничения на Идею.
  • То же самое можно сказать и о Данных: вполне может оказаться, что задачу надо решить, имея весьма небольшой набор весьма неполных Данных непонятно как полученных, что вводит дополнительные ограничения на Идеи.
  • Если Данные нужно еще собрать (например, из социальных сервисов), то потребуются дополнительные Инструменты. Они также потребуются, если окажется, что Данных слишком много, или что вычисления, согласно Идее, слишком масштабны.
  • Использование выбранных Инструментов для воплощения Идеи, то есть применения ее к Данным, может дать неудовлетворительный результат. В этом случае придется искать новые Идеи, Инструменты и/или Данные и т. д.
Даже сам Вопрос может, на самом деле, проистекать не из потребностей в предметной области, а из Идеи («А что будет, если… ?»), Данных («Что бы нам с этим сделать?») или Инструмента («Куда бы нам это применить?»). Первый случай весьма распространен в форме научных изысканий, остальные два сомнительны с точки зрения конструктивности и вызывают дополнительные вопросы из другой сферы («Зачем мы купили эту базу данных / этот программный продукт?»).
По указанным причинам нельзя выстроить работу по анализу данных в виде четкой последовательности шагов, неизменной для всех случаев, но мы рассматривали аспекты, а не шаги, и эти аспекты позволяют достаточно четко представить, с чем придется иметь дело в каждом проекте по анализу данных.