Criar modelos do R (tutorial do SQL Server e RevoScaleR)
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Este é o tutorial 7 da série de tutoriais do RevoScaleR sobre como usar as funções do RevoScaleR com o SQL Server.
Você enriqueceu os dados de treinamento. Neste tutorial, você analisará os dados usando a modelagem de regressão. Os modelos lineares são uma ferramenta importante no mundo da análise preditiva. O pacote RevoScaleR inclui algoritmos de regressão que podem subdividir a carga de trabalho e executá-la em paralelo.
- Criar um modelo de regressão linear
- Criar um modelo de regressão logística
Criar um modelo de regressão linear
Nesta etapa, crie um modelo linear simples que estima o saldo de cartão de crédito dos clientes usando como variáveis independentes os valores nas colunas gender e creditLine.
Para fazer isso, use a nova função rxLinMod, que dá suporte a contextos de computação remota.
Crie uma variável do R para armazenar o modelo concluído e chame rxLinMod, passando uma fórmula adequada.
linModObj <- rxLinMod(balance ~ gender + creditLine, data = sqlFraudDS)
Para exibir um resumo dos resultados, chame a função summary do R padrão no objeto de modelo.
summary(linModObj)
Você pode achar estranho uma função simples do R como summary funcionar aqui, já que, na etapa anterior, você definiu o contexto de computação para o servidor. No entanto, mesmo que a função rxLinMod use o contexto de computação remota para criar o modelo, ela também retorna um objeto que contém o modelo para sua estação de trabalho local e o armazena no diretório compartilhado.
Portanto, você pode executar comandos padrão do R com relação ao modelo como se ele tivesse sido criado usando o contexto "local".
Resultados
Linear Regression Results for: balance ~ gender + creditLineData: sqlFraudDS (RxSqlServerData Data Source)
Dependent variable(s): balance
Total independent variables: 4 (Including number dropped: 1)
Number of valid observations: 10000
Number of missing observations: 0
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|) (Intercept)
3253.575 71.194 45.700 2.22e-16
gender=Male -88.813 78.360 -1.133 0.257
gender=Female Dropped Dropped Dropped Dropped
creditLine 95.379 3.862 24.694 2.22e-16
Signif. codes: 0 0.001 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3812 on 9997 degrees of freedom
Multiple R-squared: 0.05765
Adjusted R-squared: 0.05746
F-statistic: 305.8 on 2 and 9997 DF, p-value: < 2.2e-16
Condition number: 1.0184
Criar um modelo de regressão logística
Depois, crie um modelo de regressão logística que indica se um cliente específico é um risco de fraude. Você usará a função RevoScaleR rxLogit, que é compatível com a conexão de modelos de regressão logística em contextos de computação remota.
Deixe o contexto de computação como está. Você também continuará usando a mesma fonte de dados.
Chame a função rxLogit e passe a fórmula necessária para definir o modelo.
logitObj <- rxLogit(fraudRisk ~ state + gender + cardholder + balance + numTrans + numIntlTrans + creditLine, data = sqlFraudDS, dropFirst = TRUE)
Como ele é um modelo grande, que contém 60 variáveis independentes, incluindo três variáveis fictícias removidas, talvez você precise aguardar até que o contexto de computação retorne o objeto.
O motivo pelo qual o modelo é tão grande é que, no R e no pacote RevoScaleR , todos os níveis de uma variável de fator categórico são tratados automaticamente como uma variável fictícia separada.
Para exibir um resumo do modelo retornado, chame a função summary do R.
summary(logitObj)
Resultados parciais
Logistic Regression Results for: fraudRisk ~ state + gender + cardholder + balance + numTrans + numIntlTrans + creditLine
Data: sqlFraudDS (RxSqlServerData Data Source)
Dependent variable(s): fraudRisk
Total independent variables: 60 (Including number dropped: 3)
Number of valid observations: 10000 -2
LogLikelihood: 2032.8699 (Residual deviance on 9943 degrees of freedom)
Coefficients:
Estimate Std. Error z value Pr(>|z|) (Intercept)
-8.627e+00 1.319e+00 -6.538 6.22e-11
state=AK Dropped Dropped Dropped Dropped
state=AL -1.043e+00 1.383e+00 -0.754 0.4511
(other states omitted)
gender=Male Dropped Dropped Dropped Dropped
gender=Female 7.226e-01 1.217e-01 5.936 2.92e-09
cardholder=Principal Dropped Dropped Dropped Dropped
cardholder=Secondary 5.635e-01 3.403e-01 1.656 0.0977
balance 3.962e-04 1.564e-05 25.335 2.22e-16
numTrans 4.950e-02 2.202e-03 22.477 2.22e-16
numIntlTrans 3.414e-02 5.318e-03 6.420 1.36e-10
creditLine 1.042e-01 4.705e-03 22.153 2.22e-16
Signif. codes: 0 '\*\*\*' 0.001 '\*\*' 0.01 '\*' 0.05 '.' 0.1 ' ' 1
Condition number of final variance-covariance matrix: 3997.308
Number of iterations: 15