Создание R-модели
Важно!
Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.
Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.
- См. сведения о перемещении проектов машинного обучения из ML Studio (классической) в Машинное обучение Azure.
- См. дополнительные сведения о Машинном обучении Azure.
Поддержка документации по 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. Рекомендуется скопировать пример в рабочую область и выполнить дальнейшие действия.
Добавьте эти модули к вашему эксперименту: Создание модели R, обучение модели, Оценка модели.
На панели Свойства окна Создание модели Rукажите следующие скрипты:
Сценарий r для инструкторов. предоставляемый здесь скрипт r используется для обучения модели. При выполнении эксперимента он развертывается в модуле обучение модели .
Скорер r Script: Скрипт r, который вы задаете на входе, предназначен только для оценки. При выполнении эксперимента он развертывается в модуле Оценка модели .
Пример эксперимента также включает модуль выполнение скрипта 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 | Необученная модель |