Что такое Data Science? Часть 5

Продолжение статьи «Что такое Data Science».

Data scientists — ученые в области Data Science

Data Science требует навыков в самых разных областях, начиная от традиционной информатики (computer science), заканчивая математикой и искусством. Джеф Хаммербахер (Jeff Hammerbacher), описывая группу ученых в области data science, которую он собрал в Facebook (возможно, первую data science-группу в ориентированной на потребителя веб-компании), сказал:

«… в отдельно взятый рабочий день член нашей команды может заняться созданием многошагового процесса обработки данных на Python, провести тестирование гипотез, выполнить регрессионный анализ образцов данных при помощи R, разработать и реализовать алгоритм для продукта или сервиса с большим объемом данных в Hadoop или сообщить результаты нашего анализа другим членам организации»

Где найти таких разносторонних людей? По словам Диджея Патила (DJ Patil), главного ученого в LinkedIn (@dpatil), лучшими data scientists, как правило, оказываются серьезные ученые — в особенности, скорее, физики, чем специалисты в computer science. Физики имеют сильную математическую подготовку, вычислительные навыки и происходят из дисциплины, в которой выживание зависит от умения получать максимальную отдачу от данных. Они должны думать о большой картине, большой проблеме. Когда вы только что потратили большýю часть грантовых денег чтобы получить данные, вы не можете просто выбросить эти данные из-за того, что они не такие чистые как вам хотелось бы. Вы должны заставить их рассказывать историю. Вам нужно обладать творческими навыками на тот случай, если история, которую рассказывают данные, получилась не такой, какую видите в данных лично вы.

Ученые также знают как разделить большие проблемы на более мелкие. Патил описал процесс создания функции рекомендации групп в LinkedIn. Было бы легко превратить это в грандиозный процесс, который отнял бы тысячи часов у разработчиков, а также тысячи часов вычисления, чтобы создать корреляционный массив из пользователей LinkedIn. Но процесс работал совершенно иначе: началось все с относительно небольшой простой программы, которая просматривала отдельный профиль пользователя и давала соответствующие рекомендации. Вы учились в университете Cornell? Тогда вы, возможно, хотите присоединиться к группе выпускников Cornell. Затем происходило постепенное разветвление. В дополнение к просмотру профилей, ученые в области Data Science из LinkedIn начали просматривать события, которые посетил пользователь. Затем книги, которые он добавил в свою библиотеку. Результатом был ценный продукт (data product), который анализировал огромную базу данных, хотя он никогда и не задумывался как таковой. Он был начат с малого и постепенно обретал новую ценность. Это был подвижный, гибкий процесс , постепенно достигающий своей цели, а не попытка взобраться на огромную гору данных сразу.

Это и есть сердце того, что Патил называет data jiujitsu — использование меньших вспомогательных задач для решения большой и сложой проблемы, которая кажется неразрешимой. CDDB — прекрасный пример data jiujitsu: распознавание музыки при помощи анализа звукового потока напрямую — достаточно сложная задача (хотя и разрешимая — см. midori). Но персонал CDDB использовал данные творчески, чтобы решить гораздо менее сложную задачу, которая дала тот же результат. Вычисление слепка трека на основе его продолжительности, и затем поиск слепка в базе данных — это тривиально.

Предпринимательство — это другая часть головоломки. Первый небрежный ответ Patil на вопрос: «Какого человека вы ищите, когда нанимаете data scientist?», был: «Того, с кем можно начать бизнес». Это важное замечание: мы вступаем в эру продуктов, построенных на данных. Мы еще не знаем, что это за продукты, но мы знаем, что в победителях окажутся люди и компании, которые их создадут. Хилари Мэйсон (Hialry Mason) пришла к тому же выводу. Действительно, ее работа как ученого в Bit.ly — исследовать данные, генерируемые сайтом bit.ly, и находить способы создавать из них интересные продукты. Никто в зарождающейся индустрии данных не пытается создать 2012 Nissan Stanza или Office 2015 — все пытаются найти новые продукты. Они не только физики, математики, программисты и художники, они, конечно, и предприниматели.

