Criar modelo de R
Importante
O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.
A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).
- Confira informações sobre como mover projetos de machine learning do ML Studio (clássico) para o Azure Machine Learning.
- Saiba mais sobre o Azure Machine Learning.
A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.
Cria um modelo R usando recursos personalizados
Categoria: Transformação/manipulação de dados
Observação
Aplica-se a: Machine Learning Studio (clássico) somente
Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.
Visão geral do módulo
Este artigo descreve como usar o módulo Criar Modelo do R no Machine Learning Studio (clássico) para criar um modelo sem treinamento de um script R.
Você pode basear o modelo em qualquer aluno incluído em um pacote R no Machine Learning ambiente.
Depois de criar o modelo, você pode usar Treinar Modelo para treinar o modelo em um conjuntos de dados, como qualquer outro aluno no Machine Learning. O modelo treinado pode ser passado para o Modelo de Pontuação para usar o modelo para fazer previsões. O modelo treinado pode, então, ser salvo e o fluxo de trabalho de pontuação pode ser publicado como um serviço Web.
Aviso
No momento, não é possível passar os resultados pontuados de um modelo do R para Avaliar Modelo ou Modelo de Validação Cruzada. Se precisar avaliar um modelo, você poderá escrever um script R personalizado e executá-lo usando o módulo Executar Script R .
Além de usar o Criar Modelo do R para salvar e rea própria utilização de módulos personalizados do R, você pode criar sua própria implementação de um processo de modelagem e gerenciamento de dados usando R, carregar os arquivos em formato recortado para seu workspace e, em seguida, registrar o pacote como um módulo personalizado. Para obter mais informações, consulte Módulos personalizados do R.
Como configurar Criar Modelo do R
O uso deste módulo requer conhecimento intermediário ou especialista do R. O módulo dá suporte ao uso de qualquer aluno incluído nos pacotes do R já instalados no Machine Learning.
Este exemplo do Galeria de IA do Azure implementa um classificador naïve Bayes de duas classes usando o pacote popular e1070
: + Criar Modelo R. Recomendamos que você copie o exemplo para seu workspace e acompanhe-o.
Adicione estes módulos ao seu experimento: Criar Modelo R, Treinar Modelo, Pontuar Modelo.
No painel Propriedades de Criar Modelo R, forneça estes scripts:
Script R do treinador: o script R que você fornece aqui é usado para treinar o modelo. Quando você executar o experimento, ele será implantado no módulo Treinar Modelo .
Script R do Scorer: o script R que você fornece nessa entrada é apenas para pontuação. quando você executar o experimento, ele será implantado no módulo Modelo de Pontuação .
O experimento de exemplo também inclui o módulo Executar Script Python , que é usado para plotar grafos para avaliação de modelo. Este módulo é opcional ao publicar em um serviço Web, mas útil ao desenvolver o experimento.
- Para exibir os gráficos do script Python, clique com o botão direito do mouse no módulo python, selecione Dispositivo Python e selecione Visualizar.
- Para exibir apenas as métricas do modelo, clique com o botão direito do mouse no módulo python, selecione Python Dataset e selecione Visualizar.
Para o código no módulo opcional do Python, consulte Módulo python para avaliação de modelo.
Script de treinamento
O exemplo a seguir demonstra o tipo de código que você pode usar no script R do Treinador.
Esse script carrega um pacote R, cria um modelo usando um learner do pacote e configura o recurso e as colunas de rótulo usando as constantes e funções predefinidos fornecidas em Criar Modelo 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)
A primeira linha carrega o pacote R, e1071, que contém o algoritmo classificador Naïve Bayes que desejamos usar. Como esse é um dos pacotes pré-instalados no ambiente Machine Learning, você não precisa baixar nem instalar o pacote.
As próximas linhas obterão as colunas de recurso e a coluna de rótulo do conjuntos de dados e as combinarão em um novo quadro de dados do R chamado
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)
Observe o uso dessas funções predefinida:
get.label.columns()
retorna a coluna selecionada como o rótulo de classe no módulo Treinar Modelo .get.feature.columns()
seleciona as colunas que foram designadas como recursos no conjuntos de dados.Por padrão, todas as colunas, exceto a coluna de rótulo, são consideradas recursos no Studio (clássico). Portanto, para marcar colunas específicas como recursos, use Editar Metadados ou selecione um conjunto de colunas dentro do script R.
get.feature.column.names(dataset)
obtém nomes de coluna de recurso do conjuntos de dados.
Os nomes do conjunto de dados combinado são designados como nomes para colunas
train.data
no e um nome temporário é criado para aClass
coluna de rótulo.names(train.data) <- c(feature.names, "Class")
A linha final do código define o algoritmo classificador Naïve Bayes como uma função das variáveis (recursos) e resultados (rótulos)
train.data
no quadro de dados.model <- naiveBayes(Class ~ ., train.data)
Durante a criação, o treinamento e os scripts de pontuação do modelo, você deve usar o nome da variável
model
.
Script de pontuação
O código a seguir ilustra o tipo de código R que você forneceria no script do Scorer R.
library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
A primeira linha carrega o pacote.
A segunda linha calcula as probabilidades previstas para o conjuntos de dados de pontuação usando o modelo treinado do script de treinamento, designado pelo nome da variável necessária,
model
.A terceira linha aplica um limite de 0,5 para probabilidades quando atribuir as etiquetas de classe de previsão.
A linha final combina as etiquetas de classe e as probabilidades no quadro de dados de saída,
scores
.O quadro de dados que é passado para o módulo Modelo de Pontuação deve ter o nome
scores
.
Script de avaliação opcional do Python
O experimento de exemplo no Galeria de IA do Azure inclui o script Python a seguir, que é usado para gerar métricas e gráficos para avaliação de modelo.
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,
Publicar o fluxo de trabalho do modelo R personalizado como um serviço Web
Depois de executar o experimento, você pode publicar o experimento completo como um serviço Web.
Para obter instruções atualizadas sobre como criar um serviço Web de um experimento do Studio (clássico), consulte Passo a passo Etapa 5: Implantar o Machine Learning web
Por padrão, o serviço Web espera todas as colunas de entrada dos dados de treinamento serem fornecidas, incluindo a coluna de etiqueta. Você pode adicionar uma instância de Selecionar Colunas no Dataset entre a fonte de dados de entrada e o módulo Modelo de Pontuação para excluir o rótulo que você está tentando prever.
Observações técnicas
O módulo Criar Modelo R dá suporte ao uso somente do CRAN R. Você não pode selecionar outra versão do R ou usar o Microsoft R Open.
O modelo está em cache após a primeira execução do módulo, e o módulo não é invocado na execução subsequente até que as alterações nos scripts de entrada sejam feitas. Leve este comportamento em consideração se seus scripts R usam qualquer um dos seguintes:
- Funções que geram números aleatórios
- Funções que geram números aleatórios
- Outras funções não determinadas
Modelos personalizados do R criados com este módulo não podem ser usados com estes módulos:
Os modelos R não realizam automaticamente a normalização do recurso de dados categóricos ou valores ausentes do identificador. A identificação de tais variáveis deve ser feita dentro dos scripts R de treinamento e pontuação.
Tabela de funções pré-definidas
Uso | Descrição |
---|---|
get.feature.columns(dataset) |
Obtém todas as colunas de recurso. |
get.label.column(dataset, label.type=TrueLabelType) |
Obtém a coluna de etiqueta, devido ao tipo. Consulte a seção Constantes para obter uma lista dos tipos de variáveis. |
get.label.column.names(dataset) |
Obtém os nomes de todas as colunas de etiqueta. |
get.label.column.name(dataset, label.type=TrueLabelType) |
Obtém o nome da coluna de etiqueta, devido ao tipo. Consulte a seção Constantes para obter uma lista dos tipos de variáveis. |
get.label.column.types(dataset) |
Obtém os tipos de todas as colunas de etiqueta. |
get.feature.column.names(dataset) |
Obtém os nomes de todas as colunas de recurso. |
dataset < - set.score.column(dataset, score.type, column.name) |
Define a coluna de pontuação, devido ao tipo. Consulte a seção Constantes para obter uma lista dos tipos de variáveis. |
dataset < - set.feature.channel(dataset, channel.name, column.names) |
Define o canal de recurso, devido ao nome. Consulte a seção Constantes para obter uma lista de nomes disponíveis. |
Tabela de constantes predefinidas
Constante | Descrição |
---|---|
TrueLabelType | Tipo de coluna de etiqueta True |
ScoredLabelType | Tipo de coluna de etiqueta pontuada |
RawScoreType | Tipo de coluna de pontuação bruta |
CalibratedScoreType | Tipo de coluna de pontuação calibrada |
ScoredProbabilitiesMulticlassColumnTypePattern | O padrão para preparar o tipo de coluna das probabilidades pontuadas para o classificador de multiclasse |
BayesianLinearRegressionScoresFeatureChannel | O nome do canal de recurso com pontuações de regressão linear Bayesiana |
BinaryClassificationScoresFeatureChannel | O nome do canal de recurso com pontuações de classificação binária |
MulticlassClassificationScoresFeatureChannel | O nome do canal do recurso com pontuações de classificação multiclasse |
OrdinalRegressionScoresFeatureChannel | O nome do canal do recurso com pontuações de regressão ordinária |
RegressionScoresFeatureChannel | O nome do canal do recurso com pontuações de regressão |
Exemplos
Para obter exemplos adicionais de como usar esse módulo em experimentos de aprendizado de máquina, consulte a Galeria de ia do Azure.
Entradas esperadas
Nome | Tipo | Descrição |
---|---|---|
Script R do treinador | Script | Um script R que tem um conjunto de dados como entrada e saída de um modelo não treinado. |
Script R do pontuador | Script | Um script R que tem um modelo e conjunto de dados como entrada e saída das pontuações especificadas no script. |
Saídas
Nome | Tipo | Descrição |
---|---|---|
Modelar | Interface ILearner | Um modelo não treinado |