Содержание


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

Использование аналитических компонентов службы IBM Bluemix dashDB, включая RStudio и среду разработки web-приложений Shiny, при решении задачи по анализу данных для конкурса Kaggle

Comments

В статье описываются возможности службы dashDB на примере задачи по анализу данных для конкурса Kaggle. Рассказывается о том, как использовать платформу IBM Bluemix™ и аналитические компоненты dashDB, чтобы участие в этом конкурсе было максимально результативным. Даже если вы не планируете участвовать в конкурсе Kaggle, эта статья позволит вам лучше понять аналитические возможности службы dashDB.

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

Рисунок 1. Примеры конкурсов Kaggle
Image showing Kaggle cometitions
Image showing Kaggle cometitions

Что вам потребуется для разработки приложения

  • Учетная запись в Bluemix
  • Знакомство с языком R.

Запустить приложениеПолучить код

Конкурс Titanic: Machine Learning from Disaster

В этом руководстве мы будем использовать опубликованную в Kaggle задачу Titanic: Machine Learning from Disaster. Более 2000 конкурсантов уже взялись за решение этой задачи, и она очень популярна среди тех, кто приступает к изучению методов углубленного анализа данных.

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

Photo image of RMS Titanic
Photo image of RMS Titanic

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

Рисунок 2. Пример дерева решений
Image showing Titanic and a sample decision tree
Image showing Titanic and a sample decision tree

В этом руководстве результатами являются:

  • текстовый файл для отправки на конкурс Kaggle и тестирования точности анализа;
  • документ в формате R Markdown, в котором объясняются некоторые допущения;
  • приложение Shiny.

Для решения этой задачи Kaggle требуются некоторые дополнительные инструменты. В этом руководстве мы объясним, какие инструменты являются наилучшими и почему.

Инструмент R наиболее часто используется участниками конкурсов Kaggle, значительно превосходя по популярности следующие за ним Matlab и SAS. На рисунке 3 показана диаграмма, демонстрирующая популярность инструментов, используемых в Kaggle.

Рисунок 3. Популярность инструментов, используемых участниками конкурсов Kaggle
Image showing popular tools

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

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

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

Возможности dashDB

IBM dashDB — это мощное решение для организации хранилищ данных в облачной среде, предоставляющее развитые средства анализа.

Это решение не только обеспечивает хранение данных, но и полностью интегрировано с R. Пользователь получает встроенный в браузер полный экземпляр RStudio — лучшей среды разработки на R. IBM dashDB оптимизирует решение любой аналитической задачи, предоставляя пользователю возможность применять наиболее предпочтительные инструменты.

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

Шаг 1. Копирование репозитория из Github

Щелкните по кнопке Получить код в начале статьи, чтобы экспортировать исходные данные из Github. Щелкните по кнопке Download ZIP для загрузки всего проекта.

Screen capture showing Download Zip
Screen capture showing Download Zip

Шаг 2. Создание экземпляра dashDB в Bluemix

  1. Войдите в Bluemix под вашей учетной записью (или зарегистрируйтесь для бесплатного пробного использования).
  2. Перейдите на панель управления Dashboard и прокрутите вниз до раздела Services.
  3. Щелкните по кнопке Add a service or API.Screen capture showing Add a Service
  4. Выберите категорию Big Data или используйте поле поиска в верхней части вкладки Catalog для перехода к службе dashDB. Screen capture showing part of the IBM Bluemix Catalog
    Screen capture showing part of the IBM Bluemix Catalog
  5. Щелкните по dashDB и заполните следующие поля:
    1. В поле App выберите Leave unbound.
    2. В поле Service Name оставьте значение по умолчанию.
    3. В поле Selected Plan выберите Entry. При необходимости впоследствии план можно будет изменить.
    4. Нажмите кнопку Create. Screen capture showing Create
      Screen capture showing Create

    Через несколько секунд экземпляр dashDB станет доступен на вашей панели Bluemix.

Шаг 3. Загрузка данных в dashDB

В большинстве конкурсов Kaggle участникам предлагаются два набора данных:

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

Эти наборы данных находятся в каталоге data репозитория, загруженного из Github на шаге 1.

Для загрузки этих наборов данных в dashDB:

  1. Щелкните по службе dashDB на панели IBM Bluemix и выберите Launch. Screen capture showing Launch
    Screen capture showing Launch
  2. В открывшейся административной консоли IBM dashDB нажмите на кнопку Load your data.
  3. В поле File Name укажите файл test.csv, щелкнув по кнопке Browse files. Все остальные настройки оставьте без изменения. Щелкните по кнопке Load File и нажмите Next. Screen capture showing Load File
    Screen capture showing Load File
  4. На вкладке Choose the target выберите Create a new table and load и нажмите на кнопку Finish. Через несколько секунд ваши данные будут загружены в базу данных.
  5. Повторите эти действия для набора данных train.csv.