Data scientists объединяют предпринимательство и терпение, готовность постепенно создавать data-продукты, способность исследовать и возможность подбирать решение. Они по сути междисциплинарны. Они могут справиться со всеми аспектами проблемы: от первоначального сбора данных и приведения их к нужному виду до вырисовывания выводов. Они могут мыслить нестандартно, чтобы придумать новые способы взгляда на проблему или работать с задачей, сформулированной в очень общих терминах: «Здесь очень много данных. Что вы можете из них сделать?»

Будущее — за компаниями, которые выяснят, как собирать и успешно использовать данные. Google, Amazon, Facebook, и LinkedIn — все проникли в потоки своих данных, и для всех них это стало основой успеха. Они были в авангарде. Но новые компании, такие как Bit.ly, следуют их путем. Будь то добыча вашей личной биологии, создание карт на основе опыта миллионов путешественников или изучение URL-адресов, передаваемых людьми друг другу, следующее поколение успешных бизнесов будет вращаться вокруг данных. Часть цитаты из речи Хэла Вэриана, которую никто не помнит, говорит именно об этом:

«Способность применять данные — способность понимать их, обрабатывать, извлекать из них ценность, визуализировать и соединять  станет очень важным навыком в следующие десятилетия.»

Данные — это действительно новый Intel Inside.

Оригинал: What is Data Science

Перевод: Светлана Фаткуллина

Что такое Data Science? Часть 4

Продолжение статьи «Что такое Data Science».

Как заставить данные рассказать историю

Изображение может быть лучше или хуже, чем тысяча слов, но оно безусловно лучше, чем тысяча чисел. Проблема большинства алгоритмов анализа данных в том, что результат их работы — это всего лишь набор чисел. Чтобы понять что означают эти цифры, и о чем они могут рассказать, нужно постоить график. Книга Эдварда Тафти Visual Display of Quantitative Information — это классика визуализации данных и основополагающий текст для тех, кто практикует data science. Но это не главная проблема. Визуализация имеет критическое значение для каждого этапа data science. По мнению Мартина Ваттенберга (Martin Wattenberg, @wattenberg), основателя Flowing Media, визуализация является ключевым моментом в приведении данных к нужному виду: если вы хотите понять, насколько плохи ваши данные, попробуйте отобразить их на графике. Визуализация также часто является первым шагом в анализе. Хилари Мэйсон (Hilary Mason) рассказывает, что смотрит на десяток или больше графиков рассеяния как только получает новый набор данных, пытаясь определить, действительно ли полученная информация будет ей интересна. Как только вы получили какие-то намеки на то, что могут сказать данные, можно продолжить анализировать их более детально.

Существует множество пакетов для построения графиков и представления данных в ином виде. Традиционно эффективен GnuPlot, в R есть достаточно обширный графический пакет, Processing — продукт Кейси Риса и Бена Фрая — тоже подойдет, особенно если вы создаете анимацию, демонстрирующую изменения во времени. В пакете Many Eyes от IBM многие визуализации — полноценные интерактивные приложения.

Блог Натана Йау (Nathan Yau) FlowingData — отличное место чтобы найти интересную нестандартную визуализацию. Одна из моих любимых — анимированная графика развития сети Walmart с течением времени. Именно здесь начинается искусство: важна не только эстетика визуализации сама по себе, но и то, как вы ее понимаете. Выглядит ли она как распространение раковых клеток по телу или вируса гриппа среди населения? Заставить данные рассказывать историю — не значит просто представить результаты. Нужно еще установить связи  с другими источниками данных. Распространяется ли успешная розничная сеть как эпидемия? И если да, дает ли нам это понимание того, как работает экономика? Это вопрос, который мы даже не могли бы себе задать несколько лет назад. Мощность компьютеров была недостаточной, данные были закрыты, а инструменты для работы с ними были неэффективны. Теперь же мы задаем себе этот вопрос регулярно.

Продолжение следует…

Оригинал: What is Data Science

Перевод: Светлана Фаткуллина

Что такое Data Science? Часть 3

Продолжение статьи «Что такое Data Science».

Работа с данными в масштабе

Все мы слышали о big data, «больших данных». Но «большие» — это, на самом деле, вводящая в заблуждение характеристика. Нефтяные, телекоммуникационные и другие ориентированные на работу с данными отрасли уже давно работали с огромными наборами данных. Но поскольку емкость носителей продолжает расти, «большие» сегодня — это «средние» завтра и «маленькие» на следующей неделе. Самое разумное определение «больших данных», которое мне приходилось слышать, звучит так: «большие данные» — это когда сам по себе размер данных становится частью проблемы. Мы говорим о проблеме данных объемом от гигабайтов до петабайтов — в определенный момент традиционные методы работы с данными в случае с такими объемами становятся непригодными для использования. Что же нам делать с этими «особенными» данными? Как считает Джеф Хаммербахер (Jeff Hammerbacher, @hackingdata), мы пытаемся построить «информационные платформы» или «пространства данных». Информационные платформы похожи на традиционные хранилища данных, но имеют свои особенности. Они предоставляют исследователям функционально насыщенные API и предназначены для изучения и понимания данных, а не для традиционной аналитики и генерации отчетов. Они поддерживают все форматы данных, включая самые «грязные», а внутреннее устройство моделей хранения  изменяется с увеличением понимания смысла данных. Многие создавшие платформы данных организации сочли необходимым выйти за рамки реляционной модели данных. Традиционные реляционные системы управления базами данных перестают быть эффективными на данном уровне. Управлять шардированием и репликацией сквозь полчище серверов реляционных баз данных — это сложно и медленно. Необходимость заранее определять модель данных конфликтует с реальностью — многочисленностью и неструктурированностью источников данных, когда вы можете не знать, что на самом деле важно, пока не проанализируете все доступные данные.

Реляционные базы данных созданы с учетом поддержки консистентности данных и сложных транзакций, которые можно легко откатить, если что-то пошло не так. В то время, как стопроцентная целостность играет решающую роль для многих приложений, она не так уж важна для тех задач, которые мы сейчас обсуждаем. Вам действительно так важно, 1010 у вас фолловеров в Твиттере или 1012? Точность привлекательна, но в случае с большинством приложений, основанных на данных (за исключением финансов), эта привлекательность обманчива. Большинство исследований данных играют роль в сравнении: когда вы спрашиваете, растут ли продажи в Северной Европе быстрее, чем в Южной Европе, вас мало волнует разница между 5,92 и 5,93 процентами ежегодного роста. Для эффективного хранения огромных наборов данных появляются новые виды баз данных. Их часто называют NoSQL или нереляционными, хотя оба эти термина не слишком удачны — они объединяют в одну группу принципиально разные продукты. Многие из этих баз данных являются логическими потомками Google BigTable и Amazon Dynamo, и созданы так, чтобы допускать распределение данных между большим количеством узлов, обеспечивать ослабленную консистентность, и имеют очень гибкую, пригодную к постоянном изменениям, модель данных. Cуществует пара десятков таких продуктов (почти все они с открытым исходным кодом), но есть и несколько зарекомендовавших себя лидеров:

  • Cassandra: разработана в Facebook, используется в Twitter, Rackspace, Reddit и на других крупных сайтах. Cassandra высокопроизводительна, надежна и обладает возможностью автоматической репликации. Имеет очень гибкую модель данных. Недавно появившаяся компания Riptano оказывает коммерческую поддержку.
  • HBase: часть проекта Apache Hadoop, сделана по образцу Google BigTable. Используется для очень больших баз данных (миллиарды строк, миллионы столбцов), распределенных среди тысяч узлов. Как и для Hadoop, коммерческую поддержку HBase осуществляет Cloudera.

Однако, хранение данных является лишь одной из частей построения информационной платформы. Данные полезны только тогда, когда с ними можно что-то сделать, поэтому огромные наборы данных порождают вычислительные задачи. Google популяризировал подход MapReduce, по сути являющийся реализацией принципа «разделяй и влавствуй», для распределения очень больших задач по очень большому вычислительному кластеру. На стадии Map задачи делятся на несколько одинаковых подзадач, которые затем распределяются среди множества процессоров. Затем, промежуточные результаты объединяются одной операцией Reduce. Оглядываясь назад, MapReduce кажется очевидным решением самой сложной задачи Google — проведения масштабного поиска. Легко распределить поиск по тысячам процессоров, а затем объединить результаты в единое множество ответов. Менее очевидно, что MapReduce оказался широко применим ко многим задачам анализа данных, от поиска до машинного обучения.

Самая популярная реализация MapReduce с открытым кодом — это проект Hadoop. Заявление Yahoo о том, что они создали самое большое в мире приложение на Hadoop, задействующее 10000-ядерный кластер под управлением Linux, вывело компанию на первый план. Многие ключевые разработчики Hadoop нашли пристанище в комании Cloudera, которая обеспечивает коммерческую поддержку платформы. Elastic MapReduce, продукт Amazon, позволяет значительно упростить работу с Hadoop без необходимости закупать стойками машины с Linux, предоставляя предварительно сконфигурированные образы Hadoop для своих кластеров EC2. Вы сможете активировать и деактивировать процессоры по необходимости, оплачивая только время их использования.

Hadoop выходит далеко за рамки одной из реализаций MapReduce, являясь ключевым элементом информационной платформы. Он включает в себя HDFS, распределенную файловую систему, обеспечивающую производительность и надежность для больших наборов данных, базу данных HBase, Hive, позволяющий разработчикам изучать данные из Hadoop при помощи SQL-подобных запросов; высокоуровневый язык для анализа данных Pig и другие компоненты. Если что-то и можно назвать универсальной информационной платформой, то это именно Hadoop.

Hadoop сыграл важную роль в обеспечении «быстрого» (agile) анализа данных. В разработке программного обеспечения «быстрые» методы связаны с ускоренными продуктовыми циклами, более тесным взаимодействием между разработчиками и потребителями и тестированием. Традиционный анализ данных был затруднен слишком длинными периодами отклика. Если вы начинали вычисления, закончиться они могли через несколько часов или даже дней. Но Hadoop (и, в частности, Elastic MapReduce) позволяет легко создавать кластеры, способные быстро выполнять расчеты по большим наборам данных. Быстрые вычисления облегчают задачу тестирования различных предположений, наборов данных и алгоритмов. Гораздо проще становится консультироваться с клиентами чтобы выяснить, задаете ли вы правильные вопросы, а также появляется возможность рассматривать интригующие гипотезы, от проверки которых раньше вы бы отказались из-за нехватки времени.

Hadoop по сути является системой пакетной обработки данных, но экспериментальный проект Hadoop Online Prototype (HOP) дает возможность потоковой обработки. Hadoop обрабатывает данные по мере их поступления и позволяет видеть промежуточные результаты практически в режиме реального времени. Анализ данных в режиме реального времени позволяет существовать таким функциям как trending topics на сайтах подобных Twitter. Эти функции могут работать и в режиме почти реального времени — отчеты о trending topics не требуют миллисекундной точности. Как и число фолловеров в Твиттере, trending topics должны быть актуальны на последние 5 минут или даже час. По словам Хилари Мэйсон (Hilary Mason, @hmason), ученого в области анализа данных (data scientist) из bit.ly, можно заранее провести большинство вычислений, а затем использовать один из экспериментов в MapReduce реального времени, чтобы получить окончательные результаты.

Машинное обучение (machine learning) — еще один важный инструмент ученых в области анализа данных (data scientists). Сейчас мы ожидаем в любом мобильном и веб-приложении увидеть систему рекомендаций. Разработка такой системы — как раз и есть типичная задача искусственного интеллекта. Вам не придется долго искать среди современных веб-приложений такие, в которых можно найти примеры использования классификации, обнаружения ошибок, сличения изображений (лежащего в основе Google Goggles и SnapTell) и даже распознавания лиц — мобильное приложение позволит вам сфотографировать кого-нибудь на свой телефон и установить личность этого человека, используя доступные в онлайне фото. Курс Machine Learning, который ведет Эндрю Нг (Andrew Ng), — один из самых популярных курсов в области информатики (computer science) в Стэнфордском университете, его слушают сотни студентов (рекомендую к просмотру это видео).

Нам доступно много библиотек для машинного обучения: PyBrain для Python, Elefant и Weka для Java и Mahout (вместе с Hadoop). Google недавно анонсировала Prediction API, который позволяет свободно использовать их собственные алгоритмы машинного обучения через RESTful-интерфейс. А для машинного зрения (computer vision) библиотека OpenCV — фактически стандарт в этой области.

Mechanical Turk также является важной частью инструментария. Машинному обучению почти всегда требуется обучающее множество — значительное количество заранее известных данных для разработки и настройки приложения. Mechanical Turk – отличный метод разработки обучающих множеств. Как только вы собрали массив данных для обучения (например, большую коллекцию публично доступных фото из Твиттера), вы можете нанять людей, которые за небольшую плату будут классифицировать их по категориям, обведут кругами лица, автомобили или что-нибудь еще, что вас интересует. Это отличный способ классифицировать несколько тысяч единиц данных, заплатив по несколько центов за каждую. Даже относительно объемная работа будет стоить всего несколько сотен долларов.

Хоть я и не акцентирую внимание на традиционной статистике, построение статистических моделей играет важную роль в любом анализе данных. По словам Майка Дрисколла (Mike Driscoll@dataspora), статистика — это грамматика Data Science. Очень важно, чтобы данные были согласованны. Мы все слышали шутку о том, что употребление в пищу соленых огурцов приводит к смерти, потому что все, кто умирают, ели соленые огурцы. Эта шутка не работает, если вы понимаете, что такое корреляция. Если говорить более конкретно, легко заметить, что одна реклама книги R in a Nutshell производит на 2 процента больше конверсии, чем другая. Но требуется обратиться к статистике чтобы понять, значимое это различие или же просто случайное отклонение. Data Science — это наука не только о существовании данных или предположениях о том, что они могут означать. Она также предполагает проверку гипотез и понимание, что сделанные на базе данных выводы верны. Статистика играет роль во всем: от традиционной бизнес-аналитики (business intelligence, BI) до понимания того, как работают аукционные системы рекламы в Google. Статистика стала базовым навыком. Она не заменяет новые методы из машинного обучения и других дисциплин, а дополняет их.

Несмотря на существование множества коммерческих статистических пакетов, язык программирования R с открытым исходным кодом и всеобъемлющая библиотека его расширений CRAN — основной инструмент. Хоть R и является необычным и причудливым языком, особенно для тех, у кого есть опыт в computer science, он максимально близок к универсальному методу выполнения большинства статистических работ. В R есть прекрасные графические средства, CRAN содержит парсеры для анализа большого количества типов данных, а новые расширения позволяют использовать R для распределенных вычислений. Если и есть какой-то один инструмент, способный предоставить пользователю полный спектр средств решения статистических задач, то это язык R.

Продолжение статьи

Оригинал: What is Data Science

Перевод: Светлана Фаткуллина