Создание R-модели

Создает модель R с помощью настраиваемых ресурсов

Категория: Преобразование или управление данными

Примечание

Применимо к: машинное обучение Studio (классическая модель)

Это содержимое относится только к Studio (классическая модель). Аналогичные модули перетаскивания были добавлены в конструктор Машинное обучение Azure. Дополнительные сведения см. в статье сравнение двух версий.

Обзор модуля

В этой статье описывается, как использовать модуль создания модели R в машинное обучение Azure Studio (классическая модель) для создания обученной модели из скрипта R.

Модель можно создать на основе любого из сведений, включенного в пакет R в среде Машинное обучение Azure.

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

Предупреждение

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

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

Настройка создания модели R

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

В этом примере из Коллекция решений ии Azure реализуется классификатор упрощенного алгоритма Байеса с двумя классами с использованием популярного e1070 пакета: + Create модели R. Рекомендуется скопировать пример в рабочую область и выполнить дальнейшие действия.

  1. Добавьте эти модули к вашему эксперименту: Создание модели R, обучение модели, Оценка модели.

  2. На панели Свойства окна Создание модели R укажите следующие скрипты:

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

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

    Код дополнительного модуля Python см. в разделе модуль Python для оценки модели.

Сценарий обучения

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

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

library(e1071)
features <- get.feature.columns(dataset)
labels   <- as.factor(get.label.column(dataset))
train.data <- data.frame(features, labels)
feature.names <- get.feature.column.names(dataset)
names(train.data) <- c(feature.names, "Class")
model <- naiveBayes(Class ~ ., train.data)
  • Первая строка загружает e1071, пакет R, в котором содержится упрощенный алгоритм классификатора Байеса, который нам необходимо использовать. Так как это один из пакетов, предварительно установленных в среде машинного обучения Azure, нет необходимости его загружать или устанавливать.

  • Следующие строки получают столбцы функций и столбец меток из набора данных и объединяют их в новый кадр данных R с именем train.data :

    features <- get.feature.columns(dataset)   
    labels <- as.factor(get.label.column(dataset))   
    train.data <- data.frame(features, labels)
    feature.names <- get.feature.column.names(dataset)
    
  • Обратите внимание на использование следующих предопределенных функций:

    • get.label.columns() Возвращает столбец, выбранный в качестве метки класса в модуле обучение модели .

    • get.feature.columns()выбирает столбцы, которые были обозначены в наборе данных как функции.

      По умолчанию все столбцы, кроме столбца меток, считаются функциями в студии (классическая модель). Таким образом, чтобы пометить определенные столбцы как компоненты, используйте команду изменить метаданныеили выберите набор столбцов в скрипте R.

    • get.feature.column.names(dataset) Возвращает имена столбцов компонентов из набора данных.

  • Имена из объединенного набора данных обозначаются как имена столбцов в train.data , а Class для столбца меток создается временное имя.

    names(train.data) <- c(feature.names, "Class")
    
  • В последней строке кода определяется алгоритм-классификатор Байеса упрощения в качестве функции переменных (компонентов) и результатов (меток) в train.data кадре данных.

    model <- naiveBayes(Class ~ ., train.data)
    
  • Во всех скриптах создания, обучения и оценки необходимо использовать имя переменной model .

Скрипт оценки

В следующем коде показан тип кода R, который можно указать в Скорер r Script.

library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
  • Первая строка загружает пакет.

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

  • Третья строка применяет к вероятностям пороговое значение «0,5» при назначении прогнозируемых меток класса.

  • Последняя строка объединяет вероятности и метки класса в блок выходных данных scores.

  • Кадр данных, который передается модулю оценки модели , должен иметь имя scores .

Необязательный Скрипт оценки Python

Пример эксперимента в Коллекция решений ИИ Azure включает следующий скрипт Python, который используется для создания метрик и диаграмм для оценки модели.

