Исследование больших объёмов информации

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

Поскольку я ещё не сталкивался с проблемой анализа данных такого объёма, этому придётся учиться в процессе решения задачи. По-видимому, объём данных составит порядка 5 ГБ. При этом хранение данных и необходимые вычисления можно будет производить на настольном компьютере — но только в специализированных программах, заточенных под большие объёмы данных (Excel, например, не подойдёт). Если же вычисления будут занимать слишком много времени, мне понадобится окунуться в увлекательный мир распределённых вычислений и освоить Hadoop.

1. Сначала я выведу на экран с помощью консольных команд несколько сотен первых символов, чтобы посмотреть какие разделители используются между различными полями и записями. (Эти команды не загружают файлы в оперативную память целиком и большой размер файла не должен быть проблемой). Затем также с помощью консольных команд, выпишу 200 случайно выбранных записей в отдельный файл в формате CSV и пристально посмотрю на него в Excel’е. Меня будут интересовать форматы записей (время, дата, IP адреса, географические координаты, etc) и диапазоны принимаемых значений (проценты, 5-бальные оценки, логические переменные, дни недели, номер дня в году, часы, секунды/минуты, etc), а также, то, можно ли какие-то из полей выразить через другие (в первую очередь линейно). Обращу внимание, на разные поля, имеющие одинаковый формат, проверю, если ли среди них такие, в которых одно поле всегда больше другого (это может быть временем начала и конца какого-либо процесса). Посмотрю, есть ли какие-нибудь поля, значение которых только возрастают или убывают (записи могут быть упорядочены по времени, номерам транзакций или идентификаторам и это позволит мне найти эти поля и обратить на них внимание).

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

2. Изучу какую-нибудь реализацию парадигмы MapReduce, попутно пробуя новые знания на предложенном файле.

3. Изучу приложение для визуализации статистических данных (возможно среду R)

4. Проверю гипотезы из 1-го пункта на всех данных (или на достаточно крупной выборке, если на это будет уходить слишком много времени). Если в какой-то из них появятся исключения, посмотрю, можно ли немного изменить гипотезу, чтобы ей удовлетворяли все данные (например, дата принимает значение 0, если она не известна).

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

Посчитаю матожидания, дисперсию, построю гистограммы кажого поля (или даже по несколько гистограмм с интервалами группировки, выбранные по разным правилам), чтобы эти данные были под рукой и к ним можно было быстро обращаться.

Изучая гистограммы для различных полей, посмотрю, если ли среди них идентификаторы (их гистограммы буду прямой линией на уровне, соответствующем ширине интервала группировки).

Для проверки гипотезы о зависимости двух величин я буду использовать точечные диаграммы и строить для них регрессии. Для «пары десятков полей» получится более 200 диаграмм и управиться с ними будет довольно проблематично, но, если на предыдущих этапах отсеять нерелевантые поля и достаточно будет исследовать, например, 10 полей, то диаграмм будет уже только 55 и их беглый анализ займёт не слишном много времени. Если у меня будет сильное ощущения, что несколько поля должны зависеть друг от друга, но эту зависимость не получится обнаружить на точечных диаграммах, я буду исследовать их с помощью машинного обучения (изучая его в процессе).

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

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

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

Метрики для Яндекс.Браузера

Предложите набор показателей и метрик, на которые нужно смотреть команде Яндекс.Браузера, чтобы следить за его успешностью и удовлетворенностью его пользователей.

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

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

При этом Яндекс интересуют в первую очередь «качественные» пользователи, т. е. активные. Только среди активных пользователей получится продвигать другие продукты комании, именно они будут генерировать основную часть запросов в Яндекс (и просмотров рекламы Яндекс.Директ); именно активные пользователи реагируют на изменения в браузере и рекомендуют его другим людям.

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

Возможное определение: активный пользователь — пользователь, который за последние 7 дней хотя бы 3 дня просматривал больше 10 страниц в день или проводил в Яндекс.Браузере больше 30 минут в день.


Для того, чтобы человек стал активным пользователем Яндекс.Браузера, он сначала должен узнать о его существовании, затем перейти на сайт http://browser.yandex.ru, скачать его, установить, начать пользоваться и, наконец, начать пользоваться достаточно интенсивно, чтобы стать активным пользователем.

Этот процесс необходимо рассматривать в целом — как conversion funnel (воронку конверсии). На каждом этапе часть людей будет теряться. Необходимо отслеживать, какой процент и по какой причине не становится в итоге активным пользователем Яндекс.Браузера и что можно предпринять для каждого из этапов, чтобы уменьшить потери (например, делать акцент на разные достоинства Яндекс.Браузера для пользователей разных браузеров, поменять расположение кнопки «Скачать», и т. д.)

Первая группа показателей

1.1 Количество уникальных посетителей страницы http://browser.yandex.ru за сутки/месяц
1.2 Количество скачиваний приложения за сутки/месяц
1.3 Количество первых запусков Яндекс.Браузера за сутки/месяц
1.4 Процент уникальных посетителей, скачавших приложение
1.5 Процент пользователей, скачавших приложение, которые запустили его

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

Вторая группа показателей

2.1 Количество активных пользователей
— успешность браузера в целом, лёгкость использования браузера новыми пользователями

2.2 Процент пользователей, которые были активными неделю/месяц назад и остались активными на этой неделе/в этом месяце
— удовлетворённость существующих активных пользователей, способность удерживать их, принятие ими нововведений

2.3 Среднее за последний месяц количество часов в день, которое активные пользователи используют Яндекс.Браузер
— вовлечённость пользователей

О доле Windows 8

Оцените долю Windows 8 в России через полгода и через год.

В рамках данного прогноза будем говорить только о совокупной доле Windows 8 среди компьютеров с архитектурой x86 и x64.
 

Сравнение старта продаж Windows 7 и Windows 8

Windows 7 вышел на рынок 3 года спустя после откровенно неудачной Windows Vista. В тот момент большинство пользователей продолжало использовать 8-летней Windows XP, а многие даже при покупке нового компьютера с Windows Vista ставили на него более старую операционную систему. Windows 7 сразу же была признана намного более удачной и надёжной, чем Windows Vista и Windows XP, что вместе с назревшей необходимостью в современной ОС, оптимизированной под многоядерные процессоры, сделали её самой быстро продаваемой версией Windows в истории.

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

Перспективы гибридных устройств

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

Но этот путь ещё предстоит пройти. Сейчас производители ноутбуков только экспериментируют с различными форм-факторами гибридных устройств (планшет с пристёгивающейся клавиатурой, ноутбук с отстёгивающимся экраном-планшетом, ноутбук с поворачивающимся экраном, ноутбук с экраном, отклоняющимся назад на 360 градусов, планшет-слайдер с клавиатурой-подставкой и др), не решаясь сделать ставку на один из них и ожидая данных о продажах, на которые можно было бы опереться для принятия такого решения. Можно предположить, что большинство производителей постарается подготовить максимально привлекательные устройства (как по характеристикам, так и по цене) к праздничному сезону в конце 2013 года и они поступят на российский рынок только к началу будующего года и не успеют сильно повлиять на расстановку сил.


Конкурентная среда

Ожидается, что до конца года выйдет очередная версия OS X компании Apple. Возможно она будет иметь поддержку сенсорных дисплеев (на то, что новая версия OS X, будет существенно отличаться от текущей указывает цикл обновлений ОС, подразумевающий чередование значительных апдейтов и усовершенствований предыдущих версии ОС и нашедший отражение даже в названиях систем: Leopard → Snow Leopard, Lion → Mountain Lion). Но поскольку доля компьютеров Apple в России традиционно мала (не более 2%) не стоит ожидать, что многие пользователи Windows предпочтут устройство с OS X, а не Windows 8 при покупки ноутбука с сенсорным экраном.

Перпективы анонсированных на днях ноутбуков с сенсорными экранами Chromebook Pixel компании Google ещё менее радужные, так как для Google это скорее имиджевое устройство, которое при этом дороже и имеет меньше функций, чем устройства конкурентов.

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


Факторы роста доли Windows 8

Абсолютный рост количества пользователей Windows 8 обеспечивается двумя составляющими: продажами новых устройств (в основном традиционных — без сенсорных экранов) с предустановленной Windows 8 и переход на неё пользователей более ранних версий Windows.

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

Таким образом, в основном рост доли Windows 8 будет происходить за счёт продаж новых устройств.
 

Прогноз доли Windows 8 в России

По данным liveinternet.ru, Windows 8 стоит на данный момент на около 2% российских компьютеров (здесь и далее речь идёт о доле компьютеров подключенных к интернету, без учёта мобильных устройств). При этом за время с момента выхода Windows 8, доля Windows 7 увеличилась на 4% от общего количества компьютеров. Предполагая, что за ближайшие 6 месяцев отток процента пользователей Windows XP и Windows Vista сохранится на прежнем уровне и их доля будет распределяться между Windows 7 и Windows 8 в том же соотношении, что и сейчас, получим, что доля Windows 8 составит 5%.

Затем за счёт увеличения ассортимента устройств с Windows 8 и всплеска продаж компьютеров с сенсорными экранами (и, соответственно, Windows 8) в связи с началом учебного года процент новых пользователей Windows 7 и Windows 8 сравняется, в результате чего доля Windows 8 в России через год составит порядка 10%.

 

Показатели качества для Яндекс.Такси

Назовите несколько (4-5) ключевых численных показателей качества для сервиса Яндекс.Такси. Обоснуйте ваш выбор.

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

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

Такой подход позволяет объективно отслеживать качество сервиса, ставить цели по достижению определённых показателей и отслеживать достижение этих целей. (Измеримость позволяет сравнивать показатели; однозначная трактуемость гарантирует, что показатели не будут зависеть от того, как их понимает субъект, занимающийся измерениями; за счёт монотонной зависимости можно говорить, что увеличение/уменьшение показателя является индикатором улучшения качества.)

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

Яндекс.Такси — сервис для заказа такси с мобильного устройства (iOS или Android) или через сайт. Качество этого сервиса складывается в первую очередь из удобства, надёжности и понятности мобильных приложений и сайта, надёжности серверной компоненты, времени ожидания такси и исполнительности таксопарков.


1. Процент возврата

Наиболее важный показатель. Он характеризует, какой процент пользователей вновь воспользовалось сервисом (т.е. был достаточно доволен качеством сервиса для того, чтобы воспользоваться им вновь). Чтобы рассчитать этот показатель, необходимо иметь возможность связать разные поездки одного и тоже пользователя (это решается за счёт того, что для совершения заказа необходимо указать номер мобильного телефона) и определиться, на каком интервале времени его рассчитывать. Бóльший интервал позволяет учитывать пользователей, которые реже пользуются такси, но при этом данные в меньшей степени отражают текущее качество сервиса. (Чтобы более оптимально выбрать размер интервала, необходимо иметь данные о распределении количества пользователей для каждого интервала между последней и предпоследней поездкой с шагом в 1 день).


2. Среднее время, уходящее на то, чтобы сделать заказ

Время, которое пользователи в среднем затрачивают с момента открытия приложения до момента, когда они заканчивают создание заказа и начинают ожидать предложений таксопарков.

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


3. Процент сбоев по вине таксопарка

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

4. Взвешенный рейтинг в магазинах приложений

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