Лучшие датасеты для машинного обучения и анализа данных


Оглавление (нажмите, чтобы открыть):

Big Data. Machine Learning. Data Science.

Блог компании Даталитика. Интересное об искусственном интеллекте, машинном обучении, больших данных и ИТ-консалтинге

Подписаться на этот блог

Подписаться на обновления

Подготовка данных для алгоритмов машинного обучения

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Описание стека и некоторые вводные

В нашей статье мы будем использовать язык программирования python с сопутствующими ему библиотеки (sklearn, matplotlib, seaborn) и в качестве среды для работы jupyter notebook. Цель текущего поста — показать общие подходы к подготовке данных. То есть, те манипуляции, которые необходимо совершить перед загрузкой данных в модель машинного обучения. В идеальном мире у вас будет абсолютно чистый датасет без выбросов или пропущенных значений. Однако в реальном мире такие наборы данных встречаются крайне редко.
Далее будем рассматривать данные из Kaggle: «Mental Health in Tech Survey«.

Первый взгляд на датасет и понимание его специфики

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

Это даст нам первое представление о том, что есть наши данные. Далее посмотрим на размеры наших табличных данных. Выполнив построчно код ниже

Также было бы неплохо увидеть информацию о количестве каждого уникального значения для каждого столбца в наборе данных:

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

  • Столбец «age» содержит людей, которые еще не родились (отрицательные числа).
  • Столбец «age» содержит детей (например, 5-летнего возраста), которые вряд ли будут проводить опрос о своем рабочем месте.
  • Столбец «age» содержит возраст в 99999999999 лет
  • Существует 49 различных значений для «gender». Для примера, «Male» и «male» обозначают одно и то же, но в рассматриваются как две разные категории.
  • self_employed и work_interfere содержат несколько пропущенных полей.

Разделение на обучающую выборку и целевую переменную

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

Обработка пропусков в данных

Зачастую не существует шаблонных подходов к этой задаче, поскольку подходы во многом зависит от контекста и характера данных. Например, являются ли данные случайными пропусками или же есть скрытая связь между пропусками и некоторым другим записями в обучающем примере?
Один из способов простых способов решения этой проблемы — просто игнорировать или удалять строки, в которых отсутствуют данные, выбрасывая их из нашего анализа. Однако этот метод может быть плох из-за потери информации.
Еще один способ — это заполнение пропусков, где мы заменяем отсутствующее значение каким-либо образом. Базовые реализации просто заменят все отсутствующие значения средним, медианным, либо же константой.
Для начала выясним, что делать с пропущенными значениями, найденными в self_employed и work_interfere. В обоих случаях столбец содержит категориальные данные.
Возьмем следующий пример, который представляет собой небольшой набор данных, содержащий три признака (погодное условие, температуру и влажность), чтобы предсказать, могу ли я играть в теннис или нет.

id weather temperature humidity play tennis?
1 cloudy 60 NaN yes
2 rainy 75 80% NaN
3 cloudy NaN 50% no
4 sunny 65 40% yes

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

Scikit-learn предоставляет реализацию для обработки пропусков

Поиск неявных дубликатов

Как упоминалось ранее, для «gender» 49 различных значений, и было подозрение, что некоторые из этих значений не следует рассматривать как разные категории. В конечном итоге для простоты мы разделим данные на 3 категории: мужчина, женщина и другие (сюда вошли те категории, которые можно однозначно исключить из предыдущих двух, для примера — трансгендер).

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

Обнаружение выбросов

Как уже упоминалось ранее, оказалось, что для Age существуют значения, которые кажутся ошибочными. Такие как отрицательный возраст или чрезвычайно большие целые числа, могут негативно повлиять на результат работы алгоритма машинного обучения, и нам нужно будет их устранить.
Для этого возьмем нашу эвристическую оценку, в каком возрасте могут работать люди: от 14 до 100 лет. И все величины, не попадающие в этот диапазон, преобразуем в формат Not-a-Number.

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

Кодирование данных

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

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

Который возвращает следующие значения

Для кодирования этих данных, сопоставим каждое значение с числом.

Этот процесс известен как Label Encoding и sklearn может сделать это за нас.

Проблема с этим подходом заключается в том, что вы вводите порядок, который может отсутствовать в исходных данных. В нашем случае можно утверждать, что данные являются ранжированными («Very difficult» меньше «Somewhat difficult», который меньше «Very easy», который меньше «Somewhat easy»), но в большинстве своем категориальные данные не имеют порядка. Например, если у вас есть признак обозначающий вид животного, зачастую высказывание кошка больше собаки не имеет смысла. Опасность кодирования меток заключается в том, что ваш алгоритм может научиться отдавать предпочтение собак, кошкам из-за искусственных порядковых значений, введенных вами во время кодирования.

Общим решением для кодирования номинальных данных является one-hot-encoding.

Вместо того, чтобы заменять категориальное значение на числовое значение (кодирование меток), как показано ниже

id type numerical
1 cat 1
2 dog 2
3 snake 3
4 cat 1
5 dog 2
6 turtle 4
7 dog 2

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

id type is_cat is_dog is_snake is_turtle
1 cat 1
2 dog 1
3 snake 1
4 cat 1
5 dog 1
6 turle 1
7 dog 1

Вы можете выполнить one-hot-encoding непосредственно в Pandas или использовать sklearn, хотя sklearn немного более прозрачен, поскольку one-hot-encoding из него работает только для целых значений. В нашем примере (где входные данные представляют собой строки) нам нужно сначала выполнить кодировку меток, а затем one-hot-encoding.

Нормализация тренировочных данных

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

ML алгоритмы, которые требуют нормализации данных:

  • Логистическая регрессия
  • Метод опорных векторов
  • Нейронная сеть
  • PCA

  • Деревья принятия решений (и случайные леса)
  • Градиентный бустинг
  • Наивный Байес

Примечание: приведенные выше списки ни в коем случае не являются исчерпывающими, а просто служат примером.

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

  • Температура: от 270 K до 305 K
  • Влажность: от 0 до 1 (т. е. Влажность 30%, равная 0,3)
  • День года: от 0 до 365

Когда вы смотрите на эти значения, вы интуитивно нормализуете значения. Например, вы знаете, что увеличение на 0,5 (=50%) для влажности намного более значимо, чем увеличение на 0,5 для температуры. И если мы не будем нормализовать эти данные, наш алгоритм может научиться использовать температуру в качестве основного предиктора просто потому, что масштаб является наибольшим (и, следовательно, изменения в значениях температуры наиболее значительны для алгоритма). Нормализация данных позволяет всем признакам вносить одинаковый вклад (или, что более точно, позволяет добавлять признаки в зависимости от их важности, а не их масштаба).

Алгоритм нормализации

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

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

Существует несколько различных методов нормализации данных, самые популярные из них:

Нормализация Min-max устанавливает наименьшее наблюдаемое значение равным 0, а наибольшее наблюдаемое значение — 1.

Для выполнения нормализации мы можем использовать функции в sklearn.

Несколько замечаний по этой реализации:
На практике вы можете выбрать только определенные столбцы. Например, вам не нужно нормализовать фиктивные переменные из one-hot-encoding.

Разделение данных для обучения и тестирования

Разделение данных на две подвыборки

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


Подборка датасетов для машинного обучения

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

Меньше слов, больше данных.

  • Данные смертей и сражений из игры престолов — этот набор данных объединяет три источника данных, каждый из которых основан на информации из серии книг.
  • Глобальная база данных терроризма — Более 180 000 террористических атак по всему миру, 1970-2020.
  • Биткойн , исторические данные — данные биткойнов с интервалом в 1 минуту с избранных бирж, январь 2012 г. — март 2020 г.
  • FIFA 19 полный набор данных игроков — 18k + FIFA 19 игроков,

90 атрибутов, извлеченных из последней базы данных FIFA .

  • Статистика видео YouTube — ежедневная статистика трендовых видео на YouTube .
  • Обзор показателей самоубийств с 1985 по 2020 год — Сравнение социально-экономической информации с показателями самоубийств по годам и странам.
  • Huge Stock Market Dataset — исторические дневные цены и объемы всех американских акций и ETF.
  • Индикаторы мирового развития — показатели развития стран со всего мира.
  • Kaggle Machine Learning & Data Science Survey 2020 — Большое представление о состоянии науки о данных и машинного обучения .
  • Данные о насилии и оружии — полный отчет о более чем 260 тыс. американских инцидентов с применением оружия в 2013-2020 гг.
  • Рентгенография грудной клетки (пневмония) — 5,863 изображения, 2 категории.
  • Распознавание пола по голосу — эта база данных была создана, чтобы идентифицировать голос как мужской или женский, основываясь на акустических свойствах голоса и речи. Набор данных состоит из 3168 записанных голосовых сэмплов, собранных от мужчин и женщин.
  • Студенческое потребление алкоголя — данные были получены в ходе опроса учащихся по математике и португальскому языку на курсах в средней школе. Он содержит много интересной социальной, гендерной и учебной информации о студентах.
  • Набор данных о клетках малярии — сотовые изображения для выявления малярии.
  • Опросы молодых людей — данные о предпочтениях, интересах, привычках, мнениях и страхах молодых людей.
  • Мировые рейтинги университетов — исследуйте лучшие университеты мира.
  • Обнаружение мошенничества с кредитными картами — датасет по анонимным транзакциям кредитных карт, помеченные как мошеннические или подлинные.
  • Датасет болезней сердца — эта база данных содержит 76 атрибутов, таких как возраст, пол, тип боли в груди, артериальное давление в покое и другие.
  • Европейская футбольная база — 25 000+ матчей, атрибуты игроков и команд для европейского профессионального футбола.
  • Винные обзоры — 130k винных обзоров с разнообразием, местоположением, винодельней, ценой и описанием.
  • Ba >датасет для распознавания 26 семантически разных объектов вроде машин, велосипедов, пешеходов, зданий, уличных фонарей и т. д.
  • Comma.ai. Более семи часов езды по шоссе. Датасет включает информацию о скорости машины, ускорении, угле поворота руля и GPS-координатах.
  • Распознавание цветов — этот набор данных содержит 4242 изображения цветов. Сбор данных основан на данных flicr, изображениях Google , изображениях Яндекса .
  • Ежедневная рыночная цена каждой криптовалюты — исторические цены на криптовалюту для всех токенов.
  • Шоколадный рейтинг — Экспертный рейтинг более 1700 шоколадных батончиков.
  • Рынок медицинского страхования — данные о планах в области здравоохранения и стоматологии на рынке медицинского страхования США .
  • Звуки сердцебиения — классификация аномалий сердцебиения по стетоскопу.
  • База данных аниме рекомендаций — рекомендации от 76 000 пользователей на myanimelist.net
  • Изображения клеток крови — 12 500 изображений: 4 разных типа клеток.
  • Рентгенография грудной клетки — более 112 000 рентгенограмм грудной клетки от более чем 30 000 уникальных пациентов.
  • Отчеты об убийствах, 1980-2014 гг. — проект «Ответственность за убийства» — самая полная база данных об убийствах в Соединенных Штатах , доступных в настоящее время.
  • База данных подержанных автомобилей — более 370000 подержанных автомобилей. Содержание данных на немецком языке, поэтому нужно сначала перевести их, если вы не говорите на немецком.
  • Дом открытых данных правительства США — данные, инструменты и ресурсы для проведения исследований, разработки веб-приложений и мобильных приложений, разработки визуализаций данных.
  • Национальный центр профилактики хронических заболеваний и укрепления здоровья (NCCDPHP). Центр работает над снижением факторов риска хронических заболеваний.
  • Крупнейший в Великобритании сборник социальных, экономических и демографических ресурсов.
  • EconData — несколько тысяч экономических временных рядов, подготовленных рядом правительственных учреждений США и распространенных в различных форматах и ​​СМИ.
  • Центр исследования побережья — интересные данные о море и его биологическом составе. Здесь можно найти датасеты начиная с анализа данных модели Красного моря до исследования температуры и течений над узким южным калифорнийским шельфом.
  • Набор данных цифр языка жестов — Турция , Анкара , Айранджи, Анадолу. Набор данных о языке жестов средней школы.
  • Качество красного вина — простой и понятный практический набор данных для регрессионного или классификационного моделирования.
  • Таблицы английской футбольной премьер-лиги (1968-2020).
  • HotspotQA Dataset — датасет с вопросами-ответами, позволяющий создавать системы для ответов на вопросы более понятным способом.
  • xView — один из самых больших общедоступных наборов воздушных снимков земли. Он содержит изображения различных сцен со всего мира, аннотированных с помощью ограничительных рамок.
  • Labelme — Большой датасет аннотированных изображений.
  • ImageNet — Датасет изображений для новых алгоритмов, организованный в соответствии с иерархией WordNet, в которой сотни и тысячи изображений представляют каждый узел иерархии.
  • LSUN. — датасет изображений, разбитых по сценам и категориям с частичной разметкой данных.
  • MS COCO — крупномасштабный датасет для обнаружения и сегментации объектов.
  • COIL100 — 100 разных объектов, изображённых под каждым углом в круговом обороте.
  • Visual Genome — датасет с

    100 тыс. подробно аннотированных изображений.

  • Google ’s Open Images. — коллекция из 9 миллионов URL-адресов к изображениям, «которые были помечены метками, охватывающими более 6000 категорий» под лицензией Creative Commons.
  • Labelled Faces in the Wild — набор из 13 000 размеченных изображений лиц людей для использования приложений, которые предполагают использование технологии распознавания лиц .
  • Stanford Dogs Dataset — содержит 20 580 изображений из 120 пород собак.
  • Indoor Scene Recognition. — датасет для распознавания интерьера зданий. Содержит 15 620 изображений и 67 категорий.
  • Oxford’s Robotic Car — более 100 повторений одного маршрута по Оксфорду, заснятого в течение года. В датасет попали разные комбинации погодных условий, трафика и пешеходов, а также более длительные изменения вроде дорожных работ.
  • Cityscape Dataset — большой датасет , содержащий записи ста уличных сцен в 50 городах.
  • KUL Belgium Traffic Sign Dataset — более 10 000 аннотаций тысяч разных светофоров в Бельгии .
  • LISA Laboratory for Intelligent & Safe Automobiles — датасет с дорожными знаками, светофорами, распознанными средствами передвижения и траекториями движения.
  • Bosch Small Traffic Light Dataset — датасет с 24 000 аннотированных светофоров.
  • WPI datasets — датасет для распознавания светофоров, пешеходов и дорожной разметки.
  • Berkeley DeepDrive — огромный датасет для автопилотов. Он содержит более 100 000 видео с более чем 1100 часами записей вождения в разное время дня и в различных погодных условиях.
  • MIMIC-III — датасет с обезличенными данными о состоянии здоровья

    40 000 пациентов, находящихся на интенсивной терапии (демографическими данными, показатели жизнедеятельности, лабораторными анализами и лекарствами).

  • Amazon Reviews — Содержит около 35 млн отзывов с Amazon за 18 лет. Данные включают информацию о продукте и пользователе, оценки и сам текст отзыва.
  • Полезные ссылки по поиску датасетов:

    • Конечно же Kaggle — место встречи всех любителей соревнований по машинному обучению .
    • Google Dataset Search — поиск датасетов по всей сети интернет. Также, при необходимости можно добавить свои наборы данных.
    • Machine Learning Repository — набор баз данных, теорий предметной области и генераторов данных, которые используются сообществом машинного обучения для эмпирического анализа алгоритмов машинного обучения .
    • VisualData — поиск датасетов для машинного зрения, с удобной классификацией по категориям.
    • DATA USA — полный набор по общедоступным данным США c визуализацией, описанием и инфографикой.

    На этом наша короткая подборка подошла к концу. Если у кого-то есть, что дополнить или поделиться — пишите в комментариях.

    Подпишись на канал «Нейрон» в Телеграме (@neurondata) ― там свежие статьи и новости из мира науки о данных появляются каждую неделю. Спасибо всем, кто помогает с полезными ссылками, особенно Игорю Мариарти , Андрею Бондаренко и Матвею Кочергину .

    Наиболее полный список инструментов для анализа данных и машинного обучения

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

    Огромное разнообразие различных платформ и инструментов для анализа данных может поставить в тупик любого специалиста, перед которым стоит задача построения бизнес процесса на основе продвинутого анализа данных предприятия. Сегодня машинное обучение и глубокий анализ данных уже не является чем-то новым. Это обязательный пункт, без которого бизнес не сможет нормально конкурировать в современном мире. Анализ собираемой информации — ключ к улучшению показателей бизнеса. Но для этого нужно располагать и оперировать инструментами для анализа данных. Какими? Давайте рассмотрим этот вопрос. Мы собрали для вас наиболее полный список представленных на рынке фреймворков, платформ, решений и систем продвинутой аналитики.

    Фреймворки

    Кажется, что низкая стоимость распределенных вычислений и быстрота обработки делают Hadoop для Больших Данных примерно таким же по значимости решением, как и все остальные вместе взятые программные продукты. Любой перечень платформ Big Data с открытым исходным кодом действительно начинается с «железнорожденного слона», но Hadoop — не единственный краеугольный камень.

    1 Hadoop

    Платформа Hadoop представляет собой open-source фреймворк, позволяющий сделать так, чтобы приложение разделилось на несколько фрагментов, и каждый фрагмент обрабатывался на любом узле (компьютере, «ноде») в кластере вычислительной системы.

    Данная платформа состоит из модулей, которые работают вместе с целью создания единого программного каркаса. Основными модулями являются:

    • Hadoop Common;
    • Hadoop YARN;
    • Hadoop Distributed File System (HDFS);
    • Hadoop MapReduce.

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

    Интересный факт. Хадуп — именно так сын одного из изобретателей фреймворка назвал желтого игрушечного слона.

    Первый блок (Hadoop Common) данного инструмента — это набор инфраструктурных программ и элементов, связующее ПО. YARN — система планирования заданий и управления ресурсами кластеров. На HDFS и MapReduce (в контексте Hadoop) следует остановиться поподробнее.

    Распределенная файловая система выполняет 2 главные задачи: запись метаданных и хранение собственно данных. Принцип работы HDFS состоит в распределении файлов по нескольким узлам в кластере. Так, с метаданными работает сервер NameNode, с собственно данными — DataNode. HDFS является весьма надежной системой, ведь в случае уничтожения половины узлов кластера, теряется всего 3% информации.

    «Фишка» с локальными вычислениями на машинах с известными нам блоками данных стала возможна благодаря MapReduce. Реализация данной парадигмы в свою очередь основана на раскрытии сервером NameNode информации о расположении блоков данных на компьютерах. Принцип работы MapReduce состоит из двух шагов: map и reduce. Вот как происходит процесс:

    1. Map: получение входных данных главным узлом (master node) -> разделение информации на части -> передача данных рабочим узлам (worker node).
    2. Reduce: получение главным узлом ответа от рабочих узлов -> формирование результата.


    Фреймворк Hadoop де-факто является стандартным ПО для работы с технологиями анализа Больших Данных. Однако его следует использовать тогда, когда есть реальная «Big Data problem». Компания начинает работать с объемом данных, с которыми текущие решения Big Data не справляются? Нужен Hadoop. Не знаете, хватит ли текущего объема хранилища для будущих задач? С Hadoop можно просто дополнить кластер новыми машинами — система это «пережует и проглотит» без проблем. Переживаете за сохранность информации в случае выхода из строя ряда серверов? Не следует: если какой-нибудь узел «ляжет», управление процессом автоматически передается другому компьютеру.

    Hadoop сейчас эффективно использует самая крупная в Европе компания, которая занимается тартеггингом на основании кликов (т. н. «ad targeting»). Главный телекоммуникационный провайдер Старого Света Deutsche Telekom также прибегает к применению фреймворка Hadoop, который оказался в 50 раз дешевле старой платформы.

    Но не забывайте, что инструменты для анализа данных на основании Hadoop имеют свои недостатки. Во-первых, платформа недостаточно защищена от кражи информации. Во-вторых, работать с Hadoop весьма тяжело, ведь фреймворк требует знания MapReduce, в то время как большинство специалистов используют SQL-технологии. И, наконец, из-за огромного ажиотажа вокруг «слона», подогреваемого отделом маркетинга Hortonworks, данная платформа изменяется слишком динамично.

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

    2 Spark

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

    Spark требует наличия менеджера кластера и распределенной системы хранения данных. Если вопрос управления кластерами решается путем использования нативных средств, Hadoop YARN или Apache Mesos (при работе с многоузловыми кластерами), то распределенная система хранения данных может быть исключительно посторонней. Именно по этой причине в большинство проектов с использованием технологий Big Data, Spark устанавливается поверх «слона»: связка из передовых приложений для аналитики от Spark и Hadoop Distributed File System позволяет программам на кластерах Hadoop выполняться до 100 раз быстрее в RAM и до 10 раз быстрее на ROM.

    В платформе Spark вводится важная абстракция под названием Resilient Distributed Dataset (RDD), которая представляет собой набор read-only объектов, распределенных по узлам кластера. RDD выполняет 2 класса операций: преобразования и действия.

    Преобразования не возвращают одного значения, а меняют метаданные и возвращают новый RDD. К преобразованиям относятся операции map, filter, flatMap, groupByKey, reduceByKey, aggregateByKey, pipe, coalesce.

    Действия возвращают новое значение. Когда функция действия вызвала объект RDD, возвращаются все запросы по обработке данных и результат по состоянию на текущее время. К операциям действия относят reduce, collect, count, first, take, countByKey, foreach.

    Как видно, помимо map и reduce, которые присутствуют в модуле Hadoop MapReduce, Spark предлагает еще ряд других операций. Поэтому при разработке приложений с технологиями Больших Данных, Spark чаще всего заменяет именно Hadoop MapReduce, а не весь Hadoop.

    Стоит отметить, что в специфических задачах, построенных на многократных обращениях к одному набору данных, «чистый» Spark работает быстрее Hadoop до 30 раз. Например, это интерактивный дата-майнинг и итерационные алгоритмы, которые активно используются в системах машинного обучения.

    Архитектура Spark включает в себя 3 главных компонента:

    • хранилище данных;
    • API;
    • менеджер кластера.

    Интерфейс программирования приложений позволяет разработчикам создавать программное обеспечение для Больших Данных на основе Spark, используя стандартный API. Spark по умолчанию поддерживает Java, Scala и Python, благодаря чему можно выбрать язык для написания приложений.

    Кроме того, Spark включает несколько библиотек, таких как Spark SQL (позволяет выполнять SQL-запросы над данными), Spark Streaming (надстройка для обработки потоковых данных), Spark MLlib (набор библиотек машинного обучения), GraphX (предназначена для распределенной обработки графов). А механизм выполнения типа «направленный ациклический граф» (DAG) позволяет фреймворку Spark создавать эффективные планы запросов на преобразование данных.

    Итого: «Чистый» Spark наилучшим образом проявляет себя в машинном обучении и при работе с итерационными задачами. Наиболее часто используется поверх Hadoop, заменяя модуль MapReduce и добавляя большее количество операций.

    3 Storm

    Фреймворк Storm можно причислить к числу лучших решений для работы с Большими Данными, когда речь идет о платформах с открытым исходным кодом. В отличие от Hadoop и Spark, ориентированных на пакетную обработку больших наборов данных, система Storm предназначена для распределенной обработки в режиме реального времени и не зависит от языка программирования.

    Рабочие процессы в «Шторме» называются «топологиями». Эти топологии организованы по принципу направленного ациклического графа (DAG) и выполняются до выключения пользователем или появления неустранимой ошибки. Storm поддерживает создание топологий, которые преобразуют незавершенные потоки данных. Эти преобразования, в отличие от заданий Hadoop, никогда не прекращаются, а продолжают обрабатывать данные по мере их поступления.

    Нативный Storm не может использоваться для разработки приложений Big Data поверх типичных кластеров Hadoop. Для координации задач между узлами в кластере используется Apache ZooKeeper с его мастер (миньон) воркером. Тем не менее, Yahoo! и Hortonworks трудятся над созданием библиотек для запуска «Шторма» на вершине Hadoop 2. x кластеров YARN. Также отметим, что данный фреймворк способен читать и записывать файлы с/на HDFS.

    Основными элементами топологии Strom являются воронки (spouts) и сита (bolts). Воронки генерируют потоки данных в форме неизменяемых наборов пар «ключ-значение», называемых кортежами (tuples), а сита выполняют преобразование этих потоков. Подобно MapReduce, сита могут решать традиционные задачи или выполнять более сложные действия (одношаговые функции): фильтрацию, агрегирование или связь с внешними объектами типа баз данных.

    В Storm реализована концепция гарантированной обработки сообщений. Это значит, что каждый кортеж, испускаемый из воронки, будет обработан; если он не обработан в течение некоторого времени, то Storm вновь выпускает его из воронки. Другой важной особенностью экосистемы Storm является достаточное количество воронок, настроенных на прием данных от всех видов источников. Даже для узкоспециализированных приложений с применением технологий Больших Данных не обязательно придется создавать собственную воронку: здесь можно найти нужный споут среди огромного количества болтов — от потокового Twitter API до Apache Kafka.

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

    Система распределенных вычислений Storm станет хорошим выбором, если вы начинаете проект с нуля со специально построенным кластером, а ваши требования сосредоточены на потоковой обработке данных и сложной системе обработки событий (CEP). В большинстве случаев, Storm используют в сочетании со Spark наряду с платформой Hadoop. Spark при таком раскладе заменяет Hadoop MapReduce, а Storm — Hadoop YARN.

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

    Базы данных

    Несмотря на то, что описанные в разделе «Фреймворки» платформы для анализа данных могут функционировать в автономном режиме и подходят для разработки любых приложений, они (чаще всего Hadoop) выполняют роль простого хранилища данных. Отсюда возникает необходимость в СУБД, которые, ввиду табличной организации данных, упрощают аналитику и содержат необходимые инструменты для Big Data-анализа.

    4 Hive

    Hive — хранилище данных с открытым исходным кодом, предназначенное для выполнения запросов и анализа больших объемов данных в файлах Hadoop. Это самая популярная СУБД на SQL-платформе, которая в качестве языка запросов использует HiveQL. HiveQL автоматически переводит SQL-подобные запросы в MapReduce или Tez, или Spark jobs.

    Hive выполняет 2 основные функции: реферирование и формирование запросов. Данная СУБД также допускает сериализацию/десериализацию данных и увеличивает гибкость при проектировании схемы путем использования системного каталога Hive-Metastore.

    Согласно официальной документации, Hive не предназначен для работы с OLTP и не предлагает обработку запросов в режиме реального времени. Он лучше всего подходит для пакетной обработки транзакций на больших наборах наподобие веб-журналов (т. н. append-only данные).

    Hive на LLAP (Live Long и Process) использует постоянные Query-сервера с интеллектуальным кэшированием в оперативной памяти, чтобы избежать пакетно-ориентированной задержки со стороны Hadoop и обеспечить малое время отклика. В то же время, Hive на Tez продолжает обеспечивать отличную производительность пакетного запроса на петабайтах данных.

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

    Архитектура ETL-фреймворка Hive следующая:

    1. CLI, JCDB, ODBC или любой другой графический веб-интерфейс. Образует внешние интерфейсы по отношению к интерфейсу Hive для установки связи между пользователем и HDFS.
    2. Metastore Thrift API. Выполняет роль системного каталога и отслеживает, какие данные хранятся в той или иной части HDFS.
    3. Драйвер. Это основа Hive-архитектуры, ответственная за сбор, оптимизацию и выполнение инструкций HiveQL.
    4. Thrift Server. API-клиент для выполнения операторов HiveQL.

    Главные причины того, что Hive остается популярным:

    • Работать с Hive может любой, кто знаком с SQL: HiveQL не потребует усилий для того, чтобы переучиться.
    • Hive поддерживается веб-интерфейсом с открытым исходным кодом — Hue.
      • Он обеспечивает повышенную производительность по сравнению с MapReduce за счет векторизации запросов c использованием движка Tez.
    • Благодаря отсутствию необходимости писать длинный Java MapReduce код, сокращает время на программирование.

    5 Impala

    Impala — главный конкурент Hive. Impala — это автономный open-source механизм выполнения SQL-запросов, который работает на Hadoop-кластерах. Система обеспечивает быстрые, интерактивные SQL-запросы непосредственно к данным Hadoop, которые хранятся в HDFS или HBase. В дополнение к использованию той же унифицированной платформы хранения данных, что и у Hive, в Impala применяются те же метаданные, SQL-синтаксис (HiveQL), драйвер ODBC и даже пользовательский интерфейс, как у главного конкурента.

    Однако Impala никогда не использовала классический MapReduce, а изначально исполняла запросы на своем собственном движке. «Суть системы Hive заключается в том, что она просто преобразует/компилирует SQL-запросы в программу на языке Java с использованием MapReduce-функций, которая затем исполняется в пакетном режиме аналогично другим Hadoop-задачам. Таким образом, Hive добавляет дополнительный шаг перед использованием MapReduce, тогда как система Impala полностью заменяет MapReduce», — говорит гендиректор Cloudera Майк Олсон.

    Согласно официальной документации, Impala является дополнением к инструментам для работы с Большими Данными, предназначенных для выполнения запросов. Механизм Impala не заменяет фреймворки пакетной обработки, построенные на MapReduce (тот же Hive), которые лучше всего подходят для длительных пакетных обработок транзакций.

    В среде Cloudera механизм Impala позиционируется таким образом:

    Impala состоит из следующих компонентов:

    1. Клиенты. Объекты, включая Hue, клиенты ODBC и JDBC, а также Impala Shell, которые могут взаимодействовать с Impala. Эти интерфейсы, как правило, используются для отправки запросов или выполнения администрирующих задач, вроде подключения к Impala.
    2. Hive Metastore. Содержит информацию о доступных для Impala данных. С помощью Metastore, система узнает, какие базы данных доступны и какова их структура.
    3. Impala. Процесс, функционирующий на DataNodes, координирует и выполняет запросы. Каждый экземпляр Impala может получать, планировать и координировать запросы от клиентов. Запросы распределяются между узлами Impala, после чего эти узлы выполняют параллельные фрагменты запросов, выступают в качестве «воркеров».
    4. HBase и HDFS. Запрашиваемое хранилище данных.

    К «плюсам» Impala относят:

    • Знакомый по другим методам обработки SQL-интерфейс.
    • Возможность запрашивать большие объемы данных у Hadoop.
    • Распределенные запросы в среде кластера для удобного масштабирования.
    • Возможность совместного использования файлов между различными составляющими без копирования, экспорта или импорта.
    • Единую систему для анализа и обработки Больших Данных: клиенты могут избежать дорогостоящего моделирования.

    Подводя итоги по данной системе, можно провести параллель между Hive и Impala. Механизм Impala не поддерживает отказоустойчивость: если одна машина выходит из строя, весь запрос должен быть запущен повторно. С другой стороны, Impala выполняет эти небольшие запросы в 10−50 раз быстрее Hive. Даже если узел «падает» и должен быть перезапущен, общее время выполнения все равно намного меньше, чем у Hive. Таким образом, Impala имеет большее преимущество в запросах, где среда выполнения является достаточно малой, чтобы возможность «падения» узла была минимальной.

    Обе системы достаточно быстры, имеют неплохой функционал и активно развиваются, ведь они выпущены лучшими компаниями по разработке решений для Big Data — Cloudera и Apache. Hive, однако, требует гораздо больше внимания и ухода. Для корректного запуска скрипта, часто нужно установить десяток переменных окружения, интерфейс JDBC в виде HiveServer2 работает откровенно плохо, а выбрасываемые ошибки мало связаны с настоящей причиной проблемы. Impala также не идеальна, но в целом гораздо приятней и более предсказуема.

    6 Presto

    Presto является распределенным open-source механизмом SQL-запросов (SQL query engine) для выполнения интерактивных аналитических запросов к источникам данных разных размеров: от гигабайт до петабайт. Presto — это система для интерактивной аналитики Больших Данных, которая была разработана с нуля корпорацией Facebook и отличается скоростью работы, характерной для коммерческих хранилищ данных.

    Механизм позволяет запрашивать данные с места их «обитания», включая Hive, Cassandra, реляционные БД и даже проприетарные хранилища данных. Один запрос Presto может объединять данные из нескольких источников, что позволяет проводить анализ Big Data в масштабах всей организации. Согласно сведениям официальных источников, Presto ориентирован на аналитиков, которые ожидают получить отклик в пределах нескольких секунд или минут.

    Ниже приведенная диаграмма демонстрирует упрощенную архитектуру Presto. Клиент отправляет SQL-запрос координатору Presto. Координатор обрабатывает, анализирует и планирует выполнение запроса. Планировщик соединяет исполнительный конвейер, распределяет работу по узлам, находящимся ближе к данным, и следит за прогрессом. Клиент извлекает данные из выходной ступени, которая в свою очередь извлекает данные из нижележащих ступеней.

    Исполнительная модель Presto кардинально отличается от Hive и MapReduce. Так, Hive преобразовывает запросы в несколько этапов, которые являются задачами MapReduce, выполняющимися друг за другом. Каждая задача считывает входные данные с диска и записывает промежуточный результат выхода обратно на диск. В то же время Presto использует пользовательский запрос и исполнительный механизм с операторами, предназначенными для поддержки семантики SQL. В дополнение к улучшенной планировке, вся обработка выполняется в оперативной памяти. А наличие конвейеров между ступенями сети предотвращает ненужные вводы/выводы и сопутствующие накладные расходы. Конвейерная исполнительная модель запускает несколько ступеней сразу и переправляет данные с одной ступени на другую, как только они становятся доступными. Благодаря этому, задержка для многих типов запросов сокращается в разы.

    Presto поддерживает ANSI SQL, а это значит, что вдобавок к JSON, ARRAY, MAP и ROW, можно использовать стандартные типы данных SQL, функционал оконного интерфейса, статистические и аппроксимативные агрегатные функции.

    По сравнению с Hive, у Presto есть недостаток: более активное участие в разработке, построении и развертывании определенных пользователем функций. Тем не менее, Presto считается одним из лучших механизмов с открытым исходным кодом для анализа Больших Данных.

    7 Drill

    Drill — еще одно open-source SQL-решение, в рамках которого развивается механизм для организации исполнения SQL-запросов над частично структурированными данными, хранящимися в NoSQL. К числу таковых принадлежат HBase, MongoDB, MapR-DB, HDFS, MapR-FS, Amazon S3, Azure Blob Storage, Google Cloud Storage, Swift, NAS и локальные файлы. Один запрос может объединить данные из нескольких хранилищ. Например, пользователь может объединить сведения с коллекции профиля пользователя в MongoDB с каталогом журналов событий в Hadoop.

    Drill поддерживает стандарт SQL. Бизнес-аналитики и специалисты по Большим Данным могут использовать привычные инструменты для анализа Big Data вроде Tableau, Qlik, MicroStrategy, Spotfire, SAS и Excel, чтобы взаимодействовать с нереляционными БД за счет использования штатных интерфейсов JDBC/ODBC.

    Обработка запроса в Drill обычно включает следующие шаги:

    1. Drill-клиент формирует запрос. В качестве клиента могут выступать интерфейсы JDBC/ODBC, интерфейс командной строки или REST API. Любой Drillbit (один из составных элементов экосистемы) в кластере может принимать запросы от клиентов. Концепция «ведущий-ведомый» (master-slave) отсутствует.
    2. Затем Drillbit анализирует и оптимизирует запрос, после чего генерирует распределенный план запроса, который заточен под быстрое и эффективное выполнение.
    3. Принимающий запрос Drillbit становится ведущим узлом для этого запроса. От Zookeeper он получает список доступных узлов Drillbit в кластере. Ведущий узел определяет подходящие машины для выполнения различных фрагментов запроса, максимально локализует данные.
    4. Ведущий узел определяет порядок выполнения фрагментов запроса на отдельных узлах в соответствии с планом выполнения.
    5. Отдельные узлы заканчивают выполнение этих фрагментов и возвращают данные к ведущему узлу Drillbit.
    6. Ведущий узел передает результаты назад клиенту.

    Drill — далеко не первая в мире система обработки запросов, но точно одна из первых, которая сочетает гибкость и скорость. А все благодаря принципиально новой архитектуре, производительность которой не идет в ущерб гибкости, предоставляемой JSON. Конструкция Drill включает в себя:

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

    Аналитические платформы

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

    8 RapidMiner

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

    Огромное преимущество RapidMiner состоит в том, что для его использования не нужно знать программирование. Здесь реализован принцип визуального программирования, сам код писать не нужно, как не нужно проводить сложные математические вычисления. Все происходит следующим образом: пользователь закидывает данные на рабочее поле, а потом просто перетаскивает операторы в GUI, формируя процесс обработки данных. Разбираться в сгенерированном коде можно, но в большинстве случаев не нужно.

    Данная платформа для анализа Больших Данных «дружит» с Hadoop, правда, если использовать платное расширение RapidMiner Radoop. Расширение требует, чтобы кластер Hadoop был доступен от клиента под управлением RapidMiner Studio. Диаграмма ниже демонстрирует базовую архитектуру Radoop на Studio:

    «Майнер» является расширяемой системой: поддержка языка R и полностью интегрированные операторы системы WEKA позволяют работать на низком уровне.

    Интересная «фишка» RapidMiner — анализ тональности текста — становится доступной с установкой удобной надстройки от стороннего поставщика AYLIEN. Скачать ее можно с RapidMiner Marketplace. AYLIEN, например, может собрать данные из Twitter, а затем проанализировать твиты и выставить им оценку по шкале настроения: положительную, отрицательную или нейтральную.

    Экосистема RapidMiner очень быстро развивается, подстраиваясь под новые платформы (релиз о поддержке базового функционала Spark вышел спустя 2 (!) месяца после выпуска платформы). В связи с этим, от пользователей требуется четкое понимание того, что они делают и с помощью каких из сотен инструментов это делается. Для новичков есть отличная стартовая страница. За помощью также можно обращаться в сообщество RapidMiner.

    9 IBM SPSS Modeler

    Платформа IBM SPPS Modeler — коммерческий конкурент RapidMiner, который характеризуется низким порогом входа для начинающих. Понятность для новичков обеспечивается режимами «автопилота». Авто-модели (Auto Numeric, Auto Classifier) перебирают несколько возможных моделей с разными параметрами, определяя среди них лучшие. Не слишком опытный аналитик может построить на таком решении адекватную модель.


    К основным особенностям SPSS следует отнести:

    1. Автоматизированное моделирование: за один проход можно протестировать несколько методов моделирования, сравнить результаты и выбрать модель для развертывания.
    2. Геопространственная аналитика: с целью лучшего проникновения в суть задачи и увеличения точности прогнозирования, учитываются широта и долгота, почтовые индексы и адреса, объединенные с текущими и историческими данными.
    3. Поддержка технологий с открытым исходным кодом: для улучшения аналитики, можно использовать R, Python, Spark, Hadoop и другие опенсорсные технологии.
    4. Аналитика текстовой информации: путем анализа неструктурированных текстовых данных, охватываются ключевые понятия, темы, настроения и тенденции.

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

    Все достоинства IMB SPSS Modeler может затмить один недостаток, который отсекает крупную аудиторию пользователей. Речь о том, что данная система — это не лучший инструмент для анализа Больших Данных. Атрибуты, которые делают SPSS простым в использовании, слишком ограничены для масштабных подходов при работе с технологиями Big Data. В совсем плохих случаях, SPSS от перегрузки просто «падает».

    Тем не менее, IBM SPSS Modeler остается популярным решением благодаря простоте использования и незатейливому интерфейсу.

    10 KNIME

    KNIME — еще одна бесплатная система для интеллектуального анализа данных, которая даже в базовой версии обладает хорошим функционалом. Подобно RapidMiner, KNIME предлагает интуитивно понятную рабочую среду без необходимости программировать. Здесь также есть ряд операторов, присутствующих в RapidMiner (в KNIME они называются «узлами»).

    Если говорить об анализе текста, данная платформа позволяет выполнять следующие задачи:

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

    KNIME также «умеет» считывать информацию напрямую из Twitter и работать с неструктурированными файлами вроде томов CSV.

    Кроме этого, есть deep learning, веб-анализ, обработка изображений, анализ социальных сетей и другое.

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

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

    11 Qlik Analytics Platform

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

    Аналитическая платформа Qlik предлагает полный доступ к ассоциативной машине индексации данных QIX, которая позволяет устанавливать взаимосвязи между несколькими источниками информации, которые, как правило, скрыты в иерархических моделях данных. «Фишка» в том, что именно QIX применяется компанией Qlik при создании своих остальных решений. QIX Engine использует столбчатое расположение данных в оперативной памяти, что обеспечивает высокую производительность при их индексации и сжатии. На практике это позволяет проводить data mining в более свободной форме, без необходимости предварительно определять возможные пользовательские запросы. В свою очередь, программисты могут более быстро создавать приложения на основе технологий Больших Данных, а пользователи — оперативно получать ответы.

    Архитектура Qlik Analytics Platform включает в себя следующие элементы:

    1. Консоль управления Qlik (QMC) и Dev Hub.
    2. Интерфейсы программирования приложений (API) и наборы средств разработки (SDK) Qlik Sense.
    3. Вспомогательные службы Qlik Engine и Qlik Sense.

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

    12 STATISTICA Data Miner

    Это платформа российской разработки. Система предоставляет наиболее полный набор методов для Data Mining. В частности, в STATISTICA Data Miner реализованы инструменты предварительной обработки, фильтрации и чистки данных, что позволяет эффективно отбирать признаки из сотен тысяч возможных предикторов.

    Особенностью данной платформы является возможность получения непосредственного доступа к базам данных даже без выполнения явных операций экспорта/импорта. ПО «умеет» обрабатывать, считывать и записывать данные почти со всех стандартных файлов. Сами прогнозные модели могут быть сгенерированы в различных форматах (PMML, C++, C#, Java, SAS, хранимые процедуры баз данных).

    Пользователи отмечают, что благодаря встроенному Мастеру Data Mining, выполняющему автоматическое построение моделей, STATISTICA Data Miner отлично подходит людям, не связанным с разработкой ПО (например, аналитикам по маркетингу). Тем не менее, широкий набор методов кластеризации, архитектур нейронных сетей, деревьев классификации и регрессии, многомерного моделирования, анализа последовательностей, ассоциаций и связей делает данную платформу мощным инструментом в руках эксперта.

    Отметим также, что недавно компания представила новый продукт — STATISTICA Big Data Analytics, который, как понятно из названия, дополняет список ПО для анализа Больших Данных. Данная платформа является масштабируемой; она может создавать выборки с помощью MapReduce, искать на движке Lucene/SOLR, проводить аналитику Mahout, работать в «облаке» и с текстом Natural Language Processing. А если интегрировать STATISTICA Big Data Analytics с корпоративной версией STATISTICA Enterprise, это позволит внедрить аналитику Больших Данных на уровне предприятия.

    13 Informatica Intelligent Data Platform

    Компания Informatica называет свою разработку «путем виртуальных данных». Informatica Intelligent Data Platform предоставляет интеллектуальные и управляющие сервисы, которые могут работать с большинством популярных данных и форматов: веб, социальные сети, машинные журналы.

    Данная интеллектуальная платформа для анализа данных включает в себя Vibe — виртуальный механизм, который позволяет произвести интеграцию сопоставленных данных один раз, а затем запускать их в различных средах. Подобно STATISTICA Data Miner, Informatica IDP базируется на интерфейсе типа drag-and-drop, пользователю нужно лишь перетаскивать на рабочую среду необходимые элементы, а все инструкции генерируются системой автоматически.

    Главной «фишкой» Informatica Intelligent Data Platform является подход, касающийся ввода структурированных, частично структурированных и неструктурированных данных на одной семантической волне. Понимание между этими данными возможно благодаря подходам мапинга, эвристики и сопоставлению с образцом.

    Компания Informatica, которая считается одним из главных игроков в сфере разработки аналитических инструментов для работы с технологиями Big Data, гордится тем, что IDP является единственной платформой, получившей награды как от Gartner, так и Forrester почти во всех категориях управления данными.

    Архитектурно Informatica Intelligent Data Platform состоит из 3 слоев:

    1. Vibe — это упомянутый выше движок управления любым типом данных. Поскольку сейчас Vibe является встроенным механизмом, он предоставляет всеобщий доступ к данным, независимо от их местоположения или формата. Так как Vibe исполнен в виде виртуальной машины, движок может работать на любой локальной серверной платформе, кластерах Hadoop или облачном сервисе.
    2. Data Infrastructure. Инфраструктурный слой данных располагается над виртуальной машиной Vibe. Он включает в себя все сервисы, предназначенные для автоматизации непрерывной подачи «чистых», безопасных и подключенных данных в любом масштабе к любой платформе, кластерам Hadoop или облачному сервису.
    3. Data Intelligence. Интеллектуальный слой данных находится поверх Data Infrastructure. Он собирает метаданные, семантические данные и прочую информацию со всей платформы. Как только данные собраны, Data Intelligence сегментирует их для упрощения дальнейшей обработки. Роль данного слоя — предоставить методы для обработки Больших Данных. Речь идет об аналитике, business intelligence (BI), а также operational intelligence (OI) в режиме реального времени. А с недавнего времени Data Intelligence расширила список «навыков» Informatica IDP машинным обучением.

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

    Стоит отметить, что партнерами Informatica по решениям на базе IDP являются компании Cognizant, Capgemini UK, Datawatch, MicroStrategy, Qlik, Tableau и Ultimate Software.

    14 World Programming System

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

    WPS является интерпретатором кода SAS. Главное преимущество данной платформы состоит в том, что она намного дешевле любого ПО для анализа Больших Данных производства SAS. Таким образом, World Programming System — самый выгодный способ запустить программу на SAS без использования программных продуктов SAS. Но поскольку у WPS есть определенные недочеты с чтением/записью формата .sas7dbat, рекомендуется конвертировать данные в их собственный формат. К тому же, у WPS есть собственный редактор, который по части написания и отладки кода даже лучше, чем SAS Enterprise Guide.

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

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

    15 Deductor

    Deductor — аналитическая платформа, разработанная компанией BaseGroup Labs. В Deductor встроены самые востребованные алгоритмы анализа (деревья решений, нейронные сети, самоорганизующиеся карты ), есть десятки способов визуализации и предусмотрена интеграция со множеством источников/приемников данных.

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

    В Deductor реализован сценарный подход, предполагающий визуальное проектирование логики обработки при помощи мастеров без программирования. Аналитики получают все технологии анализа: Data Warehouse, OLAP, Data Mining и могут создавать сценарии анализа без привлечения аналитическая платформа предусматривает очистку данных, в частности, их дедупликацию, проведение оценки схожести объектов, обогащение данных и объединение в единую корректную запись.

    С Deductor можно:

    1. Извлекать данные из разнородных источников, консолидировать их в едином хранилище и отображать в виде отчетов и OLAP-кубов.
    2. Находить скрытые закономерности и оценивать качество моделей с помощью Data Mining.
    3. Сегментировать объекты анализа, определять целевые рынки, оптимизировать работу с потребителями и более рационально использовать ресурсы.

    Платформа поставляется в 3 версиях: Academic, Professional и Enterprise. Первый вариант является абсолютно бесплатным и предназначен для образовательных целей, второй ориентирован на профессиональный анализ данных в рамках рабочих групп, третий — на промышленное корпоративное использование.

    16 SAS Enterprise Miner

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

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

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

    Графический интерфейс реализован по принципу «drag-and-drop», бизнес-пользователи могут быстро и просто создавать модели с помощью автоматизированной среды. Процесс регламентного применения моделей также происходит в автоматическом режиме. Итоговые диаграммы процесса моделирования могут использоваться в качестве самостоятельно документируемого шаблона, который удобно редактировать, обновлять и применять к новым бизнес-задачам, значительно сокращая время, необходимое на первичную подготовку модели. Кроме того, описание модели содержит информацию о том, какой вклад внесла каждая независимая переменная в итоговый результат.

    Итого к основным преимуществам SAS Enterprise Miner отнесем:

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

    Прочие инструменты

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

    17 Zookeeper

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

    В распределенной реализации инструмента есть несколько режимов работы, которые называются тиражируемыми режимами. Один сервер избирается в качестве главного, все остальные — рабочие. фактически реализуется архитектура «master-slave».

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

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

    На практике Zookeeper чаще всего используется как сервис конфигурации, хотя его возможности намного шире.

    18 Flume

    Flume — распределенный сервис для сбора и агрегирования данных журнала событий из различных источников в центральное хранилище данных, например, HDFS. Инструмент используется преимущественно для передачи неструктурированных данных. Flume не ограничивается только журналированием. Поскольку источники данных во Flume являются настраиваемыми, сервис также используется для загрузки данных событий, данных из социальных медиа-платформ, электронной почты, изображений, видео и других источников. Благодаря поддержке нескольких источников данных и горизонтального масштабирования, Flume используется корпорациями вроде Facebook, Twitter, Amazon и eBay для передачи данных в Hadoop.

    Источник Flume в понятном для инструмента формате принимает события, которые передаются в систему с внешнего источника, например, журнала веб-сервера или данных социальных медиа. У Flume есть т. н. «коллекторы», которые собирают данные из разных источников и помещают их в централизованное хранилище вроде HDFS или HBase. Потом данные переходят от журналов веб-серверов к каналам, которые их хранят, пока они не потребляются Flume Sink’ами, которые затем окончательно помещают информацию в хранилище вроде HDFS. Инструмент позволяет увеличить надежность путем организации мульти-потоков, где данные хранятся в нескольких каналах, пока не достигнут HDFS. А поскольку во Flume применяется транзакционный подход, вероятность потери данных перед достижением конечного места назначения исключена.

    К преимуществам Flume отнесем:

    1. Роль посредника потоков данных между источником и приемником. Когда частота поглощения данных меньше частоты их генерации, Flume стремится уравновесить поток по своим каналам.
    2. Данные легко собираются с нескольких источников. Коллекторы Flume способны подключаться к разным источникам с целью сбора разнородных данных и сохранять их в централизованном хранилище.
    3. Flume надежен. Как уже было отмечено, вероятность потери данных перед их поступлением к пункту назначения исключена.
    4. Возможность восстановления. Локальная файловая система проводит резервное копирование канала файла. Также в оперативной памяти присутствует канал, который хранит события в очереди и очень быстро восстанавливает события в случае «падения» коллектора.

    19 IBM Watson Analytics

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

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

    Графический интерфейс системы понятен и приятен, ведь реализована логика «drag-and-drop». Все необходимые данные и графики можно разместить на рабочем пространстве, просто перетаскивая их. Визуализация, графики, диаграммы: все это быстрее помогает разобраться в текущей ситуации. Watson Analytics быстро проводит графическую обработку данных любой сложности.

    Интересно, что с октября 2014 года IBM Watsons Analytics занимается обработкой и структурированием информации пользователей Twitter. Такое сотрудничество помогает выявлять тренды, которые характерны для социума конкретного региона: населенного пункта, страны, материка. IBM Watsons Analytics — это один из ключевых инструментов, которые применяются при работе с технологиями Big Data, прежде всего, в областях здравоохранения и маркетинга.

    20 Dell EMC Analytic Insights Module

    Analytic Insights Module от Dell EMC — это инструмент, который создан с целью объединения самообслуживающейся аналитики с разработкой «облачных» приложений на единой платформе. Такой подход позволяет специалистам по анализу данных сосредоточиться на быстром создании (несколько дней или недель вместо месяцев) моделей с большой ценностью для бизнеса.

    Чтобы реализовать такую концепцию, Dell EMC создала открытую платформу, предназначенную для отслеживания полного жизненного цикла анализа данных с помощью нескольких ключевых компонентов: озера данных (Data Lake), куратора данных (Data Curator), управляющего данными (Data Governor), каталога данных и анализа (Data and Analytic Catalog). С помощью этих составляющих, организации могут собирать нужную информацию путем глубинного анализа и формировать единое виденье относительно всех данных, чтобы пресечь явление силоса данных.

    Data Lake отвечает за консолидацию данных в едином хранилище. Этот компонент нивелирует сложность хранения силоса данных, связанного с большим количеством разрозненной информации. Data Curator базируется на значениях из озера данных и предоставляет единый формат всех изученных и проиндексированных наборов данных как с самого Data Lake, так и с внешних источников. Согласно Dell EMC, куратор данных сохраняет до 80% времени специалистам по анализу данных при подготовке информации для аналитики. Data Governor содержит информацию о происхождении данных и обеспечивает их безопасность на протяжении всего процесса анализа. Также куратор данных позволяет видеть и использовать наборы данных в формате «end-to-end».

    Итого, с Dell EMC Analytic Insights Module пользователь может:

    • исследовать, использовать и индексировать все данные в едином формате с помощью Data Curator;
    • узнать происхождение, обеспечить управление и безопасность для всех приложений и хранилищ данных с помощью Data Governor;
    • преобразовать всю важную информацию в управляемые данными приложения и бизнес-модели.

    21 Windows Azure HDInsight

    HDInsight — это решение Microsoft, предназначенное для развертывания платформы Hadoop на OC семейства Windows Server и в облачной платформе Windows Azure. Инструмент предоставляет оптимизированные аналитические open-source кластеры с открытым исходным кодом для Spark, Hive, MapReduce, HBase, Storm, Kafka и R Server. Каждая из этих технологий для работы с Big Data может быть развернута в качестве управляемого кластера с обеспечением безопасности и мониторинга корпоративного класса.


    Инструмент HDInsight поддерживает соглашение об уровне обслуживания на 99.9%, которое охватывает решение для работы с Большими Данными Azure, а не только экземплярами виртуальных машин. Решение HDInsight предназначено для обеспечения полной избыточности и высокой доступности и предусматривает репликацию головного узла, георепликацию данных и встроенный резервный узел NameNode.

    За счет единого входа, многофакторной проверки подлинности и простого управления миллионами удостоверений в Azure Active Directory, HDIsight обеспечивает защиту ресурсов данных и расширяет локальные средства обеспечения безопасности и контроля до облачного уровня. Также отметим, что инструмент обеспечивает самый высокий уровень непрерывности бизнес-процессов, поскольку обладает расширенными функциями работы с оповещениями, мониторинга и определения упреждающих действий.

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

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

    22 Microsoft Azure Machine Learning

    После успешного вывода на рынок Hadoop-ориентированного инструмента HDInsight, подразделение Azure корпорации Microsoft сделало еще одну весомую заявку на лидерство в области анализа Больших Данных. Речь идет о публичном релизе Azure Machine Learning.

    Это облачный сервис прогнозной аналитики, который позволяет быстро создавать и развертывать предсказательные модели. Система ценится своей простотой: для полноценной работы с машинным обучением в среде Azure Machine Learning не нужно быть математиком. Интегрированная среда разработки — ML Studio — предоставляет «drag-and-drop» инструменты и простые диаграммы потоков данных, что не только уменьшает объем кода, но и, благодаря встроенной библиотеке простых экспериментов (так называются проекты в ML Studio), сохраняет пользователям много времени.

    Инструмент предлагает готовый к использованию набор из библиотек алгоритмов. Их можно использовать для создания предиктивных моделей на подключенных к Интернету компьютерах. Множество примеров и решений находится в Cortana Intelligence Gallery.

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

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

    Пожалуй, именно Azure Machine Learning на сегодняшний день является наилучшим инструментом для работы с машинным обучением.

    23 Pentaho Data Integration

    Система Pentaho Data Integration (PDI) — это компонент комплекса Pentaho, отвечающий за процесс извлечения, преобразования и выгрузки данных (ETL). Несмотря на то, что использовать ETL-системы предполагается в рамках комплекса хранения данных, средства PDI могут быть применены с целью:

    • обмена данными между приложениями или базами данных;
    • экспорта данных из таблиц баз данных в файлы;
    • загрузки массивов данных в базы данных;
    • обработки данных;
    • интеграции в приложения.

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

    Pentaho Data Integration упрощает интеграцию больших объемов данных с помощью «drag-and-drop» инструмента, который перемещает данные из хранилищ в хранилища Big Data. Система также способна дополнять и объединять структурированные источники данных с частично структурированными и неструктурированными источниками, чтобы в итоге сформировать единую картину.

    Инструмент может быть полностью персонализирован: настройка визуализации, интерактивных отчетов, рабочей панели и специальный анализ — все это доступно пользователю. А поскольку PDI на 100% является Java-платформой, построенной на промышленных стандартах вроде веб-сервиса RESTful, интеграция с любым приложением не вызывает проблем.

    24 Teradata Aster Analytics

    Teradata Aster Analytics — это инструмент, который в рамках одного интерфейса и синтаксиса позволяет работать с текстом, графикой, машинным обучением, паттернами и статистикой. Бизнес-аналитики и специалисты по анализу данных могут провести комплексный анализ данных со всего предприятия путем выполнения одного запроса. У Teradata Aster Analytics есть более 100 интегрированных передовых аналитических запросов.

    Данный инструмент позволяет объединить Graph, R и MapReduce в пределах одного фреймворка. Со всеми функциями, которые выполняются как команды SQL, и со всеми аналитическими движками, встроенными в инструмент, Aster Analytics обеспечивает высокую производительность при обработке больших массивов данных.

    Аналитика Teradata Aster Analytics доступна в пределах экосистемы Hadoop и Amazon Web Services.

    Aster Analytics на Hadoop:

    1. Расширяет сценарии использования озера данных. Aster Analytics делает «железнорожденного слона» доступным для большинства бизнес-аналитиков с навыками работы на SQL или R.
    2. Работает нативно. Пользователям не нужно перемещать данные из Hadoop на серверы для анализа данных.
    3. Быстро реализует аналитику. Пользователи могут создавать изолированную программную и рабочую среду на одном кластере Hadoop на одних и тех же данных.

    Aster Analytics на AWS:

    1. Ускоряет окупаемость бизнеса. Компания может быстро подготовить аналитическую изолированную программную среду на облаке и, с целью ускорения процесса развития, использовать встроенные SQL-запросы.
    2. Повышает гибкость аналитики. Специалисту по анализу данных предоставляется мощный набор разноплановых инструментов: каждый аналитик может найти подходящее средство для работы с Большими Данными.
    3. Снижает финансовую нагрузку. Компании могут использовать встроенные передовые аналитические функции и наборы данных без необходимости использования нового оборудования.

    25 SAP BusinessObjects Predictive Analytics

    Это инструмент, который направлен на то, чтобы оптимизировать ресурсы и повысить рентабельность в масштабах всей компании.

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

    С SAP BusinessObjects Predictive Analytics можно:

    • автоматизировать приготовление данных, прогнозное моделирование, развертывание — и, как итог, легко переучить модель;
    • использовать расширенные возможности визуализации, чтобы быстрее сделать выводы;
    • интегрироваться с языком программирования R, чтобы открыть доступ к большому количеству пользовательских скриптов;
    • скооперироваться с SAP HANA.

    SAP BusinessObjects Predictive Analytics расширяет границы возможностей Spark, чтобы предоставить клиентам более продвинутую интерактивную аналитику данных. Актуальная версия инструмента позволяет подключиться к SAP HANA Vora и выполнять прогнозное моделирование автоматически. Используя нативное моделирование Spark на одинаковых экземплярах Spark, SAP HANA Vora позволяет выполнять распределенную обработку автоматизированных алгоритмов.

    Отметим, что Forrester Research в апреле 2015 года наградил SAP статусом лидера в предсказательной аналитике на Больших Данных.

    26 Oracle Big Data Preparation

    Построенный в среде Hadoop и Spark с целью масштабируемости, облачный сервис Oracle Big Data Preparation предлагает аналитикам высоко интуитивный и интерактивный способ подготовки структурированных, частично структурированных и неструктурированных данных для их последующей обработки.

    Как и большинство вышеописанных инструментов, Oracle Big Data Preparation нацелен на бизнес-пользователей, поэтому сервис прост в использовании. Масштабируемость позволяет работать с итерационным машинным обучением в кластерной среде вычислений. Еще одним преимуществом Oracle Big Data Preparation является интеграция с рядом облачных сервисов.

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

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

    К расширению (enrich) следует отнести определение категорий данных и идентификацию их характеристик в терминах атрибутов, свойств и схем, обнаружение метаданных (обнаружение схемы определяет схему/метаданные, которые прямо или косвенно определены в заголовках, полях или тегах).

    Управление и публикации (govern and publications) подразумевают под собой интерактивную панель управления, которая обеспечивает единый график всех обработанных наборов данных с соответствующими метриками и возможностями для дальнейшего детального аудита и анализа. В свою очередь, различные форматы публикаций обеспечивают максимальную гибкость.

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

    Резюме

    Нами был рассмотрен ряд средств для анализа данных от лучших производителей Big Data-решений. Как вы могли заметить, большинство решений являются опенсорсными, то есть имеют открытый исходный код. Фреймворков, баз данных, аналитических платформ и прочих инструментов действительно много, поэтому от вас требуется четкое понимание задачи. Определившись с поставленной целью, вы без проблем подберете нужное средство (или набор средств), которое позволит провести полноценный анализ данных.

    kelijah

    Компьютерная лингвистика

    Новостная лента www.solarix.ru

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

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

    Я получаю необходимые датасеты из своего SQL Словаря русского языка (https://solarix.ru/sql-dictionary-sdk.shtml). Почти 300 тысяч словарных статей, 3.5 миллиона словоформ в этой словарной базе содержат разнообразную грамматическую информацию с ручной выверкой. Загрузив словарную базу в MS SQL (достаточно бесплатной express-версии, так как размер базы намного меньше 10 Гб), или в другую СУБД, можно обычными SQL запросами получать необходимые паттерны. Я обычно делаю запросы в SQL Server Management Studio и сохраняю результаты прямо оттуда в текстовые файлы с табуляцией в качестве разделителя.

    select distinct F.name, E.name, C.name

    join sg_entry E on E. >

    join sg_language L on L.

    выведет более 2.4 миллионов пар слово-лемма с дополнительной привязкой к части речи:

    Датасет для классификации слов по частям речи:

    select distinct F.name, C.name

    join sg_entry E on E. >

    join sg_language L on L.

    Он генерирует датасет с 2.4 миллионами пар:

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

    CREATE FUNCTION [dbo].[GetFormCoords]

    DECLARE @result VARCHAR(1000)

    DECLARE C CURSOR LOCAL FAST_FORWARD FOR

    select C.name, S.name

    from sg_entry E, sg_entry_coord EC, sg_coord C, sg_state S

    and C.name NOT IN ( ‘CHARCASING’, ‘OMONYM_RESOLUTION’ )

    select C.name, S.name

    from sg_form F, sg_entry E, sg_form_coord FC, sg_coord C, sg_state S

    and C.name NOT IN ( ‘CHARCASING’, ‘OMONYM_RESOLUTION’ );

    DECLARE @coord_name varchar(30)

    DECLARE @state_name varchar(30)

    FETCH C INTO @coord_name, @state_name

    WHILE @@FETCH_STATUS=0 BEGIN

    SET @result = @result + ‘ ‘ + @coord_name + ‘:’ + @state_name

    FETCH C INTO @coord_name, @state_name

    Во-вторых, сам запрос, который генерирует датасет:

    select distinct F.name, C.name, dbo.GetFormCoords(E.ID,F.IFORM)

    join sg_entry E on E. >

    join sg_language L on L.

    join coord_pairs P on P. >

    Результат его работы:

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

    Big Data. Machine Learning. Data Science.

    Блог компании Даталитика. Интересное об искусственном интеллекте, машинном обучении, больших данных и ИТ-консалтинге


    Подписаться на этот блог

    Подписаться на обновления

    Подготовка данных для алгоритмов машинного обучения

    • Получить ссылку
    • Facebook
    • Twitter
    • Pinterest
    • Электронная почта
    • Другие приложения

    Описание стека и некоторые вводные

    В нашей статье мы будем использовать язык программирования python с сопутствующими ему библиотеки (sklearn, matplotlib, seaborn) и в качестве среды для работы jupyter notebook. Цель текущего поста — показать общие подходы к подготовке данных. То есть, те манипуляции, которые необходимо совершить перед загрузкой данных в модель машинного обучения. В идеальном мире у вас будет абсолютно чистый датасет без выбросов или пропущенных значений. Однако в реальном мире такие наборы данных встречаются крайне редко.
    Далее будем рассматривать данные из Kaggle: «Mental Health in Tech Survey«.

    Первый взгляд на датасет и понимание его специфики

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

    Это даст нам первое представление о том, что есть наши данные. Далее посмотрим на размеры наших табличных данных. Выполнив построчно код ниже

    Также было бы неплохо увидеть информацию о количестве каждого уникального значения для каждого столбца в наборе данных:

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

    • Столбец «age» содержит людей, которые еще не родились (отрицательные числа).
    • Столбец «age» содержит детей (например, 5-летнего возраста), которые вряд ли будут проводить опрос о своем рабочем месте.
    • Столбец «age» содержит возраст в 99999999999 лет
    • Существует 49 различных значений для «gender». Для примера, «Male» и «male» обозначают одно и то же, но в рассматриваются как две разные категории.
    • self_employed и work_interfere содержат несколько пропущенных полей.

    Разделение на обучающую выборку и целевую переменную

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

    Обработка пропусков в данных

    Зачастую не существует шаблонных подходов к этой задаче, поскольку подходы во многом зависит от контекста и характера данных. Например, являются ли данные случайными пропусками или же есть скрытая связь между пропусками и некоторым другим записями в обучающем примере?
    Один из способов простых способов решения этой проблемы — просто игнорировать или удалять строки, в которых отсутствуют данные, выбрасывая их из нашего анализа. Однако этот метод может быть плох из-за потери информации.
    Еще один способ — это заполнение пропусков, где мы заменяем отсутствующее значение каким-либо образом. Базовые реализации просто заменят все отсутствующие значения средним, медианным, либо же константой.
    Для начала выясним, что делать с пропущенными значениями, найденными в self_employed и work_interfere. В обоих случаях столбец содержит категориальные данные.
    Возьмем следующий пример, который представляет собой небольшой набор данных, содержащий три признака (погодное условие, температуру и влажность), чтобы предсказать, могу ли я играть в теннис или нет.

    id weather temperature humidity play tennis?
    1 cloudy 60 NaN yes
    2 rainy 75 80% NaN
    3 cloudy NaN 50% no
    4 sunny 65 40% yes

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

    Scikit-learn предоставляет реализацию для обработки пропусков

    Поиск неявных дубликатов

    Как упоминалось ранее, для «gender» 49 различных значений, и было подозрение, что некоторые из этих значений не следует рассматривать как разные категории. В конечном итоге для простоты мы разделим данные на 3 категории: мужчина, женщина и другие (сюда вошли те категории, которые можно однозначно исключить из предыдущих двух, для примера — трансгендер).

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

    Обнаружение выбросов

    Как уже упоминалось ранее, оказалось, что для Age существуют значения, которые кажутся ошибочными. Такие как отрицательный возраст или чрезвычайно большие целые числа, могут негативно повлиять на результат работы алгоритма машинного обучения, и нам нужно будет их устранить.
    Для этого возьмем нашу эвристическую оценку, в каком возрасте могут работать люди: от 14 до 100 лет. И все величины, не попадающие в этот диапазон, преобразуем в формат Not-a-Number.

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

    Кодирование данных

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

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

    Который возвращает следующие значения

    Для кодирования этих данных, сопоставим каждое значение с числом.

    Этот процесс известен как Label Encoding и sklearn может сделать это за нас.

    Проблема с этим подходом заключается в том, что вы вводите порядок, который может отсутствовать в исходных данных. В нашем случае можно утверждать, что данные являются ранжированными («Very difficult» меньше «Somewhat difficult», который меньше «Very easy», который меньше «Somewhat easy»), но в большинстве своем категориальные данные не имеют порядка. Например, если у вас есть признак обозначающий вид животного, зачастую высказывание кошка больше собаки не имеет смысла. Опасность кодирования меток заключается в том, что ваш алгоритм может научиться отдавать предпочтение собак, кошкам из-за искусственных порядковых значений, введенных вами во время кодирования.

    Общим решением для кодирования номинальных данных является one-hot-encoding.

    Вместо того, чтобы заменять категориальное значение на числовое значение (кодирование меток), как показано ниже

    id type numerical
    1 cat 1
    2 dog 2
    3 snake 3
    4 cat 1
    5 dog 2
    6 turtle 4
    7 dog 2

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

    id type is_cat is_dog is_snake is_turtle
    1 cat 1
    2 dog 1
    3 snake 1
    4 cat 1
    5 dog 1
    6 turle 1
    7 dog 1

    Вы можете выполнить one-hot-encoding непосредственно в Pandas или использовать sklearn, хотя sklearn немного более прозрачен, поскольку one-hot-encoding из него работает только для целых значений. В нашем примере (где входные данные представляют собой строки) нам нужно сначала выполнить кодировку меток, а затем one-hot-encoding.

    Нормализация тренировочных данных

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

    ML алгоритмы, которые требуют нормализации данных:

    • Логистическая регрессия
    • Метод опорных векторов
    • Нейронная сеть
    • PCA

    • Деревья принятия решений (и случайные леса)
    • Градиентный бустинг
    • Наивный Байес

    Примечание: приведенные выше списки ни в коем случае не являются исчерпывающими, а просто служат примером.

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

    • Температура: от 270 K до 305 K
    • Влажность: от 0 до 1 (т. е. Влажность 30%, равная 0,3)
    • День года: от 0 до 365

    Когда вы смотрите на эти значения, вы интуитивно нормализуете значения. Например, вы знаете, что увеличение на 0,5 (=50%) для влажности намного более значимо, чем увеличение на 0,5 для температуры. И если мы не будем нормализовать эти данные, наш алгоритм может научиться использовать температуру в качестве основного предиктора просто потому, что масштаб является наибольшим (и, следовательно, изменения в значениях температуры наиболее значительны для алгоритма). Нормализация данных позволяет всем признакам вносить одинаковый вклад (или, что более точно, позволяет добавлять признаки в зависимости от их важности, а не их масштаба).

    Алгоритм нормализации

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

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

    Существует несколько различных методов нормализации данных, самые популярные из них:

    Нормализация Min-max устанавливает наименьшее наблюдаемое значение равным 0, а наибольшее наблюдаемое значение — 1.

    Для выполнения нормализации мы можем использовать функции в sklearn.

    Несколько замечаний по этой реализации:
    На практике вы можете выбрать только определенные столбцы. Например, вам не нужно нормализовать фиктивные переменные из one-hot-encoding.

    Разделение данных для обучения и тестирования

    Разделение данных на две подвыборки

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

    Лучшие датасеты для машинного обучения и анализа данных


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

    Где искать датасеты

    • Google Dataset Search. Dataset Search позволяет по ключевому слову искать датасеты по всей Сети.
    • Kaggle. Площадка для соревнований по машинному обучению с множеством интересных датасетов. В списке датасетов можно найти разные нишевые экземпляры — от оценок рамена до баскетбольных данных NCAA и базы лицензий на домашних животных в Сиэтле.
    • UCI Machine Learning Repository. Один из старейших источников датасетов в Сети и первое место, куда стоит заглянуть в поиске интересных датасетов. Хотя они добавляются пользователями и потому имеют различную степень «чистоты», большинство из них очищены. Данные можно скачивать сразу, без регистрации.
    • VisualData. Датасеты для компьютерного зрения, разбитые по категориям. Доступен поиск.
    • Find Datasets | CMU Libraries. Коллекция датасетов, предоставленная университетом Карнеги Меллон.

    Датасеты общего назначения

    Государственные датасеты

    • Data.gov. Здесь можно найти данные от разных государственных учреждений США. Они варьируются от государственных бюджетов до школьных оценок.
    • Food Environment Atlas. Содержит данные о том, как различные факторы (близость магазинов/ресторанов, цены на продукты и тому подобное) влияют на выбор продуктов и качество питания в США.
    • School system finances. Данные о финансах школьных систем в США.
    • Chronic disease data. Данные о показателях хронических заболеваний на территории США.
    • The US National Center for Education Statistics. Данные об образовательных учреждениях и образовательной демографии в США и во всём мире.
    • The UK Data Service. Крупнейшая в Великобритании коллекция социальных, экономических и демографических данных.
    • Data USA. Исчерпывающая визуализация общедоступных данных США.

    Данные о жилье

    • Boston Housing Dataset. Содержит информацию о жилье в Бостоне, собранную бюро переписи населения США. Она была получена из архива StatLib и широко использовалась в литературе для оценки алгоритмов.

    Экономика и финансы

    • Quandl. Хороший источник экономических и финансовых данных — полезен при построении моделей для прогнозирования экономических показателей или цен на акции.
    • World Bank Open Data. Наборы данных, охватывающих демографическую ситуацию, огромное количество экономических показателей и индикаторов развития со всего мира.
    • IMF Data. Международный валютный фонд публикует данные о международных финансах, показателях долга, валютных резервах, инвестициях и ценах на сырьевые товары.
    • Financial Times Market Data. Актуальная информация о финансовых рынках со всего мира, которая включает индексы цен на акции, товары и валюту.
    • Google Trends. Изучайте и анализируйте данные о поисковой активности в Интернете и трендах по всему миру.
    • American Economic Association (AEA). Хороший источник данных о макроэкономике США.

    Датасеты для машинного обучения

    Компьютерное зрение

    • xView. Один из самых больших общедоступных наборов воздушных снимков земли. Он содержит изображения различных сцен со всего мира, аннотированных с помощью ограничительных рамок.
    • Labelme. Большой датасет аннотированных изображений.
    • ImageNet. Датасет изображений для новых алгоритмов, организованный в соответствии с иерархией WordNet, в которой сотни и тысячи изображений представляют каждый узел иерархии.
    • LSUN. Датасет изображений, разбитых по сценам и категориям с частичной разметкой данных.
    • MS COCO. Крупномасштабный датасет для обнаружения и сегментации объектов.
    • COIL100. 100 разных объектов, изображённых под каждым углом в круговом обороте.
    • Visual Genome. Датасет с

    100 тыс. подробно аннотированных изображений.

  • Google’s Open Images. Коллекция из 9 миллионов URL-адресов к изображениям, «которые были помечены метками, охватывающими более 6000 категорий» под лицензией Creative Commons.
  • Labelled Faces in the Wild. Набор из 13 000 размеченных изображений лиц людей для использования приложений, которые предполагают использование технологии распознавания лиц.
  • Stanford Dogs Dataset. Содержит 20 580 изображений из 120 пород собак.
  • Indoor Scene Recognition. Датасет для распознавания интерьера зданий. Содержит 15 620 изображений и 67 категорий.
  • Анализ тональности текста

    • Multidomain sentiment analysis dataset. Немного устаревший датасет, который содержит отзывы на товары с Amazon.
    • IMDB reviews. Староватый, относительной небольшой (25 000 отзывов к фильмам) датасет для бинарного анализа тональности.
    • Stanford Sentiment Treebank. Стэнфордский датасет для анализа тональности.
    • Sentiment140. Популярный датасет с 160 000 твитов с удалёнными смайликами.
    • Twitter US Airline Sentiment. Набор данных из Twitter об авиакомпаниях США, датируемый февралём 2015 года, разделённый на положительные, негативные и нейтральные твиты.

    Обработка естественного языка

    • HotspotQA Dataset. Датасет с вопросами-ответами, позволяющий создавать системы для ответов на вопросы более понятным способом.
    • Enron Dataset. Данные электронной почты от высшего руководства Enron.
    • Amazon Reviews. Содержит около 35 млн отзывов с Amazon за 18 лет. Данные включают информацию о продукте и пользователе, оценки и сам текст отзыва.
    • Google Books Ngrams. Коллекция слов из Google Книги.
    • Blogger Corpus. Коллекция из 681 288 постов с Blogger. Каждый блог содержит как минимум 200 вхождений часто используемых английских слов.
    • Wikipedia Links data. Датасет, состоящий из веб-страниц, которые удовлетворяют следующим двум условиям: каждая из них содержит хотя бы одну ссылку на Википедию и текст её якоря совпадает или похож на заголовок целевой страницы.
    • Gutenberg eBooks List. Аннотированный список электронных книг проекта «Гутенберг».
    • Hansards text chunks of Canadian Parliament. Датасет с 1.3 миллионами пар текстовых файлов, записанных с дебатов 36-го Канадского Парламента.
    • Jeopardy. Архив с более чем 200 000 вопросов с телевикторины Jeopardy.
    • Rotten Tomatoes Reviews. Архив из более чем 480 000 рецензий с Rotten Tomatoes.
    • SMS Spam Collection in English. Датасет, состоящий из 5574 спам-смс на английском.
    • Yelp Reviews. Датасет от Yelp, содержащий более 5 млн отзывов.
    • UCI’s Spambase. Большой датасет спам-писем.

    Автопилоты

    • Berkeley DeepDrive BDD100k. На данный момент это самый большой датасет для автопилотов. Он содержит более 100 000 видео с более чем 1100 часами записей вождения в разное время дня и в различных погодных условиях.
    • Baidu Apolloscapes. Большой датасет для распознавания 26 семантически разных объектов вроде машин, велосипедов, пешеходов, зданий, уличных фонарей и т. д.
    • Comma.ai. Более семи часов езды по шоссе. Датасет включает информацию о скорости машины, ускорении, угле поворота руля и GPS-координатах.
    • Oxford’s Robotic Car. Более ста повторений одного маршрута по Оксфорду, заснятого в течение года. В датасет попали разные комбинации погодных условий, трафика и пешеходов, а также более длительные изменения вроде дорожных работ.
    • Cityscape Dataset. Большой датасет, содержащий записи ста уличных сцен в 50 городах.
    • KUL Belgium Traffic Sign Dataset. Более 10 000 аннотаций тысяч разных светофоров в Бельгии.
    • LISA. Laboratory for Intelligent & Safe Automobiles, UC San Diego Datasets. Датасет с дорожными знаками, светофорами, распознанными средствами передвижения и траекториями движения.
    • Bosch Small Traffic Light Dataset. Датасет с 24 000 аннотированных светофоров.
    • LaRa Traffic Light Recognition. Ещё один датасет для распознавания светофоров.

    • WPI datasets. Датасет для распознавания светофоров, пешеходов и дорожной разметки.

    Медицинские данные

    • MIMIC-III. Датасет с обезличенными данными о состоянии здоровья

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

    Автор: КВВ

    Ст.преп. кафедры ИТЭ. Автор более 130 научных и учебно-методических работ. Лауреат ВДНХ (серебряная медаль). Посмотреть все записи автора КВВ

    Digiratory

    Лаборатория автоматизации и цифровой обработки сигналов

    Компьютерное зрение. Машинное обучение без нейронных сетей (scikit-learn)

    В качестве простейшей иллюстрации рассмотрим классификацию датасета MNIST двумя подходами, и. заодно, познакомимся с двумя инструментами.

    Датасет MNIST представляет собой набор из 70000 изображений рукописных цифр от 0 до 9, который делится на 60000 обучающих изображений и 10000 тестовых. Подробное его описание и он сам доступены по адресу https://www.openml.org/d/554.

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

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

    Одним из наиболее известных фреймворков для машинного обучения с использованием классических методов является scikit-learn.

    Загрузка датасета

    Так как решение любой задачи машинного обучения начинается с датасета (в случае с кластеризацией его размечать нет необходимости, так как это обучение без учителя).
    Scikit-learn содержит несколько датасетов, однако, выбранного нами, mnist в их числе нет, поэтому воспользуемся другим его инструментом — загрузчиком из репозитория openml.

    Facebook выпустила крупнейший датасет для обучения машин игре в StarCraft

    Команда исследователей из американского и французского подразделений Facebook создала крупнейший на данный момент датасет для обучения искусственного интеллекта игре в StarCraft. В набор вошло более 65 тысяч игр и в общей сложности более полутора миллиардов «кадров», общий объем датасета составляет 365 гигабайт. Подробное описание коллекции выложено в виде препринта на arXiv.org, а сама она доступна на странице проекта на GitHub.

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

    Сравнительно недавно компания DeepMind успешно продемонстрировала свою программу AlphaGo, которая в сериях из нескольких матчей обыграла сильнейших профессионалов по го. Однако эта игра, несмотря на всю ее сложность, относится к классу игр с открытой информацией, где обоим игрокам в каждый момент времени доступна полная позиция на доске. Для компьютеров гораздо сложнее обучиться игре с неполной информацией, например, компьютерным стратегиям вроде StarCraft, где из-за «тумана войны» игроки не владеют полной информацией и вынуждены активно пользоваться разведкой и предугадывать действия соперника.

    Для любой задачи машинного обучения одним из главных компонентов являются исходные данные, на которых система могла бы обучаться. Так например, успехи систем компьютерного зрения часто приписывают в том числе появившимся наборам размеченных данных вроде датасета ImageNet, на котором системы могли обучаться и совершенствоваться. Аналогичным образом AlphaGo обучалась на записях партий профессиональных игроков, а после, достигнув определенного уровня — играла «сама с собой».

    В новом препринте исследователи из Facebook подробно описали созданный ими датасет STARDATA, в который вошли записи игр в StarCraft (как профессиональные, так и любительские), «переведенные» на доступный для алгоритомв машинного обучения язык. То есть для каждый игры с частотой примерно восемь кадров в секунду записаны полные действия игрока, численность и состав его армии, положения юнитов и зданий, технологическое развитие и так далее.

    Распределение игр по длительности: зерги против зергов играются заметно динамичнее других сочетаний.

    Наиболее полный список инструментов для анализа данных и машинного обучения

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

    Огромное разнообразие различных платформ и инструментов для анализа данных может поставить в тупик любого специалиста, перед которым стоит задача построения бизнес процесса на основе продвинутого анализа данных предприятия. Сегодня машинное обучение и глубокий анализ данных уже не является чем-то новым. Это обязательный пункт, без которого бизнес не сможет нормально конкурировать в современном мире. Анализ собираемой информации — ключ к улучшению показателей бизнеса. Но для этого нужно располагать и оперировать инструментами для анализа данных. Какими? Давайте рассмотрим этот вопрос. Мы собрали для вас наиболее полный список представленных на рынке фреймворков, платформ, решений и систем продвинутой аналитики.

    Фреймворки

    Кажется, что низкая стоимость распределенных вычислений и быстрота обработки делают Hadoop для Больших Данных примерно таким же по значимости решением, как и все остальные вместе взятые программные продукты. Любой перечень платформ Big Data с открытым исходным кодом действительно начинается с «железнорожденного слона», но Hadoop — не единственный краеугольный камень.

    1 Hadoop

    Платформа Hadoop представляет собой open-source фреймворк, позволяющий сделать так, чтобы приложение разделилось на несколько фрагментов, и каждый фрагмент обрабатывался на любом узле (компьютере, «ноде») в кластере вычислительной системы.

    Данная платформа состоит из модулей, которые работают вместе с целью создания единого программного каркаса. Основными модулями являются:

    • Hadoop Common;
    • Hadoop YARN;
    • Hadoop Distributed File System (HDFS);
    • Hadoop MapReduce.

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

    Интересный факт. Хадуп — именно так сын одного из изобретателей фреймворка назвал желтого игрушечного слона.

    Первый блок (Hadoop Common) данного инструмента — это набор инфраструктурных программ и элементов, связующее ПО. YARN — система планирования заданий и управления ресурсами кластеров. На HDFS и MapReduce (в контексте Hadoop) следует остановиться поподробнее.

    Распределенная файловая система выполняет 2 главные задачи: запись метаданных и хранение собственно данных. Принцип работы HDFS состоит в распределении файлов по нескольким узлам в кластере. Так, с метаданными работает сервер NameNode, с собственно данными — DataNode. HDFS является весьма надежной системой, ведь в случае уничтожения половины узлов кластера, теряется всего 3% информации.

    «Фишка» с локальными вычислениями на машинах с известными нам блоками данных стала возможна благодаря MapReduce. Реализация данной парадигмы в свою очередь основана на раскрытии сервером NameNode информации о расположении блоков данных на компьютерах. Принцип работы MapReduce состоит из двух шагов: map и reduce. Вот как происходит процесс:

    1. Map: получение входных данных главным узлом (master node) -> разделение информации на части -> передача данных рабочим узлам (worker node).
    2. Reduce: получение главным узлом ответа от рабочих узлов -> формирование результата.

    Фреймворк Hadoop де-факто является стандартным ПО для работы с технологиями анализа Больших Данных. Однако его следует использовать тогда, когда есть реальная «Big Data problem». Компания начинает работать с объемом данных, с которыми текущие решения Big Data не справляются? Нужен Hadoop. Не знаете, хватит ли текущего объема хранилища для будущих задач? С Hadoop можно просто дополнить кластер новыми машинами — система это «пережует и проглотит» без проблем. Переживаете за сохранность информации в случае выхода из строя ряда серверов? Не следует: если какой-нибудь узел «ляжет», управление процессом автоматически передается другому компьютеру.

    Hadoop сейчас эффективно использует самая крупная в Европе компания, которая занимается тартеггингом на основании кликов (т. н. «ad targeting»). Главный телекоммуникационный провайдер Старого Света Deutsche Telekom также прибегает к применению фреймворка Hadoop, который оказался в 50 раз дешевле старой платформы.

    Но не забывайте, что инструменты для анализа данных на основании Hadoop имеют свои недостатки. Во-первых, платформа недостаточно защищена от кражи информации. Во-вторых, работать с Hadoop весьма тяжело, ведь фреймворк требует знания MapReduce, в то время как большинство специалистов используют SQL-технологии. И, наконец, из-за огромного ажиотажа вокруг «слона», подогреваемого отделом маркетинга Hortonworks, данная платформа изменяется слишком динамично.

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

    2 Spark

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

    Spark требует наличия менеджера кластера и распределенной системы хранения данных. Если вопрос управления кластерами решается путем использования нативных средств, Hadoop YARN или Apache Mesos (при работе с многоузловыми кластерами), то распределенная система хранения данных может быть исключительно посторонней. Именно по этой причине в большинство проектов с использованием технологий Big Data, Spark устанавливается поверх «слона»: связка из передовых приложений для аналитики от Spark и Hadoop Distributed File System позволяет программам на кластерах Hadoop выполняться до 100 раз быстрее в RAM и до 10 раз быстрее на ROM.

    В платформе Spark вводится важная абстракция под названием Resilient Distributed Dataset (RDD), которая представляет собой набор read-only объектов, распределенных по узлам кластера. RDD выполняет 2 класса операций: преобразования и действия.

    Преобразования не возвращают одного значения, а меняют метаданные и возвращают новый RDD. К преобразованиям относятся операции map, filter, flatMap, groupByKey, reduceByKey, aggregateByKey, pipe, coalesce.

    Действия возвращают новое значение. Когда функция действия вызвала объект RDD, возвращаются все запросы по обработке данных и результат по состоянию на текущее время. К операциям действия относят reduce, collect, count, first, take, countByKey, foreach.

    Как видно, помимо map и reduce, которые присутствуют в модуле Hadoop MapReduce, Spark предлагает еще ряд других операций. Поэтому при разработке приложений с технологиями Больших Данных, Spark чаще всего заменяет именно Hadoop MapReduce, а не весь Hadoop.

    Стоит отметить, что в специфических задачах, построенных на многократных обращениях к одному набору данных, «чистый» Spark работает быстрее Hadoop до 30 раз. Например, это интерактивный дата-майнинг и итерационные алгоритмы, которые активно используются в системах машинного обучения.

    Архитектура Spark включает в себя 3 главных компонента:

    • хранилище данных;
    • API;
    • менеджер кластера.

    Интерфейс программирования приложений позволяет разработчикам создавать программное обеспечение для Больших Данных на основе Spark, используя стандартный API. Spark по умолчанию поддерживает Java, Scala и Python, благодаря чему можно выбрать язык для написания приложений.

    Кроме того, Spark включает несколько библиотек, таких как Spark SQL (позволяет выполнять SQL-запросы над данными), Spark Streaming (надстройка для обработки потоковых данных), Spark MLlib (набор библиотек машинного обучения), GraphX (предназначена для распределенной обработки графов). А механизм выполнения типа «направленный ациклический граф» (DAG) позволяет фреймворку Spark создавать эффективные планы запросов на преобразование данных.

    Итого: «Чистый» Spark наилучшим образом проявляет себя в машинном обучении и при работе с итерационными задачами. Наиболее часто используется поверх Hadoop, заменяя модуль MapReduce и добавляя большее количество операций.

    3 Storm

    Фреймворк Storm можно причислить к числу лучших решений для работы с Большими Данными, когда речь идет о платформах с открытым исходным кодом. В отличие от Hadoop и Spark, ориентированных на пакетную обработку больших наборов данных, система Storm предназначена для распределенной обработки в режиме реального времени и не зависит от языка программирования.

    Рабочие процессы в «Шторме» называются «топологиями». Эти топологии организованы по принципу направленного ациклического графа (DAG) и выполняются до выключения пользователем или появления неустранимой ошибки. Storm поддерживает создание топологий, которые преобразуют незавершенные потоки данных. Эти преобразования, в отличие от заданий Hadoop, никогда не прекращаются, а продолжают обрабатывать данные по мере их поступления.

    Нативный Storm не может использоваться для разработки приложений Big Data поверх типичных кластеров Hadoop. Для координации задач между узлами в кластере используется Apache ZooKeeper с его мастер (миньон) воркером. Тем не менее, Yahoo! и Hortonworks трудятся над созданием библиотек для запуска «Шторма» на вершине Hadoop 2. x кластеров YARN. Также отметим, что данный фреймворк способен читать и записывать файлы с/на HDFS.

    Основными элементами топологии Strom являются воронки (spouts) и сита (bolts). Воронки генерируют потоки данных в форме неизменяемых наборов пар «ключ-значение», называемых кортежами (tuples), а сита выполняют преобразование этих потоков. Подобно MapReduce, сита могут решать традиционные задачи или выполнять более сложные действия (одношаговые функции): фильтрацию, агрегирование или связь с внешними объектами типа баз данных.

    В Storm реализована концепция гарантированной обработки сообщений. Это значит, что каждый кортеж, испускаемый из воронки, будет обработан; если он не обработан в течение некоторого времени, то Storm вновь выпускает его из воронки. Другой важной особенностью экосистемы Storm является достаточное количество воронок, настроенных на прием данных от всех видов источников. Даже для узкоспециализированных приложений с применением технологий Больших Данных не обязательно придется создавать собственную воронку: здесь можно найти нужный споут среди огромного количества болтов — от потокового Twitter API до Apache Kafka.

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

    Система распределенных вычислений Storm станет хорошим выбором, если вы начинаете проект с нуля со специально построенным кластером, а ваши требования сосредоточены на потоковой обработке данных и сложной системе обработки событий (CEP). В большинстве случаев, Storm используют в сочетании со Spark наряду с платформой Hadoop. Spark при таком раскладе заменяет Hadoop MapReduce, а Storm — Hadoop YARN.

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

    Базы данных

    Несмотря на то, что описанные в разделе «Фреймворки» платформы для анализа данных могут функционировать в автономном режиме и подходят для разработки любых приложений, они (чаще всего Hadoop) выполняют роль простого хранилища данных. Отсюда возникает необходимость в СУБД, которые, ввиду табличной организации данных, упрощают аналитику и содержат необходимые инструменты для Big Data-анализа.

    4 Hive

    Hive — хранилище данных с открытым исходным кодом, предназначенное для выполнения запросов и анализа больших объемов данных в файлах Hadoop. Это самая популярная СУБД на SQL-платформе, которая в качестве языка запросов использует HiveQL. HiveQL автоматически переводит SQL-подобные запросы в MapReduce или Tez, или Spark jobs.

    Hive выполняет 2 основные функции: реферирование и формирование запросов. Данная СУБД также допускает сериализацию/десериализацию данных и увеличивает гибкость при проектировании схемы путем использования системного каталога Hive-Metastore.

    Согласно официальной документации, Hive не предназначен для работы с OLTP и не предлагает обработку запросов в режиме реального времени. Он лучше всего подходит для пакетной обработки транзакций на больших наборах наподобие веб-журналов (т. н. append-only данные).

    Hive на LLAP (Live Long и Process) использует постоянные Query-сервера с интеллектуальным кэшированием в оперативной памяти, чтобы избежать пакетно-ориентированной задержки со стороны Hadoop и обеспечить малое время отклика. В то же время, Hive на Tez продолжает обеспечивать отличную производительность пакетного запроса на петабайтах данных.

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

    Архитектура ETL-фреймворка Hive следующая:

    1. CLI, JCDB, ODBC или любой другой графический веб-интерфейс. Образует внешние интерфейсы по отношению к интерфейсу Hive для установки связи между пользователем и HDFS.
    2. Metastore Thrift API. Выполняет роль системного каталога и отслеживает, какие данные хранятся в той или иной части HDFS.
    3. Драйвер. Это основа Hive-архитектуры, ответственная за сбор, оптимизацию и выполнение инструкций HiveQL.
    4. Thrift Server. API-клиент для выполнения операторов HiveQL.

    Главные причины того, что Hive остается популярным:

    • Работать с Hive может любой, кто знаком с SQL: HiveQL не потребует усилий для того, чтобы переучиться.
    • Hive поддерживается веб-интерфейсом с открытым исходным кодом — Hue.
      • Он обеспечивает повышенную производительность по сравнению с MapReduce за счет векторизации запросов c использованием движка Tez.


    • Благодаря отсутствию необходимости писать длинный Java MapReduce код, сокращает время на программирование.

    5 Impala

    Impala — главный конкурент Hive. Impala — это автономный open-source механизм выполнения SQL-запросов, который работает на Hadoop-кластерах. Система обеспечивает быстрые, интерактивные SQL-запросы непосредственно к данным Hadoop, которые хранятся в HDFS или HBase. В дополнение к использованию той же унифицированной платформы хранения данных, что и у Hive, в Impala применяются те же метаданные, SQL-синтаксис (HiveQL), драйвер ODBC и даже пользовательский интерфейс, как у главного конкурента.

    Однако Impala никогда не использовала классический MapReduce, а изначально исполняла запросы на своем собственном движке. «Суть системы Hive заключается в том, что она просто преобразует/компилирует SQL-запросы в программу на языке Java с использованием MapReduce-функций, которая затем исполняется в пакетном режиме аналогично другим Hadoop-задачам. Таким образом, Hive добавляет дополнительный шаг перед использованием MapReduce, тогда как система Impala полностью заменяет MapReduce», — говорит гендиректор Cloudera Майк Олсон.

    Согласно официальной документации, Impala является дополнением к инструментам для работы с Большими Данными, предназначенных для выполнения запросов. Механизм Impala не заменяет фреймворки пакетной обработки, построенные на MapReduce (тот же Hive), которые лучше всего подходят для длительных пакетных обработок транзакций.

    В среде Cloudera механизм Impala позиционируется таким образом:

    Impala состоит из следующих компонентов:

    1. Клиенты. Объекты, включая Hue, клиенты ODBC и JDBC, а также Impala Shell, которые могут взаимодействовать с Impala. Эти интерфейсы, как правило, используются для отправки запросов или выполнения администрирующих задач, вроде подключения к Impala.
    2. Hive Metastore. Содержит информацию о доступных для Impala данных. С помощью Metastore, система узнает, какие базы данных доступны и какова их структура.
    3. Impala. Процесс, функционирующий на DataNodes, координирует и выполняет запросы. Каждый экземпляр Impala может получать, планировать и координировать запросы от клиентов. Запросы распределяются между узлами Impala, после чего эти узлы выполняют параллельные фрагменты запросов, выступают в качестве «воркеров».
    4. HBase и HDFS. Запрашиваемое хранилище данных.

    К «плюсам» Impala относят:

    • Знакомый по другим методам обработки SQL-интерфейс.
    • Возможность запрашивать большие объемы данных у Hadoop.
    • Распределенные запросы в среде кластера для удобного масштабирования.
    • Возможность совместного использования файлов между различными составляющими без копирования, экспорта или импорта.
    • Единую систему для анализа и обработки Больших Данных: клиенты могут избежать дорогостоящего моделирования.

    Подводя итоги по данной системе, можно провести параллель между Hive и Impala. Механизм Impala не поддерживает отказоустойчивость: если одна машина выходит из строя, весь запрос должен быть запущен повторно. С другой стороны, Impala выполняет эти небольшие запросы в 10−50 раз быстрее Hive. Даже если узел «падает» и должен быть перезапущен, общее время выполнения все равно намного меньше, чем у Hive. Таким образом, Impala имеет большее преимущество в запросах, где среда выполнения является достаточно малой, чтобы возможность «падения» узла была минимальной.

    Обе системы достаточно быстры, имеют неплохой функционал и активно развиваются, ведь они выпущены лучшими компаниями по разработке решений для Big Data — Cloudera и Apache. Hive, однако, требует гораздо больше внимания и ухода. Для корректного запуска скрипта, часто нужно установить десяток переменных окружения, интерфейс JDBC в виде HiveServer2 работает откровенно плохо, а выбрасываемые ошибки мало связаны с настоящей причиной проблемы. Impala также не идеальна, но в целом гораздо приятней и более предсказуема.

    6 Presto

    Presto является распределенным open-source механизмом SQL-запросов (SQL query engine) для выполнения интерактивных аналитических запросов к источникам данных разных размеров: от гигабайт до петабайт. Presto — это система для интерактивной аналитики Больших Данных, которая была разработана с нуля корпорацией Facebook и отличается скоростью работы, характерной для коммерческих хранилищ данных.

    Механизм позволяет запрашивать данные с места их «обитания», включая Hive, Cassandra, реляционные БД и даже проприетарные хранилища данных. Один запрос Presto может объединять данные из нескольких источников, что позволяет проводить анализ Big Data в масштабах всей организации. Согласно сведениям официальных источников, Presto ориентирован на аналитиков, которые ожидают получить отклик в пределах нескольких секунд или минут.

    Ниже приведенная диаграмма демонстрирует упрощенную архитектуру Presto. Клиент отправляет SQL-запрос координатору Presto. Координатор обрабатывает, анализирует и планирует выполнение запроса. Планировщик соединяет исполнительный конвейер, распределяет работу по узлам, находящимся ближе к данным, и следит за прогрессом. Клиент извлекает данные из выходной ступени, которая в свою очередь извлекает данные из нижележащих ступеней.

    Исполнительная модель Presto кардинально отличается от Hive и MapReduce. Так, Hive преобразовывает запросы в несколько этапов, которые являются задачами MapReduce, выполняющимися друг за другом. Каждая задача считывает входные данные с диска и записывает промежуточный результат выхода обратно на диск. В то же время Presto использует пользовательский запрос и исполнительный механизм с операторами, предназначенными для поддержки семантики SQL. В дополнение к улучшенной планировке, вся обработка выполняется в оперативной памяти. А наличие конвейеров между ступенями сети предотвращает ненужные вводы/выводы и сопутствующие накладные расходы. Конвейерная исполнительная модель запускает несколько ступеней сразу и переправляет данные с одной ступени на другую, как только они становятся доступными. Благодаря этому, задержка для многих типов запросов сокращается в разы.

    Presto поддерживает ANSI SQL, а это значит, что вдобавок к JSON, ARRAY, MAP и ROW, можно использовать стандартные типы данных SQL, функционал оконного интерфейса, статистические и аппроксимативные агрегатные функции.

    По сравнению с Hive, у Presto есть недостаток: более активное участие в разработке, построении и развертывании определенных пользователем функций. Тем не менее, Presto считается одним из лучших механизмов с открытым исходным кодом для анализа Больших Данных.

    7 Drill

    Drill — еще одно open-source SQL-решение, в рамках которого развивается механизм для организации исполнения SQL-запросов над частично структурированными данными, хранящимися в NoSQL. К числу таковых принадлежат HBase, MongoDB, MapR-DB, HDFS, MapR-FS, Amazon S3, Azure Blob Storage, Google Cloud Storage, Swift, NAS и локальные файлы. Один запрос может объединить данные из нескольких хранилищ. Например, пользователь может объединить сведения с коллекции профиля пользователя в MongoDB с каталогом журналов событий в Hadoop.

    Drill поддерживает стандарт SQL. Бизнес-аналитики и специалисты по Большим Данным могут использовать привычные инструменты для анализа Big Data вроде Tableau, Qlik, MicroStrategy, Spotfire, SAS и Excel, чтобы взаимодействовать с нереляционными БД за счет использования штатных интерфейсов JDBC/ODBC.

    Обработка запроса в Drill обычно включает следующие шаги:

    1. Drill-клиент формирует запрос. В качестве клиента могут выступать интерфейсы JDBC/ODBC, интерфейс командной строки или REST API. Любой Drillbit (один из составных элементов экосистемы) в кластере может принимать запросы от клиентов. Концепция «ведущий-ведомый» (master-slave) отсутствует.
    2. Затем Drillbit анализирует и оптимизирует запрос, после чего генерирует распределенный план запроса, который заточен под быстрое и эффективное выполнение.
    3. Принимающий запрос Drillbit становится ведущим узлом для этого запроса. От Zookeeper он получает список доступных узлов Drillbit в кластере. Ведущий узел определяет подходящие машины для выполнения различных фрагментов запроса, максимально локализует данные.
    4. Ведущий узел определяет порядок выполнения фрагментов запроса на отдельных узлах в соответствии с планом выполнения.
    5. Отдельные узлы заканчивают выполнение этих фрагментов и возвращают данные к ведущему узлу Drillbit.
    6. Ведущий узел передает результаты назад клиенту.

    Drill — далеко не первая в мире система обработки запросов, но точно одна из первых, которая сочетает гибкость и скорость. А все благодаря принципиально новой архитектуре, производительность которой не идет в ущерб гибкости, предоставляемой JSON. Конструкция Drill включает в себя:

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

    Аналитические платформы

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

    8 RapidMiner

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

    Огромное преимущество RapidMiner состоит в том, что для его использования не нужно знать программирование. Здесь реализован принцип визуального программирования, сам код писать не нужно, как не нужно проводить сложные математические вычисления. Все происходит следующим образом: пользователь закидывает данные на рабочее поле, а потом просто перетаскивает операторы в GUI, формируя процесс обработки данных. Разбираться в сгенерированном коде можно, но в большинстве случаев не нужно.

    Данная платформа для анализа Больших Данных «дружит» с Hadoop, правда, если использовать платное расширение RapidMiner Radoop. Расширение требует, чтобы кластер Hadoop был доступен от клиента под управлением RapidMiner Studio. Диаграмма ниже демонстрирует базовую архитектуру Radoop на Studio:

    «Майнер» является расширяемой системой: поддержка языка R и полностью интегрированные операторы системы WEKA позволяют работать на низком уровне.

    Интересная «фишка» RapidMiner — анализ тональности текста — становится доступной с установкой удобной надстройки от стороннего поставщика AYLIEN. Скачать ее можно с RapidMiner Marketplace. AYLIEN, например, может собрать данные из Twitter, а затем проанализировать твиты и выставить им оценку по шкале настроения: положительную, отрицательную или нейтральную.

    Экосистема RapidMiner очень быстро развивается, подстраиваясь под новые платформы (релиз о поддержке базового функционала Spark вышел спустя 2 (!) месяца после выпуска платформы). В связи с этим, от пользователей требуется четкое понимание того, что они делают и с помощью каких из сотен инструментов это делается. Для новичков есть отличная стартовая страница. За помощью также можно обращаться в сообщество RapidMiner.

    9 IBM SPSS Modeler

    Платформа IBM SPPS Modeler — коммерческий конкурент RapidMiner, который характеризуется низким порогом входа для начинающих. Понятность для новичков обеспечивается режимами «автопилота». Авто-модели (Auto Numeric, Auto Classifier) перебирают несколько возможных моделей с разными параметрами, определяя среди них лучшие. Не слишком опытный аналитик может построить на таком решении адекватную модель.

    К основным особенностям SPSS следует отнести:

    1. Автоматизированное моделирование: за один проход можно протестировать несколько методов моделирования, сравнить результаты и выбрать модель для развертывания.
    2. Геопространственная аналитика: с целью лучшего проникновения в суть задачи и увеличения точности прогнозирования, учитываются широта и долгота, почтовые индексы и адреса, объединенные с текущими и историческими данными.
    3. Поддержка технологий с открытым исходным кодом: для улучшения аналитики, можно использовать R, Python, Spark, Hadoop и другие опенсорсные технологии.
    4. Аналитика текстовой информации: путем анализа неструктурированных текстовых данных, охватываются ключевые понятия, темы, настроения и тенденции.

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

    Все достоинства IMB SPSS Modeler может затмить один недостаток, который отсекает крупную аудиторию пользователей. Речь о том, что данная система — это не лучший инструмент для анализа Больших Данных. Атрибуты, которые делают SPSS простым в использовании, слишком ограничены для масштабных подходов при работе с технологиями Big Data. В совсем плохих случаях, SPSS от перегрузки просто «падает».

    Тем не менее, IBM SPSS Modeler остается популярным решением благодаря простоте использования и незатейливому интерфейсу.

    10 KNIME

    KNIME — еще одна бесплатная система для интеллектуального анализа данных, которая даже в базовой версии обладает хорошим функционалом. Подобно RapidMiner, KNIME предлагает интуитивно понятную рабочую среду без необходимости программировать. Здесь также есть ряд операторов, присутствующих в RapidMiner (в KNIME они называются «узлами»).

    Если говорить об анализе текста, данная платформа позволяет выполнять следующие задачи:

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

    KNIME также «умеет» считывать информацию напрямую из Twitter и работать с неструктурированными файлами вроде томов CSV.

    Кроме этого, есть deep learning, веб-анализ, обработка изображений, анализ социальных сетей и другое.

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

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

    11 Qlik Analytics Platform

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

    Аналитическая платформа Qlik предлагает полный доступ к ассоциативной машине индексации данных QIX, которая позволяет устанавливать взаимосвязи между несколькими источниками информации, которые, как правило, скрыты в иерархических моделях данных. «Фишка» в том, что именно QIX применяется компанией Qlik при создании своих остальных решений. QIX Engine использует столбчатое расположение данных в оперативной памяти, что обеспечивает высокую производительность при их индексации и сжатии. На практике это позволяет проводить data mining в более свободной форме, без необходимости предварительно определять возможные пользовательские запросы. В свою очередь, программисты могут более быстро создавать приложения на основе технологий Больших Данных, а пользователи — оперативно получать ответы.

    Архитектура Qlik Analytics Platform включает в себя следующие элементы:

    1. Консоль управления Qlik (QMC) и Dev Hub.
    2. Интерфейсы программирования приложений (API) и наборы средств разработки (SDK) Qlik Sense.
    3. Вспомогательные службы Qlik Engine и Qlik Sense.

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

    12 STATISTICA Data Miner

    Это платформа российской разработки. Система предоставляет наиболее полный набор методов для Data Mining. В частности, в STATISTICA Data Miner реализованы инструменты предварительной обработки, фильтрации и чистки данных, что позволяет эффективно отбирать признаки из сотен тысяч возможных предикторов.

    Особенностью данной платформы является возможность получения непосредственного доступа к базам данных даже без выполнения явных операций экспорта/импорта. ПО «умеет» обрабатывать, считывать и записывать данные почти со всех стандартных файлов. Сами прогнозные модели могут быть сгенерированы в различных форматах (PMML, C++, C#, Java, SAS, хранимые процедуры баз данных).

    Пользователи отмечают, что благодаря встроенному Мастеру Data Mining, выполняющему автоматическое построение моделей, STATISTICA Data Miner отлично подходит людям, не связанным с разработкой ПО (например, аналитикам по маркетингу). Тем не менее, широкий набор методов кластеризации, архитектур нейронных сетей, деревьев классификации и регрессии, многомерного моделирования, анализа последовательностей, ассоциаций и связей делает данную платформу мощным инструментом в руках эксперта.

    Отметим также, что недавно компания представила новый продукт — STATISTICA Big Data Analytics, который, как понятно из названия, дополняет список ПО для анализа Больших Данных. Данная платформа является масштабируемой; она может создавать выборки с помощью MapReduce, искать на движке Lucene/SOLR, проводить аналитику Mahout, работать в «облаке» и с текстом Natural Language Processing. А если интегрировать STATISTICA Big Data Analytics с корпоративной версией STATISTICA Enterprise, это позволит внедрить аналитику Больших Данных на уровне предприятия.

    13 Informatica Intelligent Data Platform

    Компания Informatica называет свою разработку «путем виртуальных данных». Informatica Intelligent Data Platform предоставляет интеллектуальные и управляющие сервисы, которые могут работать с большинством популярных данных и форматов: веб, социальные сети, машинные журналы.

    Данная интеллектуальная платформа для анализа данных включает в себя Vibe — виртуальный механизм, который позволяет произвести интеграцию сопоставленных данных один раз, а затем запускать их в различных средах. Подобно STATISTICA Data Miner, Informatica IDP базируется на интерфейсе типа drag-and-drop, пользователю нужно лишь перетаскивать на рабочую среду необходимые элементы, а все инструкции генерируются системой автоматически.

    Главной «фишкой» Informatica Intelligent Data Platform является подход, касающийся ввода структурированных, частично структурированных и неструктурированных данных на одной семантической волне. Понимание между этими данными возможно благодаря подходам мапинга, эвристики и сопоставлению с образцом.

    Компания Informatica, которая считается одним из главных игроков в сфере разработки аналитических инструментов для работы с технологиями Big Data, гордится тем, что IDP является единственной платформой, получившей награды как от Gartner, так и Forrester почти во всех категориях управления данными.

    Архитектурно Informatica Intelligent Data Platform состоит из 3 слоев:

    1. Vibe — это упомянутый выше движок управления любым типом данных. Поскольку сейчас Vibe является встроенным механизмом, он предоставляет всеобщий доступ к данным, независимо от их местоположения или формата. Так как Vibe исполнен в виде виртуальной машины, движок может работать на любой локальной серверной платформе, кластерах Hadoop или облачном сервисе.
    2. Data Infrastructure. Инфраструктурный слой данных располагается над виртуальной машиной Vibe. Он включает в себя все сервисы, предназначенные для автоматизации непрерывной подачи «чистых», безопасных и подключенных данных в любом масштабе к любой платформе, кластерам Hadoop или облачному сервису.
    3. Data Intelligence. Интеллектуальный слой данных находится поверх Data Infrastructure. Он собирает метаданные, семантические данные и прочую информацию со всей платформы. Как только данные собраны, Data Intelligence сегментирует их для упрощения дальнейшей обработки. Роль данного слоя — предоставить методы для обработки Больших Данных. Речь идет об аналитике, business intelligence (BI), а также operational intelligence (OI) в режиме реального времени. А с недавнего времени Data Intelligence расширила список «навыков» Informatica IDP машинным обучением.

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

    Стоит отметить, что партнерами Informatica по решениям на базе IDP являются компании Cognizant, Capgemini UK, Datawatch, MicroStrategy, Qlik, Tableau и Ultimate Software.

    14 World Programming System

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

    WPS является интерпретатором кода SAS. Главное преимущество данной платформы состоит в том, что она намного дешевле любого ПО для анализа Больших Данных производства SAS. Таким образом, World Programming System — самый выгодный способ запустить программу на SAS без использования программных продуктов SAS. Но поскольку у WPS есть определенные недочеты с чтением/записью формата .sas7dbat, рекомендуется конвертировать данные в их собственный формат. К тому же, у WPS есть собственный редактор, который по части написания и отладки кода даже лучше, чем SAS Enterprise Guide.

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

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


    15 Deductor

    Deductor — аналитическая платформа, разработанная компанией BaseGroup Labs. В Deductor встроены самые востребованные алгоритмы анализа (деревья решений, нейронные сети, самоорганизующиеся карты ), есть десятки способов визуализации и предусмотрена интеграция со множеством источников/приемников данных.

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

    В Deductor реализован сценарный подход, предполагающий визуальное проектирование логики обработки при помощи мастеров без программирования. Аналитики получают все технологии анализа: Data Warehouse, OLAP, Data Mining и могут создавать сценарии анализа без привлечения аналитическая платформа предусматривает очистку данных, в частности, их дедупликацию, проведение оценки схожести объектов, обогащение данных и объединение в единую корректную запись.

    С Deductor можно:

    1. Извлекать данные из разнородных источников, консолидировать их в едином хранилище и отображать в виде отчетов и OLAP-кубов.
    2. Находить скрытые закономерности и оценивать качество моделей с помощью Data Mining.
    3. Сегментировать объекты анализа, определять целевые рынки, оптимизировать работу с потребителями и более рационально использовать ресурсы.

    Платформа поставляется в 3 версиях: Academic, Professional и Enterprise. Первый вариант является абсолютно бесплатным и предназначен для образовательных целей, второй ориентирован на профессиональный анализ данных в рамках рабочих групп, третий — на промышленное корпоративное использование.

    16 SAS Enterprise Miner

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

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

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

    Графический интерфейс реализован по принципу «drag-and-drop», бизнес-пользователи могут быстро и просто создавать модели с помощью автоматизированной среды. Процесс регламентного применения моделей также происходит в автоматическом режиме. Итоговые диаграммы процесса моделирования могут использоваться в качестве самостоятельно документируемого шаблона, который удобно редактировать, обновлять и применять к новым бизнес-задачам, значительно сокращая время, необходимое на первичную подготовку модели. Кроме того, описание модели содержит информацию о том, какой вклад внесла каждая независимая переменная в итоговый результат.

    Итого к основным преимуществам SAS Enterprise Miner отнесем:

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

    Прочие инструменты

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

    17 Zookeeper

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

    В распределенной реализации инструмента есть несколько режимов работы, которые называются тиражируемыми режимами. Один сервер избирается в качестве главного, все остальные — рабочие. фактически реализуется архитектура «master-slave».

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

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

    На практике Zookeeper чаще всего используется как сервис конфигурации, хотя его возможности намного шире.

    18 Flume

    Flume — распределенный сервис для сбора и агрегирования данных журнала событий из различных источников в центральное хранилище данных, например, HDFS. Инструмент используется преимущественно для передачи неструктурированных данных. Flume не ограничивается только журналированием. Поскольку источники данных во Flume являются настраиваемыми, сервис также используется для загрузки данных событий, данных из социальных медиа-платформ, электронной почты, изображений, видео и других источников. Благодаря поддержке нескольких источников данных и горизонтального масштабирования, Flume используется корпорациями вроде Facebook, Twitter, Amazon и eBay для передачи данных в Hadoop.

    Источник Flume в понятном для инструмента формате принимает события, которые передаются в систему с внешнего источника, например, журнала веб-сервера или данных социальных медиа. У Flume есть т. н. «коллекторы», которые собирают данные из разных источников и помещают их в централизованное хранилище вроде HDFS или HBase. Потом данные переходят от журналов веб-серверов к каналам, которые их хранят, пока они не потребляются Flume Sink’ами, которые затем окончательно помещают информацию в хранилище вроде HDFS. Инструмент позволяет увеличить надежность путем организации мульти-потоков, где данные хранятся в нескольких каналах, пока не достигнут HDFS. А поскольку во Flume применяется транзакционный подход, вероятность потери данных перед достижением конечного места назначения исключена.

    К преимуществам Flume отнесем:

    1. Роль посредника потоков данных между источником и приемником. Когда частота поглощения данных меньше частоты их генерации, Flume стремится уравновесить поток по своим каналам.
    2. Данные легко собираются с нескольких источников. Коллекторы Flume способны подключаться к разным источникам с целью сбора разнородных данных и сохранять их в централизованном хранилище.
    3. Flume надежен. Как уже было отмечено, вероятность потери данных перед их поступлением к пункту назначения исключена.
    4. Возможность восстановления. Локальная файловая система проводит резервное копирование канала файла. Также в оперативной памяти присутствует канал, который хранит события в очереди и очень быстро восстанавливает события в случае «падения» коллектора.

    19 IBM Watson Analytics

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

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

    Графический интерфейс системы понятен и приятен, ведь реализована логика «drag-and-drop». Все необходимые данные и графики можно разместить на рабочем пространстве, просто перетаскивая их. Визуализация, графики, диаграммы: все это быстрее помогает разобраться в текущей ситуации. Watson Analytics быстро проводит графическую обработку данных любой сложности.

    Интересно, что с октября 2014 года IBM Watsons Analytics занимается обработкой и структурированием информации пользователей Twitter. Такое сотрудничество помогает выявлять тренды, которые характерны для социума конкретного региона: населенного пункта, страны, материка. IBM Watsons Analytics — это один из ключевых инструментов, которые применяются при работе с технологиями Big Data, прежде всего, в областях здравоохранения и маркетинга.

    20 Dell EMC Analytic Insights Module

    Analytic Insights Module от Dell EMC — это инструмент, который создан с целью объединения самообслуживающейся аналитики с разработкой «облачных» приложений на единой платформе. Такой подход позволяет специалистам по анализу данных сосредоточиться на быстром создании (несколько дней или недель вместо месяцев) моделей с большой ценностью для бизнеса.

    Чтобы реализовать такую концепцию, Dell EMC создала открытую платформу, предназначенную для отслеживания полного жизненного цикла анализа данных с помощью нескольких ключевых компонентов: озера данных (Data Lake), куратора данных (Data Curator), управляющего данными (Data Governor), каталога данных и анализа (Data and Analytic Catalog). С помощью этих составляющих, организации могут собирать нужную информацию путем глубинного анализа и формировать единое виденье относительно всех данных, чтобы пресечь явление силоса данных.

    Data Lake отвечает за консолидацию данных в едином хранилище. Этот компонент нивелирует сложность хранения силоса данных, связанного с большим количеством разрозненной информации. Data Curator базируется на значениях из озера данных и предоставляет единый формат всех изученных и проиндексированных наборов данных как с самого Data Lake, так и с внешних источников. Согласно Dell EMC, куратор данных сохраняет до 80% времени специалистам по анализу данных при подготовке информации для аналитики. Data Governor содержит информацию о происхождении данных и обеспечивает их безопасность на протяжении всего процесса анализа. Также куратор данных позволяет видеть и использовать наборы данных в формате «end-to-end».

    Итого, с Dell EMC Analytic Insights Module пользователь может:

    • исследовать, использовать и индексировать все данные в едином формате с помощью Data Curator;
    • узнать происхождение, обеспечить управление и безопасность для всех приложений и хранилищ данных с помощью Data Governor;
    • преобразовать всю важную информацию в управляемые данными приложения и бизнес-модели.

    21 Windows Azure HDInsight

    HDInsight — это решение Microsoft, предназначенное для развертывания платформы Hadoop на OC семейства Windows Server и в облачной платформе Windows Azure. Инструмент предоставляет оптимизированные аналитические open-source кластеры с открытым исходным кодом для Spark, Hive, MapReduce, HBase, Storm, Kafka и R Server. Каждая из этих технологий для работы с Big Data может быть развернута в качестве управляемого кластера с обеспечением безопасности и мониторинга корпоративного класса.

    Инструмент HDInsight поддерживает соглашение об уровне обслуживания на 99.9%, которое охватывает решение для работы с Большими Данными Azure, а не только экземплярами виртуальных машин. Решение HDInsight предназначено для обеспечения полной избыточности и высокой доступности и предусматривает репликацию головного узла, георепликацию данных и встроенный резервный узел NameNode.

    За счет единого входа, многофакторной проверки подлинности и простого управления миллионами удостоверений в Azure Active Directory, HDIsight обеспечивает защиту ресурсов данных и расширяет локальные средства обеспечения безопасности и контроля до облачного уровня. Также отметим, что инструмент обеспечивает самый высокий уровень непрерывности бизнес-процессов, поскольку обладает расширенными функциями работы с оповещениями, мониторинга и определения упреждающих действий.

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

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

    22 Microsoft Azure Machine Learning

    После успешного вывода на рынок Hadoop-ориентированного инструмента HDInsight, подразделение Azure корпорации Microsoft сделало еще одну весомую заявку на лидерство в области анализа Больших Данных. Речь идет о публичном релизе Azure Machine Learning.

    Это облачный сервис прогнозной аналитики, который позволяет быстро создавать и развертывать предсказательные модели. Система ценится своей простотой: для полноценной работы с машинным обучением в среде Azure Machine Learning не нужно быть математиком. Интегрированная среда разработки — ML Studio — предоставляет «drag-and-drop» инструменты и простые диаграммы потоков данных, что не только уменьшает объем кода, но и, благодаря встроенной библиотеке простых экспериментов (так называются проекты в ML Studio), сохраняет пользователям много времени.

    Инструмент предлагает готовый к использованию набор из библиотек алгоритмов. Их можно использовать для создания предиктивных моделей на подключенных к Интернету компьютерах. Множество примеров и решений находится в Cortana Intelligence Gallery.

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

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

    Пожалуй, именно Azure Machine Learning на сегодняшний день является наилучшим инструментом для работы с машинным обучением.

    23 Pentaho Data Integration

    Система Pentaho Data Integration (PDI) — это компонент комплекса Pentaho, отвечающий за процесс извлечения, преобразования и выгрузки данных (ETL). Несмотря на то, что использовать ETL-системы предполагается в рамках комплекса хранения данных, средства PDI могут быть применены с целью:

    • обмена данными между приложениями или базами данных;
    • экспорта данных из таблиц баз данных в файлы;
    • загрузки массивов данных в базы данных;
    • обработки данных;
    • интеграции в приложения.

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

    Pentaho Data Integration упрощает интеграцию больших объемов данных с помощью «drag-and-drop» инструмента, который перемещает данные из хранилищ в хранилища Big Data. Система также способна дополнять и объединять структурированные источники данных с частично структурированными и неструктурированными источниками, чтобы в итоге сформировать единую картину.

    Инструмент может быть полностью персонализирован: настройка визуализации, интерактивных отчетов, рабочей панели и специальный анализ — все это доступно пользователю. А поскольку PDI на 100% является Java-платформой, построенной на промышленных стандартах вроде веб-сервиса RESTful, интеграция с любым приложением не вызывает проблем.

    24 Teradata Aster Analytics

    Teradata Aster Analytics — это инструмент, который в рамках одного интерфейса и синтаксиса позволяет работать с текстом, графикой, машинным обучением, паттернами и статистикой. Бизнес-аналитики и специалисты по анализу данных могут провести комплексный анализ данных со всего предприятия путем выполнения одного запроса. У Teradata Aster Analytics есть более 100 интегрированных передовых аналитических запросов.

    Данный инструмент позволяет объединить Graph, R и MapReduce в пределах одного фреймворка. Со всеми функциями, которые выполняются как команды SQL, и со всеми аналитическими движками, встроенными в инструмент, Aster Analytics обеспечивает высокую производительность при обработке больших массивов данных.

    Аналитика Teradata Aster Analytics доступна в пределах экосистемы Hadoop и Amazon Web Services.

    Aster Analytics на Hadoop:

    1. Расширяет сценарии использования озера данных. Aster Analytics делает «железнорожденного слона» доступным для большинства бизнес-аналитиков с навыками работы на SQL или R.
    2. Работает нативно. Пользователям не нужно перемещать данные из Hadoop на серверы для анализа данных.
    3. Быстро реализует аналитику. Пользователи могут создавать изолированную программную и рабочую среду на одном кластере Hadoop на одних и тех же данных.

    Aster Analytics на AWS:

    1. Ускоряет окупаемость бизнеса. Компания может быстро подготовить аналитическую изолированную программную среду на облаке и, с целью ускорения процесса развития, использовать встроенные SQL-запросы.
    2. Повышает гибкость аналитики. Специалисту по анализу данных предоставляется мощный набор разноплановых инструментов: каждый аналитик может найти подходящее средство для работы с Большими Данными.
    3. Снижает финансовую нагрузку. Компании могут использовать встроенные передовые аналитические функции и наборы данных без необходимости использования нового оборудования.

    25 SAP BusinessObjects Predictive Analytics

    Это инструмент, который направлен на то, чтобы оптимизировать ресурсы и повысить рентабельность в масштабах всей компании.

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

    С SAP BusinessObjects Predictive Analytics можно:

    • автоматизировать приготовление данных, прогнозное моделирование, развертывание — и, как итог, легко переучить модель;
    • использовать расширенные возможности визуализации, чтобы быстрее сделать выводы;
    • интегрироваться с языком программирования R, чтобы открыть доступ к большому количеству пользовательских скриптов;
    • скооперироваться с SAP HANA.

    SAP BusinessObjects Predictive Analytics расширяет границы возможностей Spark, чтобы предоставить клиентам более продвинутую интерактивную аналитику данных. Актуальная версия инструмента позволяет подключиться к SAP HANA Vora и выполнять прогнозное моделирование автоматически. Используя нативное моделирование Spark на одинаковых экземплярах Spark, SAP HANA Vora позволяет выполнять распределенную обработку автоматизированных алгоритмов.

    Отметим, что Forrester Research в апреле 2015 года наградил SAP статусом лидера в предсказательной аналитике на Больших Данных.

    26 Oracle Big Data Preparation

    Построенный в среде Hadoop и Spark с целью масштабируемости, облачный сервис Oracle Big Data Preparation предлагает аналитикам высоко интуитивный и интерактивный способ подготовки структурированных, частично структурированных и неструктурированных данных для их последующей обработки.

    Как и большинство вышеописанных инструментов, Oracle Big Data Preparation нацелен на бизнес-пользователей, поэтому сервис прост в использовании. Масштабируемость позволяет работать с итерационным машинным обучением в кластерной среде вычислений. Еще одним преимуществом Oracle Big Data Preparation является интеграция с рядом облачных сервисов.

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

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

    К расширению (enrich) следует отнести определение категорий данных и идентификацию их характеристик в терминах атрибутов, свойств и схем, обнаружение метаданных (обнаружение схемы определяет схему/метаданные, которые прямо или косвенно определены в заголовках, полях или тегах).

    Управление и публикации (govern and publications) подразумевают под собой интерактивную панель управления, которая обеспечивает единый график всех обработанных наборов данных с соответствующими метриками и возможностями для дальнейшего детального аудита и анализа. В свою очередь, различные форматы публикаций обеспечивают максимальную гибкость.

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

    Резюме

    Нами был рассмотрен ряд средств для анализа данных от лучших производителей Big Data-решений. Как вы могли заметить, большинство решений являются опенсорсными, то есть имеют открытый исходный код. Фреймворков, баз данных, аналитических платформ и прочих инструментов действительно много, поэтому от вас требуется четкое понимание задачи. Определившись с поставленной целью, вы без проблем подберете нужное средство (или набор средств), которое позволит провести полноценный анализ данных.

    Карта мира машинного обучения

    Лень читать лонгрид — повтыкайте хотя бы в картинку, будет полезно.

    Думаю потом нарисовать полноценную настенную карту со стрелочками и объяснениями, что где используется, если статья зайдёт.

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

    Начну с базового обзора. Сегодня в машинном обучении есть всего четыре основных направления.

    Часть 1. Классическое обучение

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

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

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

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

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

    Классификация

    «Разделяет объекты по заранее известному признаку. Носки по цветам, документы по языкам, музыку по жанрам»

    Сегодня используют для:

    • Спам-фильтры
    • Определение языка
    • Поиск похожих документов
    • Анализ тональности
    • Распознавание рукописных букв и цифр
    • Определение подозрительных транзакций

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

    Классификация вещей — самая популярная задача во всём машинном обучении. Машина в ней как ребёнок, который учится раскладывать игрушки: роботов в один ящик, танки в другой. Опа, а если это робот-танк? Штош, время расплакаться и выпасть в ошибку.

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

    Раньше все спам-фильтры работали на алгоритме Наивного Байеса. Машина считала сколько раз слово «виагра» встречается в спаме, а сколько раз в нормальных письмах. Перемножала эти две вероятности по формуле Байеса, складывала результаты всех слов и бац, всем лежать, у нас машинное обучение!

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

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

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

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

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

    Деревья нашли свою нишу в областях с высокой ответственностью: диагностике, медицине, финансах.

    Два самых популярных алгоритма построения деревьев — CART и C4.5.

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

    Но самым популярным методом классической классификации заслуженно является Метод Опорных Векторов (SVM). Им классифицировали уже всё: виды растений, лица на фотографиях, документы по тематикам, даже странных Playboy-моделей. Много лет он был главным ответом на вопрос «какой бы мне взять классификатор».

    Идея SVM по своей сути проста — он ищет, как так провести две прямые между категориями, чтобы между ними образовался наибольший зазор. На картинке видно нагляднее:

    У классификации есть полезная обратная сторона — поиск аномалий. Когда какой-то признак объекта сильно не вписывается в наши классы, мы ярко подсвечиваем его на экране. Сейчас так делают в медицине: компьютер подсвечивает врачу все подозрительные области МРТ или выделяет отклонения в анализах. На биржах таким же образом определяют нестандартных игроков, которые скорее всего являются инсайдерами. Научив компьютер «как правильно», мы автоматически получаем и обратный классификатор — как неправильно.

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

    Правило буравчика такое: сложнее данные — сложнее алгоритм. Для текста, цифр, табличек я бы начинал с классики. Там модели меньше, обучаются быстрее и работают понятнее. Для картинок, видео и другой непонятной бигдаты — сразу смотрел бы в сторону нейросетей.

    Лет пять назад еще можно было встретить классификатор лиц на SVM, но сегодня под эту задачу сотня готовых сеток по интернету валяются, чо бы их не взять. А вот спам-фильтры как на SVM писали, так и не вижу смысла останавливаться.

    Регрессия

    «Нарисуй линию вдоль моих точек. Да, это машинное обучение»

    Сегодня используют для:

    • Прогноз стоимости ценных бумаг
    • Анализ спроса, объема продаж
    • Медицинские диагнозы
    • Любые зависимости числа от времени

    Регрессия — та же классификация, только вместо категории мы предсказываем число. Стоимость автомобиля по его пробегу, количество пробок по времени суток, объем спроса на товар от роста компании и.т.д. На регрессию идеально ложатся любые задачи, где есть зависимость от времени.

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

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

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

    Для желающих понять это глубже, но тоже простыми словами, рекомендую цикл статей Machine Learning for Humans

    Обучение без учителя

    Обучение без учителя (Unsupervised Learning) было изобретено позже, аж в 90-е, и на практике используется реже. Но бывают задачи, где у нас просто нет выбора.

    Размеченные данные, как я сказал, дорогая редкость. Но что делать если я хочу, например, написать классификатор автобусов — идти на улицу руками фотографировать миллион сраных икарусов и подписывать где какой? Так и жизнь вся пройдёт, а у меня еще игры в стиме не пройдены.

    Когда нет разметки, есть надежда на капитализм, социальное расслоение и миллион китайцев из сервисов типа Яндекс.Толока, которые готовы делать для вас что угодно за пять центов. Так обычно и поступают на практике. А вы думали где Яндекс берёт все свои крутые датасеты?

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

    Обучение без учителя, всё же, чаще используют как метод анализа данных, а не как основной алгоритм. Специальный кожаный мешок с дипломом МГУ вбрасывает туда кучу мусора и наблюдает. Кластеры есть? Зависимости появились? Нет? Ну штош, продолжай, труд освобождает. Тыж хотел работать в датасаенсе.

    Кластеризация

    «Разделяет объекты по неизвестному признаку. Машина сама решает как лучше»

    Сегодня используют для:

    • Сегментация рынка (типов покупателей, лояльности)
    • Объединение близких точек на карте
    • Сжатие изображений
    • Анализ и разметки новых данных
    • Детекторы аномального поведения

    m.neumann/sp2020/cse517/lecturenotes/images/c22kmeans/TimoKmeans.png Всего у нас получается 256 * 256 * 256 = 16 777 216 возможных точек, где может оказаться каждый пиксель изображения, и столько же уникальных цветов(!). А нам-то нужно всего 32. 1. Мы рандомно закидываем в это 3D-пространство 32 центроида (пока еще не обладающие цветовым кодом. Пока что они нужны нам только для первичной кластеризации «3D-взвеси») 2. Далее смотрим, к какому из центроидов каждый пиксель нашей «взвеси» находится ближе. То есть тупо по трем дименшенам. Получаем кластеры первого порядка 3. Далее перемещаем центроиды внутри наших получившихся 32 кластеров первого порядка. Перемещаем так, чтобы центроиды реально были центроидами и были равноудалены от каждой точки в кластере 4. Смотрим, не изменили ли некоторые пиксели принадлежность к кластеру. Ведь в предыдущем шаге 32 центроида переместлись. Наверняка некоторые пиксели оказались теперь ближе к другому центроиду. Границы кластеров чуть-чуть изменились после этого шага за счет смены некоторыми пикселями принадлежности к кластеру 5. Повторяются шаги 3-4 до тех пор, пока не окажется, что центроиды уже не двигаются на шаге 3. То есть они и так уже равноудалены. Когда центроиды окончательно останавливаются, пункт 4 уже неактуален, т.к. изменений нет. Переходим к пункту 6 6. Прекращение перемещения центроидов означает, что у нас есть хорошие сбитые математически выверенные кластеры, сформированные вокруг них. 7. Теперь мы просто смотрим координаты каждого из 32 центроидов. Например (38, 228, 238). И все пиксели, которые у нас были «скластеризованы» вокруг него, перекрашиваем в данный RGB-цвет. 8. Возвращаем все пиксели на место. Готово. У вас 32-цветовое изображение. Вы великолепны! Если где-то ошибся, пардон. Исправьте, если не прав. PS Кстати, нашел ссылку на изображение, содержащее все 16 777 216 RGB-цветов: https://davidnaylor.org/temp/all16777216rgb-diagonal.png

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

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

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

    Правда для начала им приходится найти эти самые «характерные черты», а это уже только с учителем.

    Сжатие изображений — еще одна популярная проблема. Сохраняя картинку в PNG, вы можете установить палитру, скажем, в 32 цвета. Тогда кластеризация найдёт все «примерно красные» пиксели изображения, высчитает из них «средний красный по больнице» и заменит все красные на него. Меньше цветов — меньше файл.

    Проблема только, как быть с цветами типа Cyan ◼︎ — вот он ближе к зеленому или синему? Тут нам поможет популярный алгоритм кластеризации — Метод К-средних (K-Means). Мы случайным образом бросаем на палитру цветов наши 32 точки, обзывая их центроидами. Все остальные точки относим к ближайшему центроиду от них — получаются как бы созвездия из самых близких цветов. Затем двигаем центроид в центр своего созвездия и повторяем пока центроиды не перестанут двигаться. Кластеры обнаружены, стабильны и их ровно 32 как и надо было.

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

    Хитрым задачам — хитрые методы. DBSCAN, например. Он сам находит скопления точек и строит вокруг кластеры. Его легко понять, если представить, что точки — это люди на площади. Находим трёх любых близко стоящих человека и говорим им взяться за руки. Затем они начинают брать за руку тех, до кого могут дотянуться. Так по цепочке, пока никто больше не сможет взять кого-то за руку — это и будет первый кластер. Повторяем, пока не поделим всех. Те, кому вообще некого брать за руку — это выбросы, аномалии. В динамике выглядит довольно красиво:

    Как и классификация, кластеризация тоже может использоваться как детектор аномалий. Поведение пользователя после регистрации резко отличается от нормального? Заблокировать его и создать тикет саппорту, чтобы проверили бот это или нет. При этом нам даже не надо знать, что есть «нормальное поведение» — мы просто выгружаем все действия пользователей в модель, и пусть машина сама разбирается кто тут нормальный.

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

    Уменьшение Размерности (Обобщение)

    «Собирает конкретные признаки в абстракции более высокого уровня»

    Сегодня используют для:

    • Рекомендательные Системы (★)
    • Красивые визуализации
    • Определение тематики и поиска похожих документов
    • Анализ фейковых изображений
    • Риск-менеджмент

    Изначально это были методы хардкорных Data Scientist’ов, которым сгружали две фуры цифр и говорили найти там что-нибудь интересное. Когда просто строить графики в экселе уже не помогало, они придумали напрячь машины искать закономерности вместо них. Так у них появились методы, которые назвали Dimension Reduction или Feature Learning.

    Проецируем 2D-данные на прямую (PCA)

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

    Инструмент на удивление хорошо подошел для определения тематик текстов (Topic Modelling). Мы смогли абстрагироваться от конкретных слов до уровня смыслов даже без привлечения учителя со списком категорий. Алгоритм назвали Латентно-семантический анализ (LSA), и его идея была в том, что частота появления слова в тексте зависит от его тематики: в научных статьях больше технических терминов, в новостях о политике — имён политиков. Да, мы могли бы просто взять все слова из статей и кластеризовать, как мы делали с ларьками выше, но тогда мы бы потеряли все полезные связи между словами, например, что батарейка и аккумулятор, означают одно и то же в разных документах.

    Точность такой системы — полное дно, даже не пытайтесь.

    Нужно как-то объединить слова и документы в один признак, чтобы не терять эти скрытые (латентные) связи. Отсюда и появилось название метода. Оказалось, что Сингулярное разложение (SVD) легко справляется с этой задачей, выявляя для нас полезные тематические кластеры из слов, которые встречаются вместе.

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

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

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

    На эту тему есть неплохая лекция Яндекса — Как работают рекомендательные системы

    Поиск правил (ассоциация)

    «Ищет закономерности в потоке заказов»

    Сегодня используют для:

    • Прогноз акций и распродаж
    • Анализ товаров, покупаемых вместе
    • Расстановка товаров на полках
    • Анализ паттернов поведения на веб-сайтах

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

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

    То же касается интернет-магазинов, где задача еще интереснее — за каким товаром покупатель вернётся в следующий раз?

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

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

    Часть 2. Обучение с подкреплением

    «Брось робота в лабиринт и пусть ищет выход»

    Сегодня используют для:

    • Самоуправляемых автомобилей
    • Роботов пылесосов
    • Игр
    • Автоматической торговли
    • Управления ресурсами предприятий

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

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

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

    Знания об окружающем мире такому роботу могут быть полезны, но чисто для справки. Не важно сколько данных он соберёт, у него всё равно не получится предусмотреть все ситуации. Потому его цель — минимизировать ошибки, а не рассчитать все ходы. Робот учится выживать в пространстве с максимальной выгодой: собранными монетками в Марио, временем поездки в Тесле или количеством убитых кожаных мешков хихихих.

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

    Умные модели роботов-пылесосов и самоуправляемые автомобили обучаются именно так: им создают виртуальный город (часто на основе карт настоящих городов), населяют случайными пешеходами и отправляют учиться никого там не убивать. Когда робот начинает хорошо себя чувствовать в искусственном GTA, его выпускают тестировать на реальные улицы.

    Запоминать сам город машине не нужно — такой подход называется Model-Free. Конечно, тут есть и классический Model-Based, но в нём нашей машине пришлось бы запоминать модель всей планеты, всех возможных ситуаций на всех перекрёстках мира. Такое просто не работает. В обучении с подкреплением машина не запоминает каждое движение, а пытается обобщить ситуации, чтобы выходить из них с максимальной выгодой.

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

    Эта идея лежит в основе алгоритма Q-learning и его производных (SARSA и DQN). Буква Q в названии означает слово Quality, то есть робот учится поступать наиболее качественно в любой ситуации, а все ситуации он запоминает как простой марковский процесс.

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

    Ответ — хрен знает, никак, магии не бывает, исследователи постоянно этим занимаются, изобретая свои костыли. Одни прописывают все ситуации руками, что позволяет им обрабатывать исключительные случаи типа проблемы вагонетки. Другие идут глубже и отдают эту работу нейросетям, пусть сами всё найдут. Так вместо Q-learning’а у нас появляется Deep Q-Network (DQN).

    Reinforcement Learning для простого обывателя выглядит как настоящий интеллект. Потому что ух ты, машина сама принимает решения в реальных ситуациях! Он сейчас на хайпе, быстро прёт вперёд и активно пытается в нейросети, чтобы стать еще точнее (а не стукаться о ножку стула по двадцать раз).

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

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

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

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

    Мастер Йода рекомендует:  Многопоточное программирование в Java 8. Часть первая. Параллельное выполнение кода с помощью
    Добавить комментарий