В этой статье представлен обзор проекта, который выполняется с использованием JRI и Java для создания моделей машинного обучения в R. Это приложение можно использовать в качестве расширения для существующих приложений Java. Чтобы использовать это приложение, необходимо установить и настроить среды R и JRI, как описано далее в этой статье. Исходный код проекта можно найти по адресу https://github.com/danula/wso2-ml-r.

Что такое JRI?

JRI — это интерфейс Java/R, обеспечивающий функциональность Java API для R. Домашняя страница проекта описывает, как первоначально настроить JRI в различных средах. JRI использует собственный интерфейс Java для доступа к собственной библиотеке JRI, которая вызывает библиотеку R. Чтобы настроить JRI, пользователь должен установить переменные среды и настроить собственную библиотеку Java.

Настройка R и JRI в Debian/Ubuntu

Добавьте следующую строку в /etc/apt/source.list, где ${version_name} должно быть надежным, точным, utopic, lucid и т. д. в соответствии с вашей версией Ubuntu.

deb http://cran.rstudio.com/bin/linux/ubuntu ${version_name}/

Аутентификация

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys E084DAB9

Обновить

sudo apt-get update

Установите R и rJava

sudo apt-get install r-base-dev r-cran-rjava

Установка необходимых пакетов в среду R

После успешной установки R нам нужно установить необходимые пакеты в R. В следующей статье приведены инструкции по установке пакетов R. http://www.r-bloggers.com/installing-r-packages/ Для описанного здесь приложения требуются пакеты Caret и pmml, а также все зависимые от них пакеты.

Ввод и процесс

Входные данные приложения представляют собой простой объект JSON со следующей структурой. Функции/атрибуты набора данных можно указать в виде массива JSON, как показано на схеме ниже.

Пример ввода можно посмотреть по адресу https://github.com/danula/wso2-ml-r/blob/master/src/test/resources/workflow-1.json.

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

После того, как модель сгенерирована, приложение выводит описание сгенерированной модели на языке разметки предиктивной модели (PMML).

Расширение текущей функциональности

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

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

После создания класса Algorithm необходимо зарегистрировать новый алгоритм в файле algorithms.properties в следующем формате.

Algorithm Name=Algorithm Class

Первоначально опубликовано на madawas.tumblr.com.