Вход
Регистрация

Войти c помощью аккаунта

Что превращает простую аналитику в продвинутую?

Слово «аналитика» сейчас используется настолько часто, что оно практически перестало нести смысловую нагрузку. За какую бы задачу в области IT вы не взялись, там обязательно будет какая-нибудь аналитика. Нарисовали график или подсчитали статистику – получай аналитику, нанесли точки на карту – получай крутую аналитику.

Для того, чтобы эта тема перестала быть общим местом, стоит разобраться какой смысл мы будем вкладывать в слово «аналитика». Анализ – это работа, целью которой является принятие обоснованного решения. Если никакие решения не принимаются, то нет смысла анализировать.

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

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

Спрашивается, чем продвинутая аналитика отличается от простой? Какие признаки делают её продвинутой?

Я считаю, что есть 3 ключевых признака:

  • Нетривиальная логика обработки данных
  • Обоснованное использование сложных алгоритмов
  • Обработка больших объемов данных

Поясню каждый пункт по отдельности.

Нетривиальная логика

Мы довольно часто сталкиваемся с задачами, которые вроде как легко решаются, где не нужна никакая высшая математика, но которые все равно являются очень сложными.

Возьмем простой пример, связанный с очисткой персональных данных – определить корректность телефона. Казалось бы, все очень просто. Есть формат написания телефона +X (XXX) XXXXXXX, если текст ему соответствует, значит все верно. Что тут думать? И где тут сложности?

А теперь посмотрим, что происходит при анализе реальных данных. Приведу несколько примеров из жизни.

Номер телефона Проблема
+7 (4912) 24-09-77 24-06-99 Это ошибка или 2 номера?
+7 (4912) 24-09-77 (спросить Сергея) Приписку надо отбросить?
+7 (4912) 24-09-77 (302) 302 – это добавочный номер или нет?
+1 (111) 1111111 Это фиктивный номер или реальный?
(Ч912) 24-09-77 Букву «Ч» надо заменить на цифру 4?
81074912240977 «810» - это выход на межгород?

И таких вопросов сотни. Если номер телефона без кода страны или города – он корректный? Нужно ли проверять код страны? А код оператора?

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

Сложные алгоритмы анализа

Очень часто применение Data Mining алгоритмов считается маркером того, что речь идет о продвинутой аналитике. Это не совсем верно.

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

На моей практике был анекдотичный случай, когда для анализа того, какие факторы влияют на объем продаж в магазине, аналитик использовал несколько Data Mining алгоритмов и пришел к поразительному выводу: чем больше площадь магазина, тем на большую сумму он продает.

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

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

Кроме того, надо иметь в виду, что значительная часть времени в продвинутой аналитике уходит вовсе не на построение моделей. Самая трудоемкая часть работы – это подготовка данных к анализу: сбор, систематизация, очистка, трансформация. До применения Data Mining надо еще добраться.

Большие объемы данных

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

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

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

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

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

Но это еще полбеды. Дело в том, что результат суммирования может зависеть от того как вы подаете данные на вход. Суммируете отсортированные данные – один результат, а те же самые неотсортированные данные – другой. Как тут верить результатам?

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

Продвинутая аналитика

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

Если для решаемой задачи характерны один или два описанных выше признака, то это несомненно продвинутая аналитика. Если же встречаются все три признака сразу, то это уже высший пилотаж.

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