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

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

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

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

Примечание

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

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

Обзор модуля

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

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

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

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

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

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

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

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

В этом примере из Коллекция решений ии 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, в котором содержится упрощенный алгоритм классификатора Байеса, который нам необходимо использовать. поскольку это один из пакетов, предварительно установленных в среде Машинное обучение, вам не нужно загружать и устанавливать пакет.

  • Следующие строки получают столбцы функций и столбец меток из набора данных и объединяют их в новый кадр данных 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 переменной.

Scoring script (Скрипт оценки)

В следующем коде показан тип кода 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. развертывание веб-службы Машинное обучение

По умолчанию веб-служба ожидает получения всех входных столбцов из данных для обучения, в том числе столбца меток. Можно добавить экземпляр 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.

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

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

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

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

См. также раздел

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