Содержание


Построение системы интеллектуального анализа данных с использованием Java, Weka и службы dashDB

Добавьте хранилище данных и аналитические инструменты в свое приложение в облачной среде IBM Bluemix

Comments

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

Мы решили создать простое веб-приложение, которые мы со временем сможем совершенствовать. В нем используется код алгоритма классификации, который мы разработали на языке Java™ с помощью Weka, инструмента машинного обучения с открытым исходным кодом. Для выполнения анализа данных о клиентах мы можем развернуть свое Java-приложение в Bluemix и воспользоваться службой dashDB (прежнее название: Analytics Warehouse и BLU Acceleration). Эта служба обеспечивает простоту и высокую производительность, а также масштабирование до корпоративных размеров, если мы решим наращивать свою модель или дополнить свое приложение другими видами анализа данных. Наконец, мы выбрали Twitter Bootstrap в качестве платформы web-разработки за гибкость веб-интерфейса, ориентированного на мобильные устройства, и возможность легко адаптироваться ко множеству устройств и браузеров, используемых нашими аналитиками.

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

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

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

  • Знакомство с разработкой Java-приложений
  • Знакомство с современной front-end средой, такой как Twitter Bootstrap.
  • Знание инструментов статистического анализа, например, Weka или R.

Шаг 1. Создание приложения в Bluemix

Войдите в Bluemix.

Экран входа в Bluemix
Экран входа в Bluemix

На странице панели управления нажмите кнопку Add an application.

В нашем случае создается Java-приложение. В разделе Runtimes выберите .java liberty (Liberty для Java).

Во всплывающем окне выберите CREATE APP.

В следующем всплывающем окне введите имя приложения и имя узла, затем нажмите кнопку CREATE.

Диалоговое окно Create application
Диалоговое окно Create application

Bluemix создаст приложение в рабочей области и запустит Java runtime. Вы узнаете, когда приложение будет успешно запущено, по подтверждению, отображаемому на приборной панели.

Подтверждения создания приложения
Подтверждения создания приложения

Шаг 2. Создание службы dashDB

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

Нажмите кнопку Add new service в разделе Services этой страницы.

Добавление новой службы
Добавление новой службы

Выберите в качестве добавляемой службы dashDB.

Появится всплывающее окно с дополнительной информацией о службе. В следующем всплывающем окне нажмите кнопки ADD TO APPLICATION и CREATE.

Диалоговое окно создания экземпляра службы
Диалоговое окно создания экземпляра службы

Шаг 3. Исследование службы dashDB (факультативно)

На веб-консоли службы имеется несколько инструментов анализа данных, включая загрузку и запросы данных, анализ данных с помощью R или Excel®, составление отчетов с помощью Cognos и отраслевые модели, которые помогают работать с конкретными отраслями. Стоит изучить этот впечатляющий набор доступных инструментов для будущих проектов.

На странице обзора приложения выберите службу dashDB.

Страница обзора приложения
Страница обзора приложения

На следующей странице щелкните на Launch the console.

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

Веб-консоль
Веб-консоль

Шаг 4. Загрузка данных в dashDB (факультативно)

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

  1. В веб-консоли DashDB выберите вкладку Manage, затем выберите Load Data.
  2. Мы будем загружать данные из CSV-файла. Выберите файл для загрузки на экране Quick load. Оставьте все значения параметров по умолчанию и нажмите кнопку Load File. Загрузка данных
    Загрузка данных
  3. Увидев окно предварительного просмотра таблицы, нажмите кнопку Next.
  4. На экране Choose the target выберите Create a new table and load. Нажмите кнопку Next.
  5. Измените имя Table name на churntrainingset. Можно выбрать другое имя таблицы, но не забудьте отредактировать код. В столбце churn измените Data type на VARCHAR. Во всех остальных столбцах можно оставить значения по умолчанию. Нажмите кнопку Finish.
  6. Вы должны увидеть сообщение об успешной загрузке. Данные должны быть загружены.

Шаг 5. Загрузка кода

Получите код, если вы еще не сделали этого.

Выберите EDIT CODE. Войдя в систему, вы увидите код.

Щелкните на File > Export > Zip,чтобы загрузить код в свой компьютер.

Шаг 6. Объяснение кода

Пример приложения состоит из следующих компонентов.

  • FileLocationContextListener создает папку для загрузки файлов на сервер.
  • Если пользователь выбирает базу данных для загрузки обучающего набора модели, то введенные сведения используются для загрузки данных в объект Instances в качестве набора TrainingSet. Затем этот набор TrainingSet используется для создания модели NaiveBayes. В противном случае для создания модели используется таблица базы данных по умолчанию.
  • Пользователь может загрузить CSV-файл в качестве тестового набора Testing set. Этот файл загружается в папку, предварительно созданную на сервере.
  • В качестве основного формата Weka использует формат Attribute-Relation File Format (ARFF), включая необходимые ему атрибуты и набор данных. CSV2ARFF.java – это независимая утилита, которая преобразует CSV-файлы в файлы ARFF, сохраняя их в той же папке на сервере.
  • Затем ARFF-файл загружается в объект Instances в качестве набора TestingSet.
  • Для всех экземпляров TestingSet используется модель NaiveBayes для классификации выходных данных по категориям Churn или Not Churn.
  • Наконец, в пользовательском интерфейсе отображается соответствующий результат.

Шаг 7. Создание WAR-файла

Чтобы перенести код в Bluemix, нужно создать WAR-файл. Это легко сделать в Eclipse. В примере WAR-файл уже есть.

Выберите File > Import. В диалоговом окне выберите Existing Projects into Workspace, затем выберите Next.

В следующем диалоговом окне найдите загруженные файлы.

Импорт проекта
Импорт проекта

Можно оставить все настройки по умолчанию. Нажмите кнопку Finish. Проект будет добавлен в ваш Eclipse Client.

Чтобы экспортировать его как WAR-файл, щелкните на проекте в Project Explorer правой кнопкой мыши. Выберите Export > War File. Сохраните WAR-файл в отдельном каталоге.

Экспорт в виде WAR-файла
Экспорт в виде WAR-файла

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

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

Выполните команду cf push. Введите имя приложения, необходимый объем памяти, число экземпляров и путь к WAR-файлу. Для этого приложения выделите 512 МБ памяти и один экземпляр: cf push bludemo -m 512m -pBLUDemo.war .

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

Если вы внесли изменения в приложение, повторите процесс. Создав новый WAR-файл, выполните ту же команду, чтобы передать его в Bluemix.

Альтернативные шаги: развертывание приложения

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

Получив код в своей рабочей области (шаг 5), измените файл с именем manifest.yml.

Измените значение name и host на имя приложения и хоста. Это должно быть одно и то же имя. Файл сохранится автоматически.

Нажмите кнопку Deploy, и DevOps Services попытается развернуть приложение в соответствии с файлом manifest.yml. При развертывании DevOps Services запросит учетные данные. Выполните шаг 4, чтобы загрузить данные примера. После этого демонстрационное приложение начнет работать.

Заключение

Теперь вы знаете, как dashDB обеспечивает службы хранилища и анализа данных на платформе Bluemix и как разработать и развернуть мощное аналитическое приложение с помощью технологии базы данных IBM в облаке. Это обеспечит возможность быстро и легко выполнять интеллектуальный анализ данных в облаке.


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


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Когнитивное программированиеs, Большие данные и аналитика, Облачные вычисления, Технология Java, Information Management, Web-архитектура
ArticleID=998791
ArticleTitle=Построение системы интеллектуального анализа данных с использованием Java, Weka и службы dashDB
publish-date=08202014