Шпаргалка себе Data Scientist’у


Мы начнём с очень поучительной истории про то, как иногда надо решать задачи анализа данных. О ней полезно помнить студентам, которые слишком увлекаются «сложными алгоритмами» и верят, что чем больше математической составляющей в алгоритме, тем качественнее его решение.

В конце 1990х годов Интернет-телевидение ещё не было достаточно развито в России, как, впрочем, и сам рунет. Но «обычный» телевизор стал основным средством проведения досуга, появилось множество каналов и передач, а реклама во время трансляций стала приносить телекомпаниям и рекламодателям солидные прибыли. Естественно, процесс получения прибыли захотелось оптимизировать и провести анализ, когда, где и какую рекламу следует показывать. Возникло множество задач анализа данных, одна из которых – определение рейтингов телепередач и репрезентативной выборки пользователей (по которой эти рейтинги можно вычислять).

В телевизоры устанавливались (с разрешения владельцев) специальные приборы, которые регистрировали, какие каналы и передачи телезрители смотрят [3–4]. По многим причинам невозможно поставить приборы во все телевизоры, поэтому небольшой набор устройств надо «раскидать по телезрителям» так, чтобы их показания отражали общую картину популярности в целом (например, в рамках одного города).

Про эту задачу нам даже рассказывали в университетском курсе (тогда автор был ещё студентом ВМК МГУ), в ней множество аспектов:

1) надо грамотно изначально распределить датчики (например, чтобы они были установлены у людей из разных социальных групп),
2) затем надо переустанавливать датчики, одновременно исследуя, все ли группы мы охватили, не изменились ли интересы у какой-то, пусть и малочисленной, группы, не появились ли новые группы, 3) надо кластеризовать пользователей (по интересам), ставить датчики только у небольшой группы представителей кластера, по которой можно восстановить информацию обо всём кластере.

Если задуматься, то задача очень интересная и непростая. Кстати, она актуальна до сих пор, просто поменялась формулировка и сфера приложения. Например, аналогичная задача возникает при размещении банеров на сайте (тут надо выставлять популярные – клики по ним приносят доход, но также проводить разведку, а что стало популярным именно сейчас).

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

В 1990е годы целые группы математиков-прикладников начали решать подобные задачи.

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

Идея была гениальна! Когда домохозяйки смотрят телесериал, они не моют посуду и не готовят обед, т.е. вода не утекает из квартиры (в 1990е годы телевизор в семье был, как правило, один, и он не стоял на кухне). Когда мужики смотрят бокс, хоккей или футбол, никто из них не побежит в туалет, скажем, во время серии послематчевых пенальти, а вот после – очень может быть. Таким образом, «затишье» в канализационных трубах связано с трансляцией интересных телепередач (ведь телевизор был одним из немногих развлечений),
а «шумы и вибрации» возникают во время рекламных пауз и после окончания популярных телепередач. Эта гипотеза была проверена, и оказалось, что с одним более примитивным датчиком задача определения рейтинга передач решается ничуть не хуже, чем с N
датчиками (которые распределяются по телезрителям).

Мораль: нельзя пренебрегать простыми способами решения задач анализа данных. Неверно, что «чем больше интегралов в решении, тем оно правильнее». Честно говоря, большинство математиков (особенно выпускников мехмата МГУ) очень трудно переубедить,
что задачи можно решать простыми, и даже нематематическими методами! В реальной жизни у действительно важных задач постановка вообще нематематическая, а способы её формализации могут уводить нас от исходной цели. Как мы увидим дальше, это возникает уже на этапе придумывания функционала качества решения.

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

  1. Разобраться, а стоит ли задачу решать математическими методами.
  2. Посмотреть на данные, понять их смысл.
  3. Найти тривиальное решение.
  4. Понять и исследовать функционал качества решения.
  5. Уделить внимание предобработке данных.
  6. Уделить внимание постобработке данных.
  7. Грамотно настраивать алгоритмы, учитывая их специфику.