Стать специалистом по данным в 2016 году

TL;DR: Область науки о данных быстро развивалась за последние два года. Наконец, специалисты по данным могут легко анализировать большие объемы данных. В следующих сообщениях блога я объясню методы, которые я использовал для изучения крупномасштабных наборов данных, таких как WikiTree и Reddit.

Отказ от ответственности: эта запись в блоге не о «глубоком обучении» — да, я знаю, что это очень редко для сообщений в блогах в 2016 году!

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

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

Всего несколько лет назад анализ больших объемов данных был намного сложнее. Когда в конце 2010 года я начал работать над докторской диссертацией, проведение исследований, ориентированных на данные, было логистически сложной задачей: во-первых, прежде чем мы с коллегами начали что-то делать, нам нужно было найти способ получения данных для наших исследований. Это означало, что нам нужно было найти онлайн-ресурсы с соответствующими данными для нашего исследования. Затем мы обычно разрабатывали поисковый робот для сбора данных. Затем мы проанализировали и очистили просканированные данные, разработав код на C#, JavaScript или Python. Мы просканировали так много веб-сайтов, что в конце концов даже разработали фреймворк для сканирования и очистки.

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

Теперь исследования в области науки о данных стали намного проще. Впервые появилось множество разнообразных общедоступных наборов данных, таких как наборы данных, опубликованные на Kaggle, data.gov и Yahoo! Webscope (который недавно выпустил самый большой набор данных для машинного обучения). Более того, я считаю, что компании стали лучше осознавать преимущества обмена своими данными; несколько раз, когда мне нужен был определенный набор данных для моего исследования, я просто спрашивал разрешения на доступ к данным, и в большинстве случаев я его получал. После того, как я получил нужный набор данных, мне еще нужно было его очистить, а иногда и разобрать. В своей недавней работе по разбору и очистке данных я использовал GraphLab масштабируемую структуру данных SFrame, которая похожа на структуру Pandas DataFrame, только более масштабируемая.

Для фактического анализа данных я обычно беру небольшую часть данных и запускаю анализ прототипа на своем личном ноутбуке. Как только код становится достаточно стабильным, я перемещаю его на относительно мощный сервер, который может анализировать полный набор данных. Во многих случаях сервер недостаточно быстр, чтобы выполнить полный анализ за разумное время, поэтому, убедившись, что мой код в значительной степени работает с полным набором данных, я арендую сверхмощный сервер в облаке с почасовой оплатой (я обычно используют точечные инстансы AWS) и запускают полный анализ данных. В большинстве случаев для проведения анализа я использую различные инструменты GraphLab (как бывший специалист по данным в Dato, я большой поклонник GraphLab), scikit-learn, igraph, networkx и другие инструменты, такие как Реализация Gensim Word2Vec. В прошлом мне нужно было фильтровать данные для построения моделей прогнозирования. Сегодня, в отличие от двух лет назад, мне не нужно об этом беспокоиться — с помощью многих современных инструментов я могу создавать модели прогнозирования, используя множество примеров с множеством функций.

Кроме того, за последние два года инструменты визуализации, такие как D3.js и seaborn, стали частью моего рабочего процесса. Эти инструменты теперь значительно удобнее для пользователя и позволяют создавать красивые диаграммы. Мне очень нравится использовать эти инструменты визуализации, чтобы объяснять результаты моих исследований и строить цифры для моих работ.

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

"Майкл"

Кстати, что не изменилось в моей работе за последнее десятилетие, так это то, что я все еще использую Latex для написания своих статей :)