Como criar um componente R

Como criar um componente R personalizado para uso nas análises.

Antes de criar o componente R, certifique-se de que os seguintes requisitos foram atendidos:
  • O script R é gravado em um formato de função R válido.
  • O script R é executado no console GUI do ambiente R.
  • O script R tem pelo menos uma função principal.
  • Instale os pacotes necessários para executar o script R em sua máquina ou no servidor SAP HANA.
  • O script R gravado na análise No banco de dados devolve um DataFrame.
A seguir estão as melhores práticas que deve considerar ao gravar o script R:
  • O script R gravado na análise No processo devolve um DataFrame.
  • A conversão do tipo de saída é recomendada, por exemplo, se uma coluna tem valores numéricos, mencione-a como as.numeric(output)
  • Para variáveis categóricas utilizadas no script R, especifique a variável utilizando o comando as.factor.
  1. Na divisão Prever, na lista de componentes à direita, escolha Início do caminho de navegação add_component.gif Próxima etapa de navegação Componente R Término do caminho de navegação.
    O assistente para Criar um novo componente R personalizado é exibido.
  2. Na página Geral, insira as seguinte informações:
    1. Na caixa de texto Nome do componente, digite Meu componente.
    2. Na lista suspensa Tipo de componente, selecione Algoritmos.
    3. Na caixa de texto Descrição do componente, insira Componente R para regressão linear simples.
  3. Selecione Próximo.
    A página Script é exibida.
  4. Na página Script, selecione Carregar script para selecionar um arquivo para efetuar upload.
    Nota Você pode gravar ou copiar e colar o script R de amostra a seguir na caixa de texto.
    Nota Consulte os comentários no seguinte formato da função R para ajudá-lo a compreender e gravar seu próprio script R.
    #The following is a sample script for a simple linear regression component.
    #You must write the script in a valid R function format.
    #Note that the function name and variable name in R script can be user-defined, and are supported in R.
    #The following is the argument description for the primary function SLR:
    #InputDataFrame: Dataframe in R that contains the output of the parent component.
    #The following two parameters are received from the user through the property view:
    #IndependentColumn: Column name that you want to use as independent variable for the component.
    #DependentColumn; Column name that you want to use as a dependent variable for the component.
    
    SLR<-function(InputDataFrame, IndependentColumn, DependentColumn)
    {
      finalString<-paste(paste(DependentColumn,"~" ), IndependentColumn); 
    #Formatting the final string to
    #pass to "lm" function
    slr_model<-lm(finalString); # calling the "lm" function and storing the output model in "slr_model"
    #To get the predicted values for the Training data set, call the "predict" function with this model and
    #input dataframe, which is represented by "InputDataFrame".
    result<-predict(slr_model, InputDataFrame); # Storing the predicted values in the "result" variable.
    output<- cbind(InputDataFrame, result); # combining "InputDataFrame" and "result" to get the final table.
    plot(slr_model); #Plotting model visualization.
    #returnvalue: function must always return a list that contains results "out", and model variable
    #"slrmodel", if present.
    #The output variable stores the final result.
    #The model variable is used for model scoring.
    return (list(slrmodel=slr_model, out=output))
    }
    
    #The following is the argument description for the model scoring function "SLRModelScoring":
    #InputDataFrame: Dataframe in R that contains the output of the parent component.
    #IndependentColumn: Column name to be used as independent variables for the component.
    #Model: Model variable that is used for scoring.
    
    SLRModelScoring <- function (InputDataFrame, IndependentColumn, Model)
    {
    #Calling "predict" function to get the predictive value with "Model " and "InputDataFrame".
    predicted<-predict(Model, data.frame(InputDataFrame[,IndependentColumn]), level=0.95);
    # Combining “InputDataFrame” and “predicted” to get the final table.
    output <- cbind(InputDataFrame, predicted); 
    #returnvalue: function should always return a list that contains the result ("model result"),
    #The output variable stores the final result
    return(list(modelresult=output))
    }
    

    Os dois exemplos abaixo mostram conversão de um script R em um formato de função R válido, reconhecido pelo Expert Analytics:

    Script R Formato da função R (reconhecido por Expert Analytics)
     dataFrame<-read.csv("C:\\CSVs\\Iris.csv")
     attach(dataFrame)
     set.seed(4321)
     kmeans_model<-
     kmeans(data.frame(`SepalLength`,`SepalWidth`,
     `PetalLength`,`PetalWidth`),
     centers=5,iter.max=100,nstart=1,algorithm=
     "Hartigan-Wong")
     kmeans_model$cluster
    kmeansfunction<-function(dataFrame,independent,
     Clustersize,Iterations,algotype,numberofinitialdsets)
     { 
     set.seed(4321)
     kmeans_model<-kmeans(data.frame(dataFrame[,independent]),
     centers=Clustersize,iter.max=Iterations, nstart=numberofinitialdsets,
     algorithm= algotype)
     output<- cbind(dataFrame, kmeans_model$cluster);
     boxplot(output); return (list(out=output));
     }
    dataFrame<-
     read.csv("C:\\Datasets\\cnr\\Iris.csv") 
     attach(dataFrame) library(rpart)
     cnr_model<-rpart
     (Species~PetalLength+PetalWidth+SepalLength+
     SepalWidth, method="class") library(rpart) 
     predict(cnr_model, dataFrame,type = c("class"))
    cnrFunction<-function(dataFrame,IndependentColumns,dep)
     { 
     library(rpart); 
     formattedString<-paste(IndependentColumns, collapse = '+');
     finalString<-paste(paste(dep, "~" ),
     formattedString); cnr_model<-rpart(finalString, method="class");
     output<- predict(cnr_model, dataFrame,type=c("class")); 
     out<- cbind(dataFrame, output);
     return (list(result=out,modelcnr=cnr_model));
     } 
     cnrFunctionmodel<-function(dataFrame,ind,modelcnr,type)
     {
     output<-predict(modelcnr,data.frame(dataFrame[,ind]),type=type);
     out<- cbind(dataFrame, output); return (list(result=out));
    Nota

    Declare parâmetros para a função de pontuação do modelo na função primária, com exceção do Dataframe de entrada e do Nome da variável de modelo de entrada, que você seleciona nas listas drop-down.

  5. Na seção Detalhes da função primária, insira as seguintes informações:
    1. Na lista suspensa Nome da função primária, selecione SLR.
    2. Na lista suspensa DataFrame de entrada, selecione InputDataFrame.
    3. Na caixa DataFrame de saída, digite out.
    4. Selecione a caixa de seleção Opção para salvar o modelo.
      O campo Nome da variável modelo é habilitado e os Detalhes da função de pontuação de modelo são exibidos.
    5. No campo Nome da variável modelo, digite slrmodel.
    6. Selecione as caixas de seleção Exibir resumo e Opção para exportar como PMML.
  6. Na seção Detalhes da função de pontuação de modelo, insira as seguintes informações:
    1. Em Nome da função de pontuação de modelo, selecione SLRModelScoring.
    2. Na lista suspensa DataFrame de entrada, selecione MInputDataFrame.
    3. No campo DataFrame de saída, digite modelresult.
    4. Na lista suspensa Nome da variável modelo de entrada, selecione Modelo.
  7. Selecione Próximo.
    A página Configurações é exibida.
  8. Na seção Definição da tabela de saída de Configurações da função primária, realize as seguintes subetapas:
    1. Selecione Não considerar nenhuma.
    2. Na lista suspensa Tipo de dados, selecione Número inteiro.
    3. Na caixa Nome da nova coluna prevista, digite Coluna prevista.
  9. Na seção Definição da visão de propriedade, realize as seguintes subetapas:
    1. Em Nome de exibição da propriedade, na caixa Coluna independente, digite Coluna independente.
    2. Na lista suspensa Tipo de controle, selecione Seletor de colunas (único) como o tipo de controle para a Coluna independente.
    3. Em Nome de exibição da propriedade, na caixa Coluna independente, digite Coluna dependente.
    4. Na lista suspensa Tipo de controle, selecione Seletor de colunas (único) como o tipo de controle para a Coluna dependente.
  10. Na seção Definição da tabela de saída de Configurações da pontuação do modelo, selecione Considerar todas as colunas do componente anterior.
  11. Na lista suspensa Tipo de dados, selecione Número inteiro.
  12. Em Nome da nova coluna prevista, digite Coluna de saída.
  13. Na seção Definição da visão de propriedade, realize as seguintes subetapas:
    1. Em Nome de exibição da propriedade, digite Coluna independente.
    2. Na lista suspensa Tipo de controle, selecione Seletor de colunas (único) como o tipo de controle para a Coluna independente.
  14. Selecione Concluir.
Dependendo do tipo de análise realizada, você pode criar um modelo assim como qualquer outro componente.