Как устроена профессия «Data Scientist»

    Помимо рассказов о собственном опыте работы над оптимизацией различных сервисов нашего IaaS-провайдера мы анализируем западный опыт. От управления проектами до технологических кейсов, о которых рассказывают другие ИТ-компании.

    Сегодня мы решили взглянуть на профессию, которая связана с непосредственной работой с данными, и обратили внимание на заметку Филиппа Гуо (Philipp Guo), который работает в университете Рочестера «ученым по данным».


    / Фото Jer Thorp / CC

    Филипп разработал ряд тематических инструментов в ходе работы над своей кандидатской диссертацией по теме «Программные средства для работы с данными» еще в 2012 году.

    С того момента понятие «data science» стало уже общепринятым наименованием отдельной профессии, а высшие учебные заведения по всему миру инкорпорировали это направление в свои учебные программы.

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

    Как это устроено — сбор данных


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

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

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

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

    Обработка данных


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

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

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

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

    Анализ данных


    Здесь мы говорим о непосредственной работе над алгоритмами и программами, которые отвечают за интерпретацию вашего набора данных. Для удобства их можно называть скриптами, для написания которых используется Python, Perl, R и MATLAB.

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

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

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

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


    Выводы


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

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

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

    Презентация


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

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

    P.S. Дополнительное чтение по рекомендации Филиппа Гуо.
    1cloud.ru
    IaaS, VPS, VDS, Частное и публичное облако, SSL

    Комментарии 3

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

      То есть он, умеющий писать скрипты и знающий о программировании, наименовал фалы скриптом (ну не руками же?!) и забыл сделать элементарнейшую документацию? а где же дисциплина мышления? забота о грядущих поколениях, что будут лицезреть научную работу? вывод печален: деградация добралась до науки. И сколько ещё таких горе-учёных?
        +2
        Ученые во многих областях генерируют и отбрасывают гипотезы в десятки раз быстрее, чем программисты, у которых архитектура проекта может быть построена даже до начала написания кода. Написание документации к элементу пайплайна, который, возможно, через пару минут/дней/недель улетит в помойку (ибо не сработало) — пустая трата времени.
        Будущие поколения как правило смотрят на тщательно отобранные 5-10% результатов (те, что «взлетели») с очень тщательно прописанными деталями о том, как в точности получены данные.
        +1
        Спасибо за статью! Прочитал практически все про свою работу. Приятно чувствовать себя не одиноким.

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

        Самое читаемое