def azureml_main(dataframe):
    import matplotlib
    matplotlib.use("agg")
    
    from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score, roc_curve
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    scores = dataframe.ix[:, ("Class", "classes", "probabilities")]
    ytrue = scores["Class"]
    ypred = np.array([float(val) for val in scores["classes"]])    
    probabilities = scores["probabilities"]
    
    accuracy, precision, recall, auc = \
    accuracy_score(ytrue, ypred),\
    precision_score(ytrue, ypred),\
    recall_score(ytrue, ypred),\
    roc_auc_score(ytrue, probabilities)
    
    metrics = pd.DataFrame();
    metrics["Metric"] = ["Accuracy", "Precision", "Recall", "AUC"];
    metrics["Value"] = [accuracy, precision, recall, auc]

# Plot ROC Curve
    fpr, tpr, thresholds = roc_curve(ytrue, probabilities)
    fig = plt.figure()
    axis = fig.gca()
    axis.plot(fpr, tpr, linewidth=8)
    axis.grid("on")
    axis.set_xlabel("False positive rate")
    axis.set_ylabel("True positive rate")
    axis.set_title("ROC Curve")
    fig.savefig("roc.png")

    return metrics,

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

После запуска эксперимента можно опубликовать полный эксперимент в качестве веб-службы.

Обновленные инструкции по созданию веб-службы из эксперимента (классическая модель) см. в разделе Пошаговое руководство шаг 5. Развертывание веб-службы машинное обучение Azure

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

Технические примечания

  • Модуль создания модели R поддерживает использование только Cran R. Нельзя выбрать другую версию R или использовать Microsoft R Open.

  • Модель кэшируется после первого запуска модуля, и модуль больше не вызывается при последующих запусках, пока в сценарии входных данных не будут внесены какие-либо изменения. Следует учитывать такое поведение, если R-сценарии используют что-либо из следующего:

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

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

Таблица предварительно определенных функций

Использование Описание
get.feature.columns(dataset) Возвращает все столбцы признаков.
get.label.column(dataset, label.type=TrueLabelType) Возвращает столбец меток по типу.

Список доступных типов см. в разделе констант.
get.label.column.names(dataset) Возвращает имена всех столбцов меток.
get.label.column.name(dataset, label.type=TrueLabelType) Возвращает имя столбца меток по типу.

Список доступных типов см. в разделе констант.
get.label.column.types(dataset) Возвращает типы всех столбцов меток.
get.feature.column.names(dataset) Возвращает имена всех столбцов признаков.
dataset < - set.score.column(dataset, score.type, column.name) Устанавливает столбец оценок по типу.

Список доступных типов см. в разделе констант.
dataset < - set.feature.channel(dataset, channel.name, column.names) Задает канал компонентов по имени.

Список доступных имен см. в разделе констант.

Таблица предварительно определенных констант

Константа Описание
TrueLabelType Тип столбца меток со значением true
ScoredLabelType Тип столбца меток с оценками
RawScoreType Тип столбца необработанных оценок
CalibratedScoreType Тип столбца калиброванных оценок
ScoredProbabilitiesMulticlassColumnTypePattern Шаблон для подготовки типа столбцов оцененных вероятностей для многоклассового классификатора
BayesianLinearRegressionScoresFeatureChannel Имя канала компонентов с оценками по байесовской линейной регрессии
BinaryClassificationScoresFeatureChannel Имя канала признаков с оценками по двоичной классификации
MulticlassClassificationScoresFeatureChannel Имя канала признаков с оценками по многоклассовой классификации
OrdinalRegressionScoresFeatureChannel Имя канала признаков с оценками по порядковой регрессии
RegressionScoresFeatureChannel Имя канала признаков с оценками по модели регрессии

Примеры

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

Ожидаемые входные данные

Имя Type Описание
R-сценарий обучения Скрипт R-сценарий, который принимает набор данных в качестве входных данных и выводит необученную модель.
Сценарий оценки R Скрипт R-сценарий, который принимает модель и набор данных в качестве входных данных и выводит оценки, указанные в сценарии.

Выходные данные

Имя Type Описание
Моделирование Интерфейс ILearner Необученная модель

См. также

Выполнить сценарий R
Модули языка R