Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Este é o tutorial 9 da série de tutoriais RevoScaleR sobre como usar funções RevoScaleR com o SQL Server.
Neste tutorial, vai aprender sobre as funções RevoScaleR para transformar dados em várias fases da sua análise.
- Use o rxDataStep para criar e transformar um subconjunto de dados
- Use o rxImport para transformar dados em trânsito para ou a partir de um ficheiro XDF ou de um quadro de dados em memória durante a importação
Embora não seja especificamente para movimentação de dados, as funções rxSummary, rxCube, rxLinMod e rxLogit suportam todas transformações de dados.
Use o rxDataStep para transformar variáveis
A função rxDataStep processa os dados um bloco de cada vez, lendo de uma fonte de dados e escrevendo noutra. Podes especificar as colunas a transformar, as transformações a carregar, e assim por diante.
Para tornar este exemplo interessante, vamos usar uma função de outro pacote R para transformar os dados. O pacote de arranque é um dos pacotes "recomendados", o que significa que o arranque está incluído em todas as distribuições de R, mas não é carregado automaticamente no arranque. Portanto, o pacote já deverá estar disponível na instância do SQL Server configurada para integração com R.
A partir do pacote de arranque , use a função inv.logit, que calcula o inverso de um logit. Ou seja, a função inv.logit converte um logit de volta numa probabilidade na escala [0,1].
Sugestão
Outra forma de obter previsões nesta escala seria definir o parâmetro de tipo para resposta na chamada original ao rxPredict.
Comece por criar uma fonte de dados para armazenar os dados destinados à tabela,
ccScoreOutput.sqlOutScoreDS <- RxSqlServerData( table = "ccScoreOutput", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Adicione outra fonte de dados para armazenar os dados da tabela
ccScoreOutput2.sqlOutScoreDS2 <- RxSqlServerData( table = "ccScoreOutput2", connectionString = sqlConnString, rowsPerRead = sqlRowsPerRead )Na nova tabela, armazene todas as variáveis da tabela anterior
ccScoreOutput, mais a variável recém-criada.Defina o contexto de computação para a instância do SQL Server.
rxSetComputeContext(sqlCompute)Use a função rxSqlServerTableExists para verificar se a tabela
ccScoreOutput2de saída já existe; e, se sim, use a função rxSqlServerDropTable para eliminar a tabela.if (rxSqlServerTableExists("ccScoreOutput2")) rxSqlServerDropTable("ccScoreOutput2")Chame a função rxDataStep e especifique as transformações desejadas numa lista.
rxDataStep(inData = sqlOutScoreDS, outFile = sqlOutScoreDS2, transforms = list(ccFraudProb = inv.logit(ccFraudLogitScore)), transformPackages = "boot", overwrite = TRUE)Quando defines as transformações aplicadas a cada coluna, podes também especificar quaisquer pacotes R adicionais necessários para realizar as transformações. Para mais informações sobre os tipos de transformações que pode realizar, veja Como transformar e subagrupar dados usando o RevoScaleR.
Chame rxGetVarInfo para ver um resumo das variáveis no novo conjunto de dados.
rxGetVarInfo(sqlOutScoreDS2)
Results
Var 1: ccFraudLogitScore, Type: numeric
Var 2: state, Type: character
Var 3: gender, Type: character
Var 4: cardholder, Type: character
Var 5: balance, Type: integer
Var 6: numTrans, Type: integer
Var 7: numIntlTrans, Type: integer
Var 8: creditLine, Type: integer
Var 9: ccFraudProb, Type: numeric
As pontuações originais de logit são preservadas, mas foi adicionada uma nova coluna, ccFraudProb, na qual as pontuações de logit são representadas como valores entre 0 e 1.
Note que as variáveis fator foram escritas na tabela ccScoreOutput2 como dados de caracteres. Para os usar como fatores em análises subsequentes, utilize o parâmetro colInfo para especificar os níveis.