Шаг 4. Открытие проекта в RStudio

  1. Чтобы открыть RStudio, в главном меню выберите Analytics, затем R Scripts. Screen capture showing R Scripts
  2. Щелкните по RStudio. Откроется новая вкладка для авторизации. Ваши имя пользователя и пароль можно узнать, перейдя Connect→Connection Settings в административной консоли dashDB.Screen capture showing username and password
    Screen capture showing username and password

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

    Screen capture showing RStudio embedded in web browser
    Screen capture showing RStudio embedded in web browser
  3. На панели Files щелкните по Upload и выберите zip-файл TitanicShinyApp-master.zip, загруженный из Github. (Убедитесь в том, что вы загружаете zip-архив, поскольку разархивированная версия не присоединится как один файл.) Screen capture showing uploading file
  4. В консоли RStudio выполните приведенную далее команду. На каждое всплывающее сообщение отвечайте Yes.

    source("TitanicShinyApplication-master/init.r")

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

Шаг 5. Анализ данных

IBM dashDB включает R-пакет ibmdbR, который уже установлен в вашем экземпляре RStudio в dashDB. Этот пакет реализует на уровне базы данных множество простых и сложных операций R, устраняя свойственное R ограничение на основную память и обеспечивая полноценную параллельную обработку данных.

В языке R для хранения данных используются таблицы данных (data frame), похожие на электронные таблицы. Чтобы создать таблицу данных из содержимого базы данных, выполните следующие команды:

library(ibmdbR)
con <- idaConnect("BLUDB","","")
idaInit(con)
query1<-paste('select * from train')
trainDF <- idaQuery(query1,as.is=F)

На рисунке 4 показана таблица данных в RStudio.

Рисунок 4. Снимок экрана с фрагментом таблицы данных для задачи Titanic
Screen capture of the data frame for the Titanic data set
Screen capture of the data frame for the Titanic data set


Загрузив данные в RStudio, можно применять для их исследования множество различных методик и строить предиктивные модели. В этом руководстве не описываются математические аспекты предиктивного моделирования. Чтобы представить модель на конкурс, необходимо создать CSV-файл с идентификаторами пассажиров PassengerID и прогнозами выживания Survived. В руководстве Getting Started with R: Titanic Competition in Kaggle приведены некоторые методики, которые можно использовать:

  • Простое допущение (все умирают)
  • Ручной выбор закономерностей (модель «пол-класс»)
  • Дерево решений
  • Разработка признаков
  • Алгоритм Random Forest.

Шаг 6. Развертывание приложения Shiny

В RStudio можно использовать среду разработки Shiny для создания интерактивных web-визуализаций и распространения результатов.

Приложения R Shiny можно запускать и создавать разными способами. Например, приложение можно запустить непосредственно из репозитория GitHub следующей командой:

runGitHub("TitanicShinyApplication","aruizga7")

Файлы приложения R Shiny включены в репозиторий, который был загружен на шаге 4. Приложение можно настраивать. Для его запуска выполните следующую команду:

runApp("TitanicShinyApplication-master")

При использовании приложения R Shiny не требуется знание HTML, CSS или JavaScript. В анализ можно добавлять различные компоненты, такие как схемы, элементы управления, виджеты и экраны. Наше приложение Titanic имеет четыре вкладки:

  • Data Exploration. С этой вкладки всегда начинается работа над проектом по углубленному анализу данных. Она позволяет ознакомиться с данными, получить некоторое представление о них или обнаружить интересные поднаборы. В левом меню можно выбирать различные атрибуты для осей x и y, а также использовать переключатели для фильтрации данных. Screen capture showing the data exploration tab in the R Shiny application
    Screen capture showing the data exploration tab in the R Shiny application
  • Survival by age range. На этой вкладке показаны две диаграммы. Первая — это гистограмма возрастных диапазонов. Расположенный слева элемент управления позволяет выбирать количество возрастных диапазонов, отображаемых на диаграмме. Вторая диаграмма показывает распределение возрастов по классам. Screen capture showing a histogram of age ranges and a chart of age distribution by class
    Screen capture showing a histogram of age ranges and a chart of age distribution by class
  • Decision tree. Эта вкладка сгенерирована с использованием пакета rpart. Используя переключатели слева, можно выбирать переменные, используемые при построении дерева решений.

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

    Screen capture showing a decision tree
    Screen capture showing a decision tree
  • Prediction. На этой вкладке показано меню характеристик, которые можно использовать как входные данные для дерева решений. Дерево решений используется для прогнозирования выживания пассажира исходя из его характеристик. Screen capture showing prediction
    Screen capture showing prediction

Заключение

В руководстве описано решение IBM dashDB, объединяющее технологии хранения и анализа данных в облачной среде и полностью интегрированное с RStudio для поддержки обширных возможностей анализа. Продемонстрировано создание в IBM Bluemix экземпляра службы dashDB с интегрированными средствами анализа R для разработки предиктивной модели на базе набора данных. Кроме того, описано использование среды R Shiny для генерирования надежных интерактивных визуализаций и прогнозов. Вы также узнали о конкурсе Kaggle Data Mining Competition. Предлагаем вам изучить конкурсные задачи и разработать собственные предиктивные модели и визуализации с использованием описанных здесь мощных инструментов.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Большие данные и аналитика, Облачные вычисления
ArticleID=1022122
ArticleTitle=Разработка предиктивной аналитической модели для сложного набора данных
publish-date=11